ファイルをftpサーバーにアップロードするためにSTORBINARY関数を使用し、このサーバーからダウンロードするためにRETRBINARY関数を使用するpython 2.7コードがあります。
ただし、問題は、Dell ラップトップと比較して、異なるブランドの 3 つのラップトップでアップロードに非常に長い時間がかかることです。奇妙な点は、ファイルを手動でアップロードすると、すべてのシステムで同じ時間がかかることです。
手動アップロード速度と Python スクリプトを使用したアップロード速度は、Dell ラップトップで同じです。ただし、他のすべてのブランドのラップトップ (IBM、Toshiba、Fujitsu-Siemens で試しました) では、python スクリプトのアップロード速度は手動の試行よりも非常に低くなります。また、これらの他のすべてのラップトップでは、python スクリプトを使用したアップロード速度は同じ (1Mbit/秒) ですが、手動アップロード速度は約 1 秒です。8 メガビット/秒。
アップロードのファイルサイズを変更しようとしましたが、役に立ちませんでした。TCP Optimizer はすべてのシステムでダウンロード速度を改善しましたが、アップロード速度には影響しませんでした。すべてのシステムでこのスクリプトを使用したダウンロード速度は問題なく、手動ダウンロード速度と同じです。
サーバーを確認したところ、空き容量が 90% を超えています。ネットワーク接続はすべてのラップトップで同じです。一度に 1 台のラップトップだけをアップロードしてみます。すべてのラップトップは、ほぼ同じシステム構成、同じオペレーティング システム、およびほぼ同じ空きドライブ容量を備えています。どちらかと言えば、Dell ラップトップは処理能力と RAM の点で他の 2 つより少し劣りますが、これらのアップロード中の CPU 使用率とネットワーク使用率を何度も確認したため、影響はないと思います。他のウイルスやプログラムが私の帯域幅を食い尽くしていないことを確信しています.
storbinary コマンドでも、ブロックサイズを 57344(56 kB) に指定すると、アップロード速度が本来の 1 ~ 1.5 Kbit/s から 5 Kbit/s 程度に向上します...その理由は何ですか? また、手動アップロード クライアント (filezilla を使用) で使用されているブロックサイズ、またはアップロードに最適なブロックサイズを見つけるにはどうすればよいですか?? @ギドット
完全なコード:
def upnew(counter=0):
f=open("c:/10", "w")
f.write(os.urandom(10*1024*1024))
f.close()
print "Logging in..."
ftpserver='xxxxxxx'
ftpuser='xxxxxxx'
ftppw='xxxxxxxxx'
ftp = FTP(ftpserver)
ftp.login(ftpuser, ftppw)
t = open("c:/10", "rb")
upstart = time.clock()
ftp.storbinary('STOR 10', t)
upende = time.clock()-upstart
print ((10*8)/upende)
print "press Return to disconnect"
raw_input()
ftp.quit()
print "FTP Verbindung abgebaut"
upnew(1)