Why set custom datadir in tmpfs cause Disk i/o operations failed

I understand that datadir is used for persisting data.
When I use memory as storage engien, I found throughput of foundatoindb is still bottlenecked by Disk I/O.
Since I want to know how foundationdb performs better when it is not bottlenecked by Disk I/O, so I mount a tmpfs and set both logdir and datadir into it.

$ ls -la /mnt/ramdisk/foundationdb
total 0
drwxrwxrwx 4 ubuntu ubuntu 80 Apr 14 06:54 .
drwxrwxrwt 3 root   root   60 Apr 14 06:53 ..
drwxrwxrwx 2 ubuntu ubuntu 40 Apr 14 06:53 data
drwxrwxrwx 2 ubuntu ubuntu 40 Apr 14 06:54 log

Then I got the following Error message when I try to start fdbserver.

$ /usr/sbin/fdbserver --cache_memory 2GiB --class log --cluster_file /etc/foundationdb/fdb.cluster --datadir /mnt/ramdisk/foundationdb/data/4500 --listen_address public --logdir /mnt/ramdisk/foundationdb/log --memory 11GiB --public_address auto:4500 --storage_memory 4GiB
ERROR: error creating or opening process id file `/mnt/ramdisk/foundationdb/data/4500/processId'.
Fatal Error: Disk i/o operation failed

After this error I found a file named processId.part in the data file.

$ ls -la /mnt/ramdisk/foundationdb/data/4500/
total 0
drwxr-xr-x 2 ubuntu ubuntu 60 Apr 14 06:56 .
drwxrwxrwx 3 ubuntu ubuntu 60 Apr 14 06:56 ..
-rw---S--- 1 ubuntu ubuntu  0 Apr 14 06:56 processId.part

I hope to understand why this happen and how to resolve it so that I can put datadir&logdir into tmpfs and avoid Disk I/O.