Linux服务器性能监控工具sar二

简介:

服务器高负载因何而起?

下列项目的过度使用会直接导致高负载问题:

  • CPU

  • 内存(包括虚拟内存)

  • 磁盘I/O

该如何检查这些项目?

这取决于大家是要审查当前资源使用情况还是历史资源使用情况。当然,在本文中我们将从这两方面进行探讨。

关于sar的简要说明

历史资源使用情况可通过sar工具查看,该工具在默认情况下应该通过sysstat软件包安装在所有cPanel服务器当中。只要通过cron命令对sysstat进行周期性执行(/etc/cron.d/sysstat),服务器的运行状态数据就会被收集起来。如果cron没有运行,sysstat将无法收集历史统计结果。

要在sar中查看历史资源使用情况,我们必须为文件提供与统计数据相符的路径。

举例来说,如果大家打算查看本月23号以来服务器的平均负载状况,可以运行以下命令:

代码:

[user@host ~]$ sar -q -f /var/log/sa/sa23

以上命令中的-q用于获取平均负载信息,而-f则用于指定sar从哪个文件中获取信息。请注意,sar可能无法使用一周之前乃至更早的运行信息。

如果大家打算查看当前日期的统计信息,则不必为其指令具体时间。输入以下命令即可显示今天的平均负载情况:

代码:

[user@host ~]$ sar -q

我们强烈建议大家阅读sar说明文档:

代码:

[user@host ~]$ man sar

它所提供的统计信息能够帮助我们确切掌握服务器的运行状态。

当前CPU使用情况

运行top,并在Cpu(s)一行中检查%id部分所显示的闲置CPU百分比。该数字越高结果越好,说明CPU的工作负载不强。处于99%闲置状态下的CPU几乎没有处理任何实际任务,而处于1%闲置状态下的CPU则意味着接近满载。

代码:

[user@host ~]$ top c

提示:可加写P根据消耗CPU资源的多少对进程加以分类。

历史CPU使用情况

查看“%idle”列:

代码:

[user@host ~]$ sar -p

当前内存使用情况

代码:

[user@host ~]$ free -m

提示:运行top c并加写M可查看哪个进程占用的内存量最大。

历史内存使用情况

根据sar版本的不同,命令内容也有所区别。早期版本通过添加“-r”参数显示内存使用百分比与虚拟内存使用百分比,但新版本则改用“-s”参数显示虚拟内存使用百分比。

Check %memused and %swpused:

代码:

[user@host ~]$ sar -r

或者:

代码:

[user@host ~]$ sar -r

代码:

[user@host ~]$ sar -S

内存使用情况提示:服务器内存占用量较高的情况其实非常正常。这是因为内存的读写速度及效率远高于服务器磁盘,因此操作系统倾向于将内存作为缓冲机制预先载入数据,从而提高数据读取速度。

同样,内存使用百分比也并不是什么大问题(除非大家没有设置虚拟内存分区,但这也与内存本身无关)。大家真正需要关注的是虚拟内存使用百分比,因为只有在服务器的物理内存被全部占用后、虚拟内存才会接替而上发挥作用。这一数字越低,就说明服务器的运行状态越好。如果虚拟内存使用率为0%,则意味着我们的服务器能够完全利用物理内存执行任务。

那么虚拟内存使用率达到多少才算过高?这取决于大家自己的感觉。一般来说,如果虚拟内存使用率一直不高、那么我们的服务器的运行状态还是比较理想的。如果大家发现虚拟内存使用率随时间不断提升(例如由1%到7%再到32%),这就代表服务器上的某些进程正在疯狂吞噬内存,我们需要及时展开调查以了解具体情况(而不该直接安装更多内存)。一旦服务器用尽了所有物理内存与虚拟内存,那么整套系统的运行将变得极为缓慢,需要经过重启才能暂时恢复正常。

当前磁盘I/O使用情况

注意:这一项对于OpenVZ/Virtuozzo容器不起作用。

以下命令将以每秒一次的频率连续显示十次磁盘使用率统计。请大家关注显示结果中的%util列:

代码:

[user@host ~]$ iostat -x 1 10

历史磁盘I/O使用情况

代码:

[user@host ~]$ sar -d

优秀的系统管理员能够准确把握服务器负载的基准线,并在当前负载超出基准时立即做出判断。这样做的主要目的(除了防止服务器陷入半瘫痪并不得不重新启动之外)是为了及时了解负载高企时服务器正在运行哪些项目。快速反应能帮助大家在发现问题后第一时间进行故障排查。

如果服务器负载过高的状况出现在凌晨两点到四点之间,那么正在熟睡中的我们肯定无法马上展开调查。虽然sar会一直守护在服务器身边,帮我们收集这段时间内到底哪些资源的使用率居高不下,但却无法揭示问题出现的实际原因。引发负载过高的原因多种多样,其中包括DoS攻击、垃圾邮件攻击、php脚本设计不当、网络蜘蛛在绘制网络图谱时太过积极、硬件故障、针对用户MySQL数据库的磁盘写入量暴增等等。

好消息是,大家可以利用工具收集这些信息,并在负载过高后将结果自动发送过来。如何实现?从进程列表入手:

代码: 

[user@host ~]$ ps auxwwwf

我创建了一个shell脚本,以我曾经管理过的服务器上的一套perl脚本为基础。这套脚本与其它服务器监控工具(例如Nagios)配合起来给我的工作带来诸多便利。它能检查六种不同项目(下面将详细介绍),并在进程列表中的条目超出阈值时向我发送邮件通知。

注意:cPanel公司对该脚本的开发、维护或技术支持不承担责任。请不要就这款脚本提出服务申请。如果您在使用中遇到任何问题,请到相关论坛上发帖或请教有经验的系统管理员。cPanel不提供与此脚本相关的任何支持。

它所检查的具体资源对象如下:

  • 一分钟平均负载

  • 虚拟内存使用数量(单位为KB)

  • 内存使用数量(单位为KB)

  • 每秒接收数据包数量

  • 每秒发出数据包数量

  • 进程总数

如何使用脚本

要自动运行此脚本,大家需要设置一项cron任务并根据实际情况设定运行频率。我发现每五分钟运行一次是个不错的选择。该脚本无需使用root身份运行,既然如此我们也就不必为其分配高权限。

如果上述监控资源对象中的某一项超过用户自定义的阈值,脚本会自动发送一封电子邮件,其中包含当前进程列表内容。

电子邮件的主题行如下所示:

代码:

server.example.com [L: 35] [P: 237] [Swap Use: 1% ] [pps in: 54  pps out: 289]

下面我们一一解释其中的条目:

  • L代表一分钟平均负载

  • P代表当前进程列表中的进程数量

  • Swap Usage代表虚拟内存使用百分比

  • pps in代表每秒接收数据包数量

  • pps out代表每秒发出数据包数量


     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1792584,如需转载请自行联系原作者







相关文章
|
15天前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
W9
|
2月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
131 1
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
60 4
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
86 4
|
2月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
2月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
2月前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
79 7
|
1月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
2月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
2月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
37 0