事件描述
公司监控系统事件报警某个应用的磁盘满了。通过后端执行命令发现 CPU 占用 200%。此应用的配置信息为:2C8G 磁盘为:40G
如下图所示
通过图上的标红的几个指标可以看到:1)CPU 使用率很高 2)CPUload 都三位数了。 3)si 占用 10% 左右。
当然这个问题我比较清楚是磁盘的原因。
采取措施
删除大文件文件。
然而删除大文件后发现磁盘空间并未释放,是因为文件删除了但是对应的进程没杀掉,但是磁盘空间还未释放。也找不到大文件了。CPU 使用仍然超高。
然后用 jvm 自带的工具查看,进一步确认是文件的读写导致的 CPU 使用率高。
最后进行了杀掉进程才发现磁盘被释放,重启应用系统恢复正常。所以这个性能问题给我们一个提示:有时候你看到的性能表象不一定真正是问题的原因。CPU 很高不一定是 CPU 的核数不够,有可能是磁盘或者内存的问题导致的 CPU 飙升,所以要透过问题看本质,才能真正的解决性能问题。