・txqueuelen
送信バッファのキューサイズ
ifconfigを実行した時にTXの項目に出力される。
変更方法は
# ifconfig eth0 txqueuelen 60000
と ifconfig <イーサネットデバイス名> txqueuelen <変更したい値>
にしてやればいい
デフォルトで1000のものを60000まで上げた。数値決定は会社の人が何人かこの設定を行なって障害が減ったという実績から値を決定。実際はもっと細かく値の評価をしなければならないが、急ぎなのでこれで
eth0 Link encap:Ethernet HWaddr 52:54:00:01:71:25
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.254.0
inet6 addr: fe80::5054:ff:fe01:7125/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:310307585 errors:0 dropped:0 overruns:0 frame:0
TX packets:164633938 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:60000
RX bytes:52932343979 (49.2 GiB) TX bytes:40317889424 (37.5 GiB)
・net.core.somaxconn
TCPソケットが受け付けた接続要求の格納できるキューの最大長
backlog>net.core.somaxconn
の時に優先的にnet.core.somaxconn の値が利用されます。
なのでbacklog<net.core.somaxconn になるように設定します。
net.core.somaxconnの確認方法
# sysctl net.core.somaxconn
net.core.somaxconn = 128
リブートしても設定が戻らない様にsysctl.confに設定を書き加えます
# vim /etc/sysctl.conf
net.core.somaxconn = 1024
値はmemcachedの接続最大数にしました。
設定を変更しても反映されないので
sysctl -w net.core.somaxconn=2048
で設定を反映させます。