生产环境问题:如果Linux 的cpu 100%,怎么办?
查看进程占用最高的服务【考虑服务的重要性,如要杀掉服务,需要注意时机】
可以使用以下命令查使用内存最多的10个进程
ps -aux | sort -k4nr | head -n 10
可以使用一下命令查使用CPU最多的10个进程
bashps -aux | sort -k3nr | head -n 10
如果发现重启服务后,还是出现Linux 的cpu 100%,怎么办?
[root@localhost ~]# ps -aux | sort -k4nr | head -n 10
root 469 1.0 9.1 2532240 172556 pts/0 Sl 08:26 0:17 java -jar attend-system-0.0.1-SNAPSHOT.jar
root 11385 0.2 4.1 1558192 78140 ? Sl Apr26 3:05 mongod -f /etc/mongodb/mongodb.conf
root 402 0.0 1.7 71896 33600 ? Ss Apr23 0:59 /usr/lib/systemd/systemd-journald
root 947 0.0 1.2 332628 22992 ? Ssl Apr23 0:31 /usr/sbin/rsyslogd -n
如果是项目,分析项目的线程,通过jstack的命令查看
[root@localhost ~]# top -H -p 469
top - 08:57:11 up 3 days, 12:10, 3 users, load average: 0.18, 0.07, 0.06
Threads: 28 total, 0 running, 28 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.7 sy, 0.0 ni, 98.3 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1882192 total, 75108 free, 350312 used, 1456772 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1354880 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
469 root 20 0 2532240 172556 13604 S 0.0 9.2 0:00.00 java
470 root 20 0 2532240 172556 13604 S 0.0 9.2 0:03.95 java
jstack命令的使用 可以参考以下blog
jstack命令的使用
jstack命令解析