Apache a sendfile

Jan Kasprzak kas na fi.muni.cz
Čtvrtek Květen 31 12:55:50 CEST 2007


Martin `MJ' Mares wrote:
: > Je otazka, jestli se ten buffer nebude nejak zmensovat pri vzrustu
: > tlaku ve virtualni pameti.
: 
: Ja myslim, ze je to obycejny send buffer od TCP, takze by se mel ridit
: podle /proc/sys/net/ipv4/tcp_wmem.

	No, buffer samotny se nezmensuje, ale zrejme se meni
low-water-mark kdy jadro aplikaci rekne, ze ten deskriptor je pripraveny
prijmout nejaka data (nebo mozna se meni to, kolik dalsich ACK packetu
prijde nez se Apache rozhodne po poll() zavolat sendfile()). Kazdopadne
pri lokalnim prenosu jsem videl ze jedno sendfile() zapisovalo
od zhruba 105 KB do asi 180 KB.

	Taky je otazka jak se takhle male sendfile() popere s TSO
na ethernetove karte - tam se moc velkych TSO framu nevejde a urcite
to pak udela neporadek v casovacich informacih TCP. (Hmm, ale ted se divam,
ze mi TSO asi prestalo fungovat - tcpdumpem vidim normalni 1500 bajtu
dlouhe ramce).

	Idealni by bylo, kdyby se vsechny tyhle veci daly rozumne
sesynchronizovat - ext3 dela read() do 64 KB, cili pekne by bylo
jedno 64KB blokove cteni -> jeden TSO segment, sendfile() zarovnane
na nasobek tehoz, a znovu.

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
> I will never go to meetings again because I think  face to face meetings <
> are the biggest waste of time you can ever have.        --Linus Torvalds <



Další informace o konferenci Linux