Tema: TCP Linux'e
Autorius: Domas Mituzas
Data: 2009-01-05 18:24:58
Labadiena,

užlipau ant įdomaus grėblio su 2.6.24 Linuxu (ubuntu..):

1. rsync'as pradeda kopijuot failus
2. kažkurioj vietoj gaunanti pusė pristoja
3. gaunančioje pusėje prisipildo buferiai (socket bufferis palubėm)
4. pradedama intensyviai tcp_collapse(), idant nebūtų buferis toks užimtas
5. tcp_collapse/memcpy pradeda užimt daug daug CPU resursų
6. kadangi 5. suryja CPU resursus, einame į 2. ir kartojame :) rezultate 
vietoj vielos greičio gaunas koks 20-30MB/s

siunčianti pusė sau ramiai straksi ir naudoja vieną kitą procentą CPU.

per HTTP tie patys failai siunčias 120MB/s (gavėjas procesas valgo 60% 
CPU).

tai vat ir įdomu, pagal idėja tcp_collapse turėtų darbuotis kai buferiai 
blogi, alia va mano konfigūracija:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

net nežinau nuo kada čia pradėjom ant šito daikto lipt.

Ką darytumėte? Ką praleidau?

Domas

P.S. Mašina 2xquadcore, 32gb ram, Profilis:

http://p.defau.lt/?Quk2T37MngzLV9qDdlEp5A