对于内存过高的情况下
三种处理方法
1.将没有用的进程杀死
2.查看占用内存高的应用的日志,对齐进行相应的优化
3.垂直优化,直接加内存条
一般遇到CPU负载过高的时候
一般是使用top命令去看,看那个cpu的那一列,看看有没有特别多的,
然后就使用top -Hp 指定PID 查看详细的线程占用情况,然后如果寻找占比较大的,进行查询他这个线程在做啥
printf '%x\n' PID
然后就使用grep专门看看这个pid在做啥
jstack 指定的pid | grep '0x那个十六进制' -C10 -color
去查看括号内的任务是啥,然后再使用jstat -gcutil 查询的pid 间隔的时间输出一次
整个过程有点涉及到cpu方面,一般是这样就能看到程序的具体运行
IO负载高的情况该如何处理
IO负载过高的话,一般是通过iostat,iotop去查询状态,iotop可以查看占用情况,可以使用类似于cpu过载的时候,一般就是日志写入磁盘过多导致的
如果是读数据库方面的话,那么可能是慢查询导致的,这个需要考虑优化问题
web访问量过大写日志增加,对于日志进行关闭,或者优化一下,关闭一些不需要的日志选项
debug模式的日志会相较于release比较多
对于数据库日志方面的话,一般考虑可以设定一定时间,先放在内存里面,几秒在写入到硬盘中