在使用Linux国外服务器的时候,务必要对各项性能进行监控,以便及时了解服务器的运行状况。目前Linux服务器中的许多因素都会影响其整体性能或托管在其上的网站程序运行。
当然,对于Linux管理员来说,可能更需要监控一些关键指标,它们的重要性更加不言而喻,例如响应时间或进程的执行时间、吞吐量——服务器在给定时间内可以完成的工作总量等。
在本文中,小编简单介绍在Linux服务器中需要监控的六个关键性能指标。阅读本文之后,你应该知道Linux 系统中哪些因素对整体系统性能有着影响,以及它们的相对重要性。
1、Linux CPU利用率
作为系统的大脑,功能正常的CPU是Linux服务器或任何计算机的关键部分。因此,CPU使用率是Linux服务器中要跟踪的重要方面之一,它用于根据吞吐量来衡量系统性能。
目前有几种基于命令行和图形用户界面的工具可用于监视Linux系统上的CPU使用情况,例如top、glances(很受欢迎)、htop等。
Glances–Linux监控工具
Glances是一个开源实时监控实用程序,可以监控Linux系统的多个方面,例如CPU、内存、磁盘和网络使用情况。想要在Linux发行版上安装glances ,请运行以下命令:
$ sudo apt install glances [Debian、Ubuntu和Mint] $ sudo yum install glances [RHEL/CentOS/Fedora和Rocky/AlmaLinux] $ sudo emerge -a sys-process/glances [Gentoo Linux] $ sudo apk add glances [Alpine Linux] $ sudo pacman -S glances [Arch Linux] $ sudo zypper install glances [OpenSUSE]
以下是Debian Linux服务器上显示CPU使用率统计信息的glances监控工具的一部分截图,如下图所示:
# glances
可以看出,该CPU整体使用率为29.5%,用户空间进程或应用程序使用了更多的CPU时间。它显示任务总数 (156)、正在运行的任务数 (7)、处于睡眠模式的任务数 (81) 等。它还默认显示CPU消耗的进程列表。
top-Linux进程监控
top命令提供Linux系统中所有正在运行的进程以及CPU和内存利用率的动态实时视图,如下图所示:
# top
htop——Linux进程查看器
htop是一个交互式 Linux 系统进程查看器和进程管理器,它通过系统上的CPU和内存使用情况显示所有正在运行的进程的信息。要在Linux发行版上安装htop,可以运行以下命令:
$ sudo apt install htop [Debian、Ubuntu和Mint] $ sudo yum install htop [RHEL/CentOS/Fedora和Rocky/AlmaLinux] $ sudo emerge -a sys-process/htop [Gentoo Linux] $ sudo apk add htop [Alpine Linux] $ sudo pacman -S htop [Arch Linux] $ sudo zypper install htop [OpenSUSE]
下面是一个htop监控工具的截图,它显示了一个按CPU Usage划分的正在运行的进程列表。
# htop
根据在上面截图中看到的数字,CPU使用率指标分为三个主要类别或状态,具体如下:
- user——表示用户空间进程使用的CPU时间百分比。
- system——显示内核使用的CPU时间百分比。
- idle——显示未被主动使用的CPU时间百分比。
此外,还有以下 CPU 子状态:
- nice——是用户状态的一个子集,它表示具有正nice 值(比其它进程的调度优先级低)的用户级进程占用的CPU时间的百分比。
- irq或hi——显示用于服务硬件中断的CPU时间百分比。
- softirq或si——显示用于服务软件中断的CPU时间百分比。
- iowait或wa——空闲状态的子集,显示等待I/O操作(例如从磁盘读取和写入磁盘)所花费的CPU时间百分比。
- steal——显示管理程序中的虚拟CPU非自愿地等待物理CPU处理时间所占用的CPU时间百分比。
监控Linux CPU核心利用率
如果服务器有多个处理器(有时称为多核系统),还可以监控每个内核的利用率。在glances中,只需按下1
即可获得如下屏幕截图所示的视图。
此外,你还可以运行以下命令来查找服务器中的处理器总数:
# cat /proc/cpuinfo | grep ^processor
要按CPU使用率查找运行最频繁的进程,请运行以下ps命令:
# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
2、监控Linux系统CPU负载
CPU负载是正在使用或希望使用CPU时间的进程/线程数。在Linux系统上,它不仅涉及可运行的任务(不被任何东西阻挡,准备在CPU上运行或在运行队列中等待),还涉及处于不间断睡眠状态的任务,例如,等待I/O操作完成的进程或其它事情。
它与上面介绍的CPU使用率不同。平均负载是一段时间内的平均系统负载,在Linux中通常是一分钟、五分钟和十五分钟。如果平均负载为0.0,则系统处于空闲状态。
例如,如果你有一台12核的多核服务器,平均负载为8.32,如下面的屏幕截图所示,这意味着CPU在容量不足的情况下工作,它可以承受更多负载。如果平均负载为12,则意味着满容量。
# glances
另一方面,大于CPU内核总数的平均负载表明进程正在排队——负载正在增加。以下屏幕截图显示了一个不健康的系统,它表示已过载运行:
请记住,如果1分钟的平均值高于5分钟或15分钟的平均值,就像前面示例中的情况(68.24、27.55、12.11),则表明CPU负载正在飙升。但是,如果1分钟的平均值低于5或15分钟的平均值,则负载正在下降。
当然,你还可以使用uptime或w命令查看平均负载。在本示例中,负载是在增加的。
# uptime 或者 # w
高CPU使用率或CPU负载的原因
导致CPU高或极高的一些最常见原因包括在同一台服务器上运行多个CPU密集型应用程序/服务(资源规格低),以及旨在反复自我复制以耗尽系统资源的恶意软件。当流量很高时,流媒体和游戏应用程序也会导致极高的CPU使用率和CPU负载。
此外,DoS或DDoS攻击可能会触发对托管应用程序的大量连接和请求,需要CPU进行额外的复杂计算。应用程序中的错误或未优化的代码有时会导致无限循环,从而耗尽可用的CPU时间。
注意:CPU使用率可能很低,但系统或CPU负载却很高。这种情况可能是由于大量线程处于不间断睡眠状态加上正常的CPU需求造成的。
高CPU使用率或CPU负载的影响
如果Linux系统过载,CPU密集型应用程序可能会冻结或崩溃,其它正在运行的应用程序可能会变慢并最终停止响应用户输入;备份和系统警报等自动化作业可能会失败,应用程序可能会以蜗牛般的速度打开或根本无法打开等。因此,当然CPU负载运行时,一定要及时知道原因并建议解决,否则可能会造成系统崩溃。
最大限度地减少高CPU使用率和CPU过载
以下是解决Linux服务器中高CPU使用率或系统负载的一些方法,仅供参考:
- 快速添加更多/升级CPU,尤其是在虚拟环境或者VPS主机中。
- 必要时重新启动CPU密集型应用程序。
- 停止/禁用未使用的服务/应用程序。
- 检查用户应用程序中可能导致无限循环的错误或未优化的代码。
- 限制Web服务器、应用程序服务器和数据库系统中允许的连接或请求数量,以减轻DoS或DDoS攻击。
- 如果服务器开始冻结/崩溃,可在必要时重新启动服务器。
- 使用脚本或监控应用程序来设置在CPU使用率异常高时触发的系统警报。
总结
以上就是简单介绍监控Linux服务器CPU利用率和负载的几种工具,功能还是比较强大,有需要的朋友可以安装用用,后面将会介绍监控Linux服务器上的内存利用率情况,欢迎关注。
其实,对于运行在Linux服务器上的应用程序,性能监控非常重要,主要表现在:
- 及时发现性能瓶颈:监控服务器性能可以帮助你及时发现应用程序的性能瓶颈。通过监控 CPU、内存、磁盘和网络使用情况等指标,你可以了解应用程序的负载情况,识别哪些指标可能成为瓶颈,并及时采取措施。
- 提高应用程序可用性:通过监控服务器性能,你可以及时发现并解决可能导致应用程序崩溃或停机的问题。这可以帮助你提高应用程序的可用性和可靠性。
- 优化服务器性能:监控服务器性能可以帮助你了解服务器的使用情况,并找到一些可以优化的点。通过识别资源瓶颈并对服务器进行调整和优化,可以提高服务器的性能和可扩展性。
- 提高用户体验:通过监控服务器性能并进行优化,可以提高应用程序的响应速度和性能,从而提高用户体验。这对于各种应用程序都很重要,尤其是对于需要处理大量用户请求的 Web 应用程序。
总之,性能监控对于保证应用程序的稳定性、可靠性和高性能至关重要,可以帮助Linux管理员快速发现和解决性能问题,提高服务器的性能和用户体验。
推荐阅读: