meolu / walle-web

walle - 瓦力 Devops开源项目代码部署平台
https://walle-web.io
Apache License 2.0
11.86k stars 2.76k forks source link

out of pty devices #1087

Open minminmsn opened 4 years ago

minminmsn commented 4 years ago

问题: out of pty deviceswalle

分析

[root@VM_4_7_centos ~]# ls /dev/pt*
/dev/ptmx

/dev/pts:
0     1432  1868  2301  2737  3171  3606  4040  4476  4910  5345  5780  6214  665   7084  7519  7954
1     1433  1869  2302  2738  3172  3607  4041  4477  4911  5346  5781  6215  6650  7085  752   7955
10    1434  187   2303  2739  3173  3608  4042  4478  4912  5347  5782  6216  6651  7086  7520  7956
100   1435  1870  2304  274   3174  3609  4043  4479  4913  5348  5783  6217  6652  7087  7521  7957
1000  1436  1871  2305  2740  3175  361   4044  448   4914  5349  5784  6218  6653  7088  7522  7958
......
1416  1851  2286  2720  3155  3590  4024  446   4895  5329  5764  6199  6633  7068  7502  7938  997
1417  1852  2287  2721  3156  3591  4025  4460  4896  533   5765  62    6634  7069  7503  7939  998
1418  1853  2288  2722  3157  3592  4026  4461  4897  5330  5766  620   6635  707   7504  794   999
1419  1854  2289  2723  3158  3593  4027  4462  4898  5331  5767  6200  6636  7070  7505  7940  ptmx

[root@VM_4_7_centos ~]# ls /dev/pt*|wc -l
8357

[root@VM_4_7_centos ~]# lsof /dev/ptmx |head 
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    19069 root    8u   CHR    5,2      0t0 1121 /dev/ptmx
sshd    19069 root   12u   CHR    5,2      0t0 1121 /dev/ptmx
sshd    19069 root   13u   CHR    5,2      0t0 1121 /dev/ptmx
python  24505  www    6u   CHR    5,2      0t0 1121 /dev/ptmx
python  24505  www    7u   CHR    5,2      0t0 1121 /dev/ptmx
python  24505  www    8u   CHR    5,2      0t0 1121 /dev/ptmx
python  24505  www    9u   CHR    5,2      0t0 1121 /dev/ptmx
python  24505  www   11u   CHR    5,2      0t0 1121 /dev/ptmx
python  24505  www   12u   CHR    5,2      0t0 1121 /dev/ptmx
[root@VM_4_7_centos ~]# lsof /dev/ptmx |wc -l
8356

解决

[root@VM_4_7_centos ~]# echo "kernel.pty.max = 16384" >> /etc/sysctl.conf
[root@VM_4_7_centos ~]# sysctl -p

备注: 这个参数默认是1024,不知道walle这边为啥不释放,一直在增加,如果不重启服务器,在线解决只能修改kernel.pty.max参数。

说明pty - pseudoterminal interfaces A pseudoterminal (sometimes abbreviated "pty") is a pair of virtual character devices that provide a bidirectional communication channel. One end of the channel is called the master; the other end is called the slave. The slave end of the pseudoterminal provides an interface that behaves exactly like a classical terminal. A process that expects to be connected to a terminal, can open the slave end of a pseudoterminal and then be driven by a program that has opened the master end. Anything that is written on the master end is provided to the process on the slave end as though it was input typed on a terminal.

Pseudoterminals are used by applications such as network login services (ssh(1), rlogin(1), telnet(1)), terminal emulators such as xterm(1), script(1), screen(1), tmux(1), unbuffer(1), and expect(1).

后续: 目前只是临时解决,这个参数默认是1024,不知道walle这边为啥不释放,一直在增加,如果不重启服务器,在线解决只能修改kernel.pty.max参数。后续更好的解决方案见github更进。

minminmsn commented 4 years ago

为啥 walle pty 会话一直在增加? 老是修改kernel.pty.max参数也不是回事。

li55626437 commented 4 years ago

为啥 walle pty 会话一直在增加? 老是修改kernel.pty.max参数也不是回事。

发布过后应该释放才对嘛