当您的专用服务器上的应用程序出现问题时,系统管理员或开发人员的第一反应是查看可能导致服务器运行缓慢的原因。您运行netstat、top、free、ps、vmstat和iostat,但要得出结论,您需要准确了解您正在查看的内容。
专用服务器性能问题可能与网络、CPU、内存或存储有关。在这里,我们查看CPU和内存指标,以了解您的机器中发生了什么。我们使用top来衡量和显示您的所有Linux进程。Top是一个命令行,可以帮助您解析处理器活动。您将实时查看流程并按不同的详细信息对其进行排序。
顶部屏幕分为顶部的累积视图和下面显示的过程指标。
您可以按照手册页的说明向top提供不同的命令行选项以显示不同的指标。这是默认视图:
在顶部,屏幕显示任务(进程)的数量。如果使用H命令运行top,它会列出线程。
多线程程序(例如GoogleChrome)允许一个程序运行多个任务。这样,例如,Chrome可以在您查看另一个选项卡时下载一个页面,并同时响应诸如单击滚动条之类的事件。一个进程可以产生许多线程。当一个进程停止并等待另一个进程完成时,当它们陷入僵局时,它们本身可能会出现性能问题。
在?任务行中,我们总共有286个:1个正在运行,281个正在休眠(继续阅读以找出为什么这并不总是准确的),3个停止*和1个僵尸*。
*?stopped——要强制一个进程停止,比如vi,按'control-z'来停止它。
*zombie——这是一个“子”进程,没有被它的“父”正确地杀死。这听起来很可怕,但这就是架构的读取方式。
我们现在将继续下一行,继续阅读以获取更多信息。
从我们图像中的第三行开始。在?摘要屏幕中的%cpu之后,我们看到“我们”。?这意味着用户cpu时间,或处理用户程序所花费的时间。在我们的第一个示例中,机器花费了2.7%的时间在这上面。
sy?—系统cpu时间,或与内核执行低级功能(例如调度任务和响应中断(见下文))相对于运行应用程序指令(例如读取对象数组或进行数学运算)所花费的时间。
ni——一个不错的进程,一个低优先级的进程。它不是资源消耗或匆忙。
wa?—CPU正在等待某事完成,然后才能再次启动。
嗨——当设备发送需要立即响应的信息时,就会发生硬件中断。
si?—软件中断是一回事,除了它们来自软件。
st?—窃取时间被主机操作系统窃取或占用,这意味着该操作因任何原因而暂停。
KibMem?KiB?Swap——这些行显示了正在使用和空闲的内存,无论是在RAM(随机访问或内存芯片)中还是换出到磁盘虚拟内存。当然,交换空间可以在固态存储上,以使页面调入和调出(交换)运行得更快。

下面的屏幕截图显示了一个僵尸进程。为了进一步挖掘,您将安装adacontrol,然后学习如何运行ptree来打印进程树。
大多数计算机都有超过1个CPU,因此CPU使用的百分比可能大于100%。如果在运行top时按1,它会按核心显示%CPU。此外,一个CPU可以有多个内核,内核是CPU的一个分区,充当它自己的CPU)。
顶部屏幕的下半部分按流程显示指标。
您可以使用光标保持向上和向下移动(即,滚动进程)和从左到右(即,如果它不能全部适合屏幕)。
PR——调度优先级。RT表示实时。
NI——物超所值。如果<0表示它具有更高的优先级。
VIRT?—虚拟内存大小意味着代码大小、共享库和在内存上创建的数据,如对象。所以程序,它使用的子程序和程序消耗的内存。
RES——使用的物理内存。这反映在%mem计算中。
SHR?—共享或可以与另一个进程共享的空间。这并不意味着它现在是共享的。
S——你可能会注意到这里的所有任务都显示为睡眠状态,这对于仔细阅读的人会导致一个问题,如果他们正在睡眠,那么他们如何使用cpu?根据top的主页,该值仅适用于SMP(对称多处理)处理器。当我们在IntelXeon上运行它时,它会显示正在运行的进程。当我在IntelCoreI7上运行它时,它不会。
%CPU?—目前使用的CPU百分比。
%MEM?—使用的内存百分比。
TIME?—自任务启动以来专门用于任务的时间。
COMMAND——这是问题的症结所在,因为你想知道什么程序在做什么。
为Linux服务器发送电子邮件警报
好消息是,当阈值超过特定值时,您可以向自己发送电子邮件警报。坏消息是Gmail和其他电子邮件提供商可能会将其作为垃圾邮件阻止,因为您的Linux服务器不是广泛使用的smtp服务器。因此,您可以尝试改用Google的smtp.gmail.com服务器。您需要安装mailutils或其他一些邮件程序。或者将其邮寄到您的公司电子邮件地址,如果垃圾邮件规则阻止您,请让电子邮件管理员添加规则以将您的服务器列入白名单。
要监视您的服务器并发送警报,您可以像这样以批处理模式运行top,然后Grep输出您想要的任何文本:
%Cpu(s):6,3us,2,0sy,0,1ni,90,3id,1,2wa,0,0hi,0,0si,0,0st
然后编写一个shell脚本,或者更简单的Python脚本,使用正则表达式解析该行,将其划分为标记。然后根据某个阈值检查每个令牌。
本文来源:国外服务器--Linux监控(linux服务器监控系统)
本文地址:https://www.idcbaba.com/guowai/3704.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



