Linux OS||Services不響應SYN總結
背景
對外提供TCP服務的進程,在壓測時發現,TCP連接SYN響應慢,甚至不響應。導致無法正常接收新的請求,影響業務。
抓包分析:
如上有大量的重傳,有時能夠正常的響應請求,有時就無法響應請求。
排查思路
1、係統負載是否過高
2、是否有安全軟件(比如安全狗,安騎士等)
3、是否開啟防火牆
4、物理機是否有爭搶
5、Snat問題
6、TCP相關參數:net.ipv4.tcp_max_syn_backlog\net.ipv4.tcp_syncookies\fs.file-max等
7、係統最大文件打開數是否有限製
8、進程最大文件打開數是否有限製
9、業務程序是否有相關的安全限製
10、協議棧異常
11、網絡安全設備原因
排查過程
根據排查思路中的幾個關鍵點,進行逐一仔細確認:
1、檢查係統負載是否正常
2、是否有安全軟件:關閉安騎士服務,檢查係統進程是否有其他安全軟件進程
3、關閉係統防火牆:排除由於防火牆安全配置導致的問題。
4、檢查物理機負載情況,是否有爭搶。
5、Snat問題:根據問題環境判斷,是否有該問題,如有根據案例方式處理。
6、檢查TCP相關參數:調大相關參數:
net.ipv4.tcp_max_syn_backlog\net.ipv4.tcp_syncookies\fs.file-max等
7、係統最大文件打開數是否有限製:
[root@xxxx ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3895 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 3895 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@xxxx ~]#
主要關注open files信息
8、查看進程最大文件打開數限製
[root@XXXXXX ~]# ps -ef | grep nginx root 4867 1 0 Apr20 ? 00:00:00 nginx: master process /usr/sbin/nginx nginx 4868 4867 0 Apr20 ? 00:00:00 nginx: worker process root 20159 20105 0 09:59 pts/0 00:00:00 grep --color=auto nginx [root@XXXXXX ~]# cat /proc/4868/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 3895 3895 processes Max open files 1024 4096 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 3895 3895 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us [root@XXXXXXX ~]#
進程的調整方法:
echo -n 'Max open files=10000:10000' > /proc/3622/limits
prlimit要2.6.36版本+才行
https://xiezhenye.com/tag/prlimit
9、業務程序是否有相關的限製(聯係用戶確認)
10、協議棧異常;嚐試初始化。
最後更新:2017-05-15 10:01:53