-
Notifications
You must be signed in to change notification settings - Fork 521
-
Dear all,
We are using DPDK to transfer files and write to SSD on the receiver side.
On the sender side, we are splitting the files into 1024-byte packets before sending over to the receiver.
Currently, on the sender side, we are using a worker lcore to retrieve the packets and storing the file data in a buffer while the main lcore writes the data to file using write().
However, we are realizing that the write speed is not fast enough to keep up with the number of packets being received.
We have tried using io_uring to aid speeding up the writing but it seems to be even slower than just writing the file normally.
We are looking at a few solutions, each with their own issues:
- Kernel polling (requires file names to be registered beforehand and might have issues with dynamic file transfer)
- Offload the wait_cqe/peek_cqe to a different thread/DPDK lcore (requires more complicated management of resources)
- O_DIRECT to eliminate copying to kernel space (buffer storing file data needs to be continuous and flat, requiring copying of data to another buffer in userspace)
We would like to check with the community if you have any DPDK compatible suggestions that would help improve file transfer and write performance based on your experience.
Thank you very much in advance.
Best Regards,
Isaac LIM
Beta Was this translation helpful? Give feedback.