Open Howar-sz opened 4 months ago
I'm having difficulty grasping how worker processes acquire connections.
As far as I remember, the parent / master process "passes" every new connection to one of the workers, so this may make things slower compared to the 1 process async model. If this is true, you may have more luck changing your benchmark so that it downloads, say, 10 files of 1G each instead of 50k files of 64K each. But it's just a supposition.
Also, what are you using for your benchmarks? Is it only one client downloading the file serially or there's multiple clients in parallel?
Note: I've never conducted benchmarks for the pre-fork model, so you're a pioneer in this sense. :)
PS: I see you're from Shenzhen. My wife is from there. :-)
As far as I remember, the parent / master process "passes" every new connection to one of the workers, so this may make things slower compared to the 1 process async model. If this is true, you may have more luck changing your benchmark so that it downloads, say, 10 files of 1G each instead of 50k files of 64K each. But it's just a supposition.
Is "passes" means any new ftp connection need to allocated by parent/master process? If subprocess was busied, parent process will waiting?
Also, what are you using for your benchmarks? Is it only one client downloading the file serially or there's multiple clients in parallel?
It's an uploads test. I use lftp
with -e "mirror -R -c -P <parallel>"
arguments as my benchmark tool. I think lftp
is multiple ftp connections
in parallel if parallel
argument greater than one
Hi, I'm a
pyftpdlib
user, and I'm looking to enhance the performance of my FTP server implementation. I came across the pre-fork model in the tutorial (https://github.com/giampaolo/pyftpdlib/blob/master/docs/tutorial.rst#pre-fork), but I'm having difficulty grasping how worker processes acquire connections. I attempted to integrate this model intounix_daemon.py
, but it didn't yield any significant performance improvements.Look forward to hearing from you