net.core.somaxconn的作用
阿新 • • 發佈:2022-05-22
net.core.somaxconn 是Linux中的一個kernel引數,表示socket監聽(listen)的backlog上限。什麼是backlog呢?backlog就是socket的監聽佇列,當一個請求(request)尚未被處理或建立時,他會進入backlog。而socket server可以一次性處理backlog中的所有請求,處理後的請求不再位於監聽佇列中。當server處理請求較慢,以至於監聽佇列被填滿後,新來的請求會被拒絕。
在Hadoop 1.0中,引數 ipc.server.listen.queue.size 控制了服務端socket的監聽佇列長度,即backlog長度,預設值是128。而Linux的引數 net.core.somaxconn如何修改net.core.somaxconn
Linux中可以工具 syctl 來動態調整所有的kernel引數。所謂動態調整就是kernel引數值修改後即時生效。但是這個生效僅限於os層面,對於Hadoop來說,必須重啟應用才能生效。
命令
# sysctl -a
會顯示所有的kernel引數及值。
修改引數值的語法
# sysctl -w net.core.somaxconn=32768
以上命令將kernel引數net.core.somaxconn的值改成了32768。這樣的改動雖然可以立即生效,但是重啟機器後會恢復預設值。為了永久保留改動,需要用vi在 /etc/sysctl.conf 中增加一行
net.core.somaxconn= 4000
然後執行命令
# sysctl -p