当时产品发现页面没法正常发送短信,点击就报错“out of memory ”,一看觉得内存溢出,连上服务器 发现内存还有不少。html
同时又发现xhell没法链接服务器。就解决 这个问题 java
[root@apps ~]# cat /var/log/securepython
Jul 19 21:16:22 apps sshd[17349]: pam_unix(sshd:session): session closed for user jgw Jul 19 21:17:53 apps sshd[21807]: Accepted password for jgw from 61.164.59.252 port 6452 ssh2 Jul 19 21:17:53 apps sshd[21807]: pam_unix(sshd:session): session opened for user jgw by (uid=0) Jul 19 21:18:06 apps sshd[21836]: Accepted password for jgw from 61.164.59.252 port 6453 ssh2 Jul 19 21:18:06 apps sshd[21836]: pam_unix(sshd:session): session opened for user jgw by (uid=0) Jul 19 21:18:18 apps su: pam_unix(su-l:session): session opened for user root by jgw(uid=1000)
参考:http://www.javashuo.com/article/p-qsuausuq-bz.html 这个文档操做并无解决问题。redis
后来查看每一个进程占用的线程数量:bash
[jgw@redis01 logs]$ ps -ef|grep java|awk '{print "lsof -p "$2" | wc -l"}'|bash #每一个进程的线程数量 116 76 127 0 128 111 124 147 88 236 153 77 310 141 97 299 113
其中发现有个进程的数量上千,就找出此进程,查看线程:服务器
[jgw@redis01 logs]$ ps -T -p 10214 #在ps命令中,“-T”选项能够开启线程查看。下面的命令列出了由进程号为<pid>的进程建立的全部线程。 PID SPID TTY TIME CMD 10214 10214 ? 00:00:00 java 10214 10216 ? 00:00:23 java 10214 10217 ? 00:00:00 java 10214 10218 ? 00:00:00 java 10214 10219 ? 00:00:00 java 10214 10220 ? 00:00:00 java 10214 10221 ? 00:00:00 java 10214 10223 ? 00:00:00 java 10214 10224 ? 00:00:00 java 10214 10225 ? 00:00:00 java 10214 10226 ? 00:00:36 java 10214 10228 ? 00:00:36 java 10214 10229 ? 00:00:08 java 10214 10230 ? 00:00:00 java
用了此命令后发现是ms-code进程链接了1000多个redis线程。就杀掉ms-code进程。恢复。session