Yerel bir ağ üzerinden bir FTP sunucusuna çok sayıda veri (~ 100 dosya X 2GB) aktarmak için python'un ftplib'sini kullanıyorum. Bu kod Ubuntu'da çalışıyor.Python ftplib Optimal Blok Boyutu?
# Store file.
self.ftpClient.storbinary('STOR ' + destination, fileHandle, blocksize = self.blockSize, callback = self.__UpdateFileTransferProgress)
Benim sorum ben optimal blok boyutunu seçmek, nasıl: İşte benim kararım (öz ftplib istemci etrafında sarıcı benim FtpClient nesnesidir)? Benim anlayışım, optimal blok büyüklüğünün, en azından bağlantı hızı ve gecikme olmaksızın, bir dizi şeye bağlı olmasıdır. Kodum, gün boyunca farklı hızlarda ve değişen miktarlarda tıkanıklıkla birçok farklı ağda yayınlanacak. İdeal olarak, çalışma zamanında optimal blok boyutunu hesaplamak istiyorum.
En uygun FTP aktarım bloğu boyutu en uygun TCP pencere boyutuyla aynı mı? Bu doğruysa ve TCP pencere ölçeklendirme açıksa, çekirdekten en uygun TCP pencere boyutunu elde etmenin bir yolu var mı? Linux çekirdeği en uygun pencere boyutunu nasıl/ne zaman belirler? İdeal olarak, tekerleği yeniden icat etmekten kaçınmak için linux çekirdeğini optimal blok boyutu için sorabilirdim. http://erlerobotics.gitbooks.io/erle-robotics-python-gitbook-free/content/udp_and_tcp/udp_fragmentation.html
Ama, ayrıca düşünmek gerekir:;
http://moo.nac.uci.edu/~hjm/HOWTO_move_data.html
sadece benim iki sent bir göz olmalıdır : //en.wikipedia.org/wiki/Nagle%27s_algorithm). Ayrıca 'TCP_CORK' seçeneğini de ayarlamayı düşünebilirsiniz. – Phillip
Burada ne tür bir eşzamanlılık bekliyorsunuz veya kullanıyorsunuz? Bunun tek iş parçacıklı bir uygulama olması amaçlanmış mı? Çoklanmış Asenkronize I/O'dan yararlanabilir misiniz? –