閱讀187 返回首頁    go iPhone_iPad_Mac_apple


Linux OS||Services不響應SYN總結

背景

對外提供TCP服務的進程,在壓測時發現,TCP連接SYN響應慢,甚至不響應。導致無法正常接收新的請求,影響業務。

抓包分析: 
de089bf8b9eea311dd1cf971624cdbf7b94e9dc9

c1ca68e268bdb792bb818bda0540c93e4539e63a

989252f5fb5b5509f3892d5a8d544cbd84fb572d

61e7b259b1f6f8d7611beddee5b3ce9db465fe15


如上有大量的重傳,有時能夠正常的響應請求,有時就無法響應請求。

排查思路

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

  上一篇:go  "永恒之藍"勒索病毒凶勐 周一上班請用正確姿勢打開電腦
  下一篇:go  跨地域的VPC私網互通【高速通道案例】