firewall (nat session) - switch (Forwarding bandwidth) - os (ulimit,sysctl) - application (httpd,vsftpd,tomcat ...)
會話數,國人俗稱并發數。當你的帶寬沒有滿,但tcp不能建立連接配接,這時你就要考慮會話數了。
購買防火牆的時候主要有兩個名額,一是會話數,二是帶寬,三是配備子產品。售前工程師都會交代清楚。
例如 Cisco ASA 5550 會話數65萬,2個1G接口,可選IPS子產品等等...
使用下面指令可以檢視目前會話數
Linux 影響會話數的的參數與配置檔案
/etc/security/limits.conf , /etc/security/limits.d
nofile - max number of open files 在POSIX系統中硬體,管道,Socket 均被看作是一個裝置,如硬碟是塊裝置,顯示器是字元裝置,操作這些裝置均使用c的open函數,被算作打開一個檔案。所有裝置都是如此,加上web伺服器還要讀取很多HTML檔案,系統對nofile 開銷是非常巨大的。
nproc - max number of processes 目前多線程是主流,使用多線程技術這個參數可以不關心。像Oracle,PostgreSQL, Apache prefork,你就需要關心這個參數
/etc/sysctl.conf , /etc/sysctl.d/
net.ipv4.ip_local_port_range = 1024 65500 可用端口範圍
tcp 協定當你嘗試主動與伺服器建立連接配接,如:telnet 172.16.0.1 80,本地會開啟一個大于1024小于65500的端口
client: localhost:1025 --- 172.16.0.1:80 server
以上參數要綜合你的CPU處理能力,記憶體空間,硬碟IO等等,才能配置出合理數值
配置過大(小馬拉大車),超出你的伺服器處理能力,導緻伺服器無響應,最終隻能重新開機
配置過小(大馬拉小車),你的伺服器長時間處于空間狀态,CPU,記憶體沒有得到合理使用
在我的《Netkiller Linux 手劄》中你可以找到具體的設定方法。
連接配接數受限與limits與sysctl
apache : httpd/conf/extra/httpd-mpm.conf
mysql : /etc/my.cnf
不依依列舉,有興趣看我的系列文檔。
原文出處:Netkiller 系列 手劄
本文作者:陳景峯
轉載請與作者聯系,同時請務必标明文章原始出處和作者資訊及本聲明。