处理服务器报错方法如下:
1. 服务异常的处理流程
2. 负载
2.1 查看机器 cpu 的负载
top -b -n 1 |grep java|awk '{print "VIRT:"$5,"RES:"$6,"cpu:"$9"%","mem:"$10"%"}'
2.2 查找 cpu 占用率高的线程
top -p 25603 -H
printf 0x%x 25842
jstack 25603 | grep 0x64f2
cat /proc/interrupts
(1)CPU
(2)Memory
(3)IO
(4)Network
可以从以下几个方面监控CPU的信息:
(1)中断;
(2)上下文切换;
(3)可运行队列;
(4)CPU 利用率。
3. 内存
3.1 系统内存
free 命令
[root@server ~]# free
total used free shared buffers cached
Mem: 3266180 3250000 10000 0 201000 3002000
-/+ buffers/cache: 47000 3213000
Swap: 2048276 80160 1968116
这里的默认显示单位是 kb。
各项指标解释
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
buffers: 磁盘缓存的大小。
cache:磁盘缓存的大小。
-/+ buffers/cached): used:已使用多大,free:可用有多少。
已用内存 = 系统used memory - buffers - cached
(47000 = 3250000-201000-3002000)
可用内存 = 系统free memory + buffers + cached
(3213000 = 10000+201000+3002000)