My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members

English

1.Very high performance FTP Server about 10X than vsFTP server
2.Base on pyhton lib (pyftpdlib)
3.Use Multi-CPU Tech on python lib(multiprocess)
4.stable and expand your own logic with high-pressure test
5.Document in English/Deutsch/Chinese

Deutsch

1.sehr hohe Leistung zu 10X als vsftp Server
2.Basis auf Python lib (pyftpdlib)
3.Mit Multi-CPU Tech auf python lib (multiprocess)
4.stabile und erweitern Sie Ihre eigene Logik mit Hochdruck-Test
5.Document in Englisch /Deutsch / Chinesisch

More Info: @wuqunfei in weibo.com of Sina

高性能的Ftp服务器,使用Python的环境,改进了pyftpdlib源码
结合使用了python2.6版本以后的多进程编程(非多线程)
实现了高并发的FTP服务器,具有很好的可扩展性!

Notice,it's just for linux System only.

1.Python 2.6<= verison <= 2.7

because this server need multiprocess supported and pyfpdlib supported

More in detail
http://docs.python.org/library/multiprocessing.html >2.6
http://code.google.com/p/pyftpdlib/ 2.4~2.7

2.Install

$unzip pyftpdlib-0.6.0-By-Fei
$cd pyftpdlib-0.6.0-By-Fei
$python setup.py install
$cd ..
$vim FEITP-SERVER.py  modify your user & pwd & server address & port & 目录 & 权限
$vim 修改 线程数量,建议CPU数量的两倍 NUMBER_OF_PROCESSES = multiprocessing.cpu_count()
$python FEITP-SERVER.py  running your ftp server now

2.7.2

3.Run

You need config your FTP ,PORT,USER,PWD,DIR in FEITP-SERVER
Best high-Preformance use double Number of CPU for process

$python FEITP-SERVER.py

4.DIY your logic

If you overwrite YourHandler Class, there are a lot of your logic you can do
class YourHandler(ftpserver.FTPHandler)

5.Hope could you like it

Link: wu.qunfei@gmail.com

6.Thinking in FTP degsin

The server was designed for a lot of clients sent file to server at same time. The code job is 3 things:

First lib is pyftpdlib which is a high-level portable interface to easily write asynchronous FTP servers.
Secondly, multiprocessing lib is good method let you to use multi-CPU in your machine replacing the 1 CPU running all threading.
Thirdly, I rewrite the pyftpdlib sourcecode.In fact, I just delete some common and success log's methods excpet Error log method.

Some params need to config
1.In Linux
$ulimit -n max_open_file_number
$ulimit -s min_buffer_in_one_thread

2.In Process
I suggest that you can use double of your CPU number for yout ftp processes.
Process(N) = CPU(N) 2

4.In FTP

tcp_no_delay = True
max_connection = max_your_can
use_simply_auth when you login
the default of income_buffer which you can change with your logic

1900 TPS for 50 Client together,No failed,Response at 0.005~0.0035 ms.
Every client send server a 1K~4K file together.

Test Much better than VSFTP server,VSFTP(JUST 268TPS)

1900并发

Powered by Google Project Hosting