即刻开启真品质建站体验

×
错误消息
免费电话咨询

请您填写正确的联系方式,以便产品顾问尽快与您取得联系!

提交成功
最新
活动
咨询
购物车
帮助
重要通知

箭头云Linux系统带宽和CPU跑满或跑高排查

  • 作者:新网
  • 文章来源:新网
  • 更新时间:2019-02-21 17:53:13

 CPU跑满或跑高

如果服务器上的CPU持续跑高,则会对系统稳定性和业务运行造成影响。以下对CPU占用率较高问题的排查分析做简要说明。

使用vmstat 查看系统纬度的 CPU 负载

您可以通过vmstat从系统维度查看CPU资源的使用情况。

用法说明:

命令:

1.  vmstat -n 1

2.  # -n 1 表示结果一秒刷新一次。

示例输出:

图片1.png

返回结果中的主要数据列说明:

r:表示系统中 CPU 等待处理的线程。由于 CPU 每次只能处理一个线程,所以,该数值越大,通常表示系统运行越慢。

us:用户模式消耗的 CPU 时间百分比。该值较高时,说明用户进程消耗的 CPU 时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。

sy:内核模式消耗的 CPU 时间百分比。

waIO 等待消耗的 CPU 时间百分比。该值较高时,说明IO等待比较严重,这可能磁盘大量作随机访问造成的,也可能是磁盘性能出现了瓶颈。

id:处于空闲状态的 CPU 时间百分比。如果该值持续为 0,同时 sy 是 us 的两倍,则通常说明系统则面临着 CPU 资源的短缺。

使用top查看进程纬度的CPU负载

您可以通过top从进程纬度来查看其CPU、内存等资源的使用情况。

用法说明:

命令:

1.  top

示例输出:

图片2.png

回显说明:默认界面上第三行会显示当前CPU资源的总体使用情况,下方会显示各个进程的资源占用情况。

可以直接在界面输入大写字母P,来使监控结果按CPU使用率倒序排列,进而定位系统中占用CPU较高的进程。最后,根据系统日志和程序自身相关日志,对相应进程做进一步排查分析,以判断其占用过高 CPU 的原因。

操作案例

使用top直接终止CPU消耗较大的进程

如前面所述,可以通过top命令查看系统的负载问题,并定位耗用较多CPU资源的进程。

您可以直接在top运行界面快速终止相应的异常进程。说明如下:

1.想要终止某个进程,只需按下小写的k键。

2.输入想要终止的进程PID(top输出结果的第一列)。比如,如下图所示,假如想要终止 PID 为 23 的进程,输入 23后按回车。

图片3.png

3. 如下图所示,操作成功后,界面会出现类似 Send pid 23 signal [15/sigterm] 的提示信息让用户进行确认。按回车确认即可。

图片4.png

CPU使用率较低但负载较高

问题描述

Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高,如下图所示

图片5.png

处理办法

load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf 查看是否存在 D 状态进程。

D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决。

图片6.png

 

kswapd0 进程占用 CPU 较高

操作系统都用分页机制来管理物理内存,操作系统将磁盘的一部分划出来作为虚拟内存,由于内存的速度要比磁盘快得多,所以操作系统要按照某种换页机制将不需要的页面换到磁盘中,将需要的页面调到内存中,由于内存持续不足,这个换页动作持续进行,kswapd0是虚拟内存管理中负责换页的,当服务器内存不足的时候kswapd0会执行换页操作,这个换页操作是十分消耗主机CPU资源的。如果通过top发现该进程持续处于非睡眠状态,且运行时间较长,可以初步判定系统在持续的进行换页操作,可以将问题转向内存不足的原因来排查。

问题描述

kswapd0 进程占用了系统大量 CPU 资源。

处理办法

Linux 系统通过分页机制管理内存的同时,将磁盘的一部分划出来作为虚拟内存。而 kswapd0 是 Linux 系统虚拟内存管理中负责换页的进程。当系统内存不足时,kswapd0 会频繁的进行换页操作。而由于换页操作非常消耗 CPU 资源,所以会导致该进程持续占用较高 CPU 资源

如果通过 top 等监控发现 kswapd0 进程持续处于非睡眠状态,且运行时间较长并持续占用较高 CPU 资源,则通常是由于系统在持续的进行换页操作所致。则可以通过 free 、ps 等指令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。

如问题还没有解决,请提交工单请技术帮忙协助排查。

 

带宽跑满或跑高

对于正常进程导致的带宽跑满或跑高的问题,需要对服务器的带宽进行升级。对于异常进程,有可能是由于恶意程序问题,或者是部分 IP 恶意访问导致,也可能是服务遭到了 CC 攻击。

通常情况下,您可以使用 iftop 工具或 nethogs 查看流量的占用情况,进而定位到具体的进程。

使用iftop工具排查

1.在服务器内部安装iftop流量监控工具。

yum install iftop -y

图片7.png 

2.服务器外网带宽被占满时,如果通过远程无法登陆,可通过VNC登录到服务器内部,运行下面命令查看流量占用情况:

iftop -i eth1 –P

注意:-P参数将会显示请求端口。执行 iftop -i eth0 –P命令,可以查看通过服务器哪个端口建立的连接,以及内网流量。举例如下:

图片8.png

在上图中,您可以查看到流量高耗的是服务器上 53139 端口和 115.205.150.235 地址建立的连接。

3. 执行 netstat 命令反查 53139 端口对应的进程

netstat -tunlp |grep 53139

图片9.png

4.经反查,服务器上 vsftpd 服务产生大量流量,您可以通过停止服务或使用 iptables 服务来对指定地址进行处理,如屏蔽 IP 地址或限速,以保证服务器带宽能够正常使用。

使用nethogs进行排查

1.在服务器内部安装nethogs流量监控工具。

yum install nethogs -y

2.通过nethogs工具来查看网卡上进程级的流量信息,若未安装可以通过yum、apt-get等方式安装。举例如下:

a.  eth1 网卡跑满,执行命令 nethogs eth1。

b. 查看每个进程的网络带宽情况以及进程对应的 PID。

c. 确定导致带宽跑满或跑高的具体进程。

图片10.png

3. 若进程确定是恶意程序,可以通过执行 kill -TERM <PID> 来终止程序。

说明:如果是 Web 服务程序,您可以使用 iftop 等工具来查询具体 IP 来源,然后分析 Web 访问日志是否为正常流量。日志分析可以使用 logwatch 或 awstats 等工具进行。

如问题还没有解决,请提交工单联系技术为您处理。

技术问题

增值电信业务经营许可证:B1-20140435 京B2-20070152 域名注册服务批文号:信部电函[2005]263号 京ICP证000012
 京公网安备11030102000056号 京ICP备09061941号-4
Copyright©1993-2019 北京新网数码信息技术有限公司 版权所有