查看当前cpu峰值
在本文中,我们将讨论如何解决北美主要交易应用程序中出现的CPU高峰问题。 突然,此应用程序的CPU开始飙升至100%。
实际上,这个团队并没有进行任何新的代码部署,也没有进行任何环境更改,也没有翻转任何标志设置-但是突然之间,CPU开始出现故障。
我们甚至验证了流量是否有所增加,这归因于流量的激增。 但是流量也没有增加。
还请参见: C通过Java并成为排名第一的编程语言
数据采集
该应用程序在Java,Tomcat技术堆栈上运行。 我们要求站点可靠性工程(SRE)团队从发生此问题的机器上捕获以下两个工件:
1. top -H输出
2.线程转储
让我们看看这些工件在本节中包含什么。
1. top -H
总是由于线程导致CPU峰值。 因此,我们必须隔离导致此CPU峰值的线程。 显然,该应用程序具有数百个线程。 从这数百个线程中,我们需要确定导致CPU消耗激增的线程? 这是第一个挑战。
这是“ top” unix命令行实用程序工具派上用场的地方。 你们大多数人可能都熟悉“ top” unix命令行实用程序。 此工具显示设备上正在运行的所有进程。 它还显示了每个进程所消耗的CPU,内存。
该工具有一个秘密的“ -H”选项,许多工程师