移动云云主机出现卡顿现象怎么办?
一、云主机卡顿的5种情况
1. 云主机进程与服务占用过多cpu和内存。
2. 自定义计划任务在对应时间段内执行。
3. Web 服务器的配置参数超过了服务器的性能。
4. 连接数过高。
5. 网络延迟过高
二、云主机卡顿排查思路
1. 云主机进程与服务占用过多cpu和内存
故障现象:云主机卡顿
可能原因:服务进程异常、挂死
解决方法:
Linux操作系统
1) 统计cpu占用率最高的前10条进程
命令:ps aux | sort -rnk 3 | head
可以看出用户有一个进程对cpu消耗极高,将其kill掉即可
命令:kill -9 23782
2) 统计内存占用率最高的前10条进程
命令:ps aux | sort -rnk 4 | head
可以看出用户有一个进程对内存消耗极高,将其kill掉即可
命令:kill -9 2107
3) 使用sar工具检测云主机资源状况
A. 安装sar工具使用 yum install sysstat 进行安装,然后使用 /etc/init.d/sysstat start 启动服务。
B. 查看 CPU 负载用法:sar -u 1 5
示例输出:
参数解释:
%user:用户模式下消耗的 CPU比例。
%nice:通过 nice 改变了进程调度优先级的进程,在用户模式下消耗的 CPU 时间的比例。
%system:系统模式下消耗的 CPU 时间的比例。
%iowait:CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例。
%steal:利用 Xen 等操作系统虚拟化技术,等待其它虚拟 CPU 计算占用的时间比例。
%idle:CPU 空闲时间比例。
C. 查看平均负载命令:sar -q 1 60
参数解释:
指定 -q 后,可以查看运行队列中的进程数、系统上的进程大小、平均负载等信息。
runq-sz:等待运行的进程数。
plist-sz:进程列表中进程和线程数量。
ldavg-1:最后 1 分钟的平均负载。
ldavg-5:过去 5 分钟的平均负载。
ldavg-15:过去 15 分钟的平均负载。
D. 查看内存负载命令:sar -r 1 3
参数解释:
kbmemfree:和 free 命令中的 free 值相同,但不包括 buffer 和 cache 空间。
kbmemused:和 free 命令中的 used 值相同,但包括 buffer 和 cache 空间。
%memused:物理内存使用率
kbbuffers 和 kbcached:和 free 命令中的 buffer 和 cache 一致。
kbcommit:当前系统所需要的内存,确保不溢出而需要的内存(RAM+swap)。
%commit:kbcommit 与内存总量(包括swap)的百分比。
E. 查看页面交换状况命令:sar -W 1 3
参数说明:
pswpin/s:每秒系统换入的交换页面(swap page)数量。
pswpout/s:每秒系统换出的交换页面(swap page)数量。
Windows操作系统
1) 右键单击开始栏-任务管理器-进程-点击“cpu”即可按cpu占用由高至低排序
观察CPU占用率,将占用CPU高的异常进程结束即可。
2) 点击“内存”即可按内存占用由高至低排序,右键点击“结束进程即可”
2. 自定义计划任务在对应时间段内执行
故障现象:crontab有异常的计划任务
可能原因:安装了第三方不安全软件或遭到系统被入侵
解决方法:检查crontab定时调度,操作如下:
1) 检查crond运行状态
命令:systemctl status crond
(centos7之前版本命令:service crond status)
running状态表示crond正在运行
2) 检查crontab运行脚本
命令:cd /var/spool/cron;ls -lrt
root用户有设置定时调度任务,执行命令:cat root
发现有两个异常任务,删掉这两行,使用命令:systemctl restart crond即可
3. Web 服务器的配置参数超过了服务器的性能
故障现象:web服务器卡顿,积压请求无法处理
可能原因:web服务器配置参数超过服务器的最大负载能力
解决方法:根据业务需求提升云主机性能,并按web服务器相关文档设置适合参数
4. 连接数过高
故障现象:端口连接数过高致使系统负载过大
可能原因:业务请求并发数过高,系统性能瓶颈
解决方法:根据业务需求提升云主机性能,或者添加云主机实现LB负载均衡,实现业务流量分割。查看端口连接数步骤:
1) 使用 netstat 来查看端口连接数。
netstat 命令各参数解释:
-t:指明显示 TCP 协议端口
-u:指明显示 UDP 协议端口
-l:仅显示监听套接字
-p:显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n:不进行 DNS 反向解析,只显示 IP (可以加速操作)
2) 停止端口
查找端口占用的进程,使用如下命令来查看(以查看9000端口为例):
netstat -antp | grep 9000
可以看到 PID 为 1070 的进程占用了这个端口。
停止相应进程即可。
5. 网络延迟过高
故障现象:远程ping云主机时不通,或出现掉包
可能原因:本地网络与云主机网络之间有网络节点异常
解决方法:
Linux系统
1) 使用mtr工具检测网络连通性
命令:mtr 8.8.8.8
结果分析:
默认配置下,返回结果中各数据列的说明:
Host:节点IP地址和域名。如前面所示,按n键可以切换显示。
Loss%:节点丢包率。
Snt:每秒发送数据包数。默认值是10,可以通过参数 -c 指定。
Last:最近一次的探测延迟值。
Avg、Best、Wrst:分别是探测延迟的平均值、最小值和最大值。
StDev:标准偏差。越大说明相应节点越不稳定。
windows系统
1) WinMTR 安装,直接解压运行即可。
2) 如下图所示,运行程序后,在 Host 字段输入目标服务器域名或 IP(注意前面不要包含空格)。
结果分析:
Hostname:节点 IP 或域名。
Nr:节点编号。
Loss%:节点丢包率。
Sent:已发送的数据包数量。
Recv:已成功接收的数据包数量。
Best 、Avg、Worst、Last:分别是到相应节点延迟的最小值、平均值、最大值和最后一次值。
StDev:标准偏差。越大说明相应节点越不稳定。
通过上述排查后,若问题仍未解决,请您记录检查过程各步骤的排查结果、相关日志信息或截图,然后联系移动云服务台提供技术支持。
本文由 vps主机对比评测网 刊发,转载请注明出处