Linux Tuning

Configurare noua (How To)

Situatie

Abordare generală

  • Pentru a verifica ce setare utilizează sistemul dvs., utilizați „sysctl name” (de exemplu: „sysctl net.ipv4.tcp_rmem”).
  • Pentru a schimba o setare utilizați „sysctl -w”. Pentru a face setarea permanentă, adăugați setarea la fișierul „sysctl.conf”.

Solutie

TCP tunning

La fel ca majoritatea sistemelor de operare moderne, Linux face acum o treabă bună de reglare automată a bufferelor TCP, dar dimensiunile maxime implicite ale bufferului TCP Linux sunt încă prea mici. Iată câteva exemple de configurații sysctl.conf pentru diferite tipuri de gazde.

Pentru o gazdă cu o rețea NIC 10G, optimizată pentru căi de rețea de până la 100 ms RTT și pentru ușurința instrumentelor de flux unic și paralel, adăugați acest lucru la /etc/sysctl.conf

# allow testing with buffers up to 64MB net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 # increase Linux autotuning TCP buffer limit to 32MB net.ipv4.tcp_rmem = 4096 87380 33554432 net.ipv4.tcp_wmem = 4096 65536 33554432 # recommended default congestion control is htcp net.ipv4.tcp_congestion_control=htcp # recommended for hosts with jumbo frames enabled net.ipv4.tcp_mtu_probing=1 # recommended to enable ‘fair queueing’ net.core.default_qdisc = fq

  • Pentru o gazdă cu o rețea NIC de 10G optimizată pentru căi de rețea de până la 200 ms RTT și pentru o mai ușoară utilizare a instrumentelor de flux unic și paralel, sau o rețea NIC 40G pe căi de până la 50 ms RTT:
# allow testing with buffers up to 128MB
net.core.rmem_max = 134217728 
net.core.wmem_max = 134217728 
# increase Linux autotuning TCP buffer limit to 64MB
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
# recommended default congestion control is htcp 
net.ipv4.tcp_congestion_control=htcp
# recommended for hosts with jumbo frames enabled
net.ipv4.tcp_mtu_probing=1
# recommended to enable 'fair queueing'
net.core.default_qdisc = fq

Note: ar trebui să lăsați net.tcp_mem în pace, deoarece valorile implicite sunt bune. Un număr de experți în performanță spun că vor crește și net.core.optmem_max pentru a se potrivi cu net.core.rmem_max și net.core.wmem_max, dar nu am descoperit că asta face vreo diferență.

Unii experți spun, de asemenea, să setați net.ipv4.tcp_timestamps și net.ipv4.tcp_sack la 0, deoarece acest lucru reduce sarcina procesorului. Nu suntem de acord cu această recomandare pentru performanța WAN, deoarece am observat că valoarea implicită 1 ajută în mai multe cazuri decât doare și poate ajuta mult.

  • Linux acceptă algoritmi de control al congestiei conectabili. Pentru a obține o listă a algoritmilor de control al congestiei care sunt disponibili în nucleul dvs. (kernal 2.6.20+), rulați:

sysctl net.ipv4.tcp_available_congestion_control
cubic este de obicei implicit în majoritatea distribuției Linux, dar am constatat că htcp funcționează de obicei mai bine. Ați putea dori, de asemenea, să încercați BBR dacă este disponibil pe sistemul dvs.

  • Pentru a seta algoritmul implicit de control al congestiei, faceți:

sysctl -w net.ipv4.tcp_congestion_control = htcp

Dacă utilizați Jumbo Frames, vă recomandăm să setați tcp_mtu_probing = 1 pentru a evita problema găurilor negre MTU. Setarea la 2 cauzează uneori probleme de performanță.

Tip solutie

Permanent

Voteaza

(9 din 25 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?