Find BottleNeck In Host
Find BottleNeck In Host 可以通过以下操作完成:
- Check the monitor
- CPU
- RAM
- I/O
Check the monitor
在 Linux 上,主要瓶颈是内存 (RAM)、计算 (CPU) 或 I/O(磁盘操作)。在内存方面,速度可能是一个因素,如果内存已经用完了这是一个大问题。对于 CPU,如果使用的是较旧的硬件,每个 CPU 内核的工作速度都会慢很多,而且可能还不够。对于 I/O,从机械硬盘读取以及过多的磁盘写入可能是问题所在。
CPU
查看 CPU 监控数据,检查 CPU 的使用情况。在应用提供服务期间,CPU 如果达到95%以上,内存 (Mem) 和交换 (Swp) 在正常使用范围内,证明CPU达到瓶颈。
如果应用程序或进程没有以正确的性能级别运行,并且看到 95% + CPU 利用率恒定,您可以执行以下操作:
- 紧急解决:为服务器增加 CPU 个数
- 排查问题:排查并定位应用程序,并进行相应的问题排查、解决
如果增加 CPU 个数后,CPU 使用率依旧在 95% 以上,但对应用服务提供了更好的性能、吞吐量,则考虑增加 CPU 解决问题,否则考虑排查应用程序中问题所在。
RAM
查看 RAM 监控数据,如果 Memory 使用100%,而 Swap 使用 50%,则系统几乎肯定会进行大量交换。交换是磁盘与主存交换内容的过程(使用特殊的交换分区),因为Memory 使用 100%,一旦系统启动并继续交换,它将变得异常缓慢。
例如,可能有20%的内存正在使用,但还有大量的内存剩余。这可能表明操作系统已经将一些低频率使用的内存区域移到了磁盘上,以优化主存。由于仍然有大量内存是空闲的,所以这种情况没有问题。
I/O
当我们观察监控数据时发现,CPU、RAM都没有达到瓶颈,接下来就要看一下 I/O 。
例如我们看到 SSD 中 I/O 不是很高,但是每秒向 HDD 中的读写 I/O 相当密集,在这种情况下就需要解决 I/O 问题,例如:停止一些重写入、升级 I/O系统、更换读写更快的 I/O 设备、或是更换更快的 SSD。