LinuxBCC实例卡顿问题
当BCC实例的运行速度变慢或出现网络断开现象时,有可能是BCC的CPU和网络的使用率过高导致。
CPU使用率高问题定位
登录BCC实例,如果无法SSH,请通过VNC登录。
运行top命令
返回结果
第一行:系统当前的时间,该BCC实例已运行时间,当前共有几个个用户登录, 最近1分钟、最近5分钟和最近15分钟的CPU平均负载。
第二行:当前系统中任务运行情况。
第三行:CPU资源总体使用情况。
第四行:内存资源总体使用情况。
下方动态显示的为各进程的资源占用情况
可以通过以下命令可以查看每个进程ID对应的程序文件:
ls -l /proc/PID/exe
CPU使用率高问题处理
对于CPU使用率高的具体进程,如果是异常进程,可以直接通过kill 或 top 命令终止进程。
对于kswapd0进程导致的CPU使用率高的问题,则需要对应用程序进行优化,或者通过增加内存进行系统规格的升级。
kswapd0是系统的虚拟内存管理程序,如果物理内存不够用,系统就会唤醒kswapd0进程,由kswapd0分配磁盘交换空间用作缓存,因而占用大量的CPU资源。
使用kill命令终止CPU使用率高的进程
kill -9 PID
使用top命令终止CPU使用用率高的进程
在top命令运行的同时,按下小写的“k”键。
输入要终止进程的PID
kswapd0进程占用导致CPU使用率高
可通过以下步骤排查进程的内存占用情况。
通过top命令查看kswapd0进程的资源使用情况。
如果kswapd0进程持续处于非睡眠状态且运行时间较长,可以初步判定系统在持续的进行换页操作,需将问题转向内存不足的原因来排查。
通过vmstat命令进一步查看系统虚拟内存的使用情况。
如果si和so的值也比较高,说明系统存在频繁的换页操作,系统物理内存不足。
si:每秒从交换区写到内存的大小,由磁盘调入内存。
so:每秒写入交换区的内存大小,由内存调入磁盘。
对于内存不足问题,可以通过free、ps等命令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。
可通过在业务空闲期重启应用或者系统释放内存【如要从根本上解决内存不足的问题,需要对服务器进行扩容,增加物理内存】
网络使用率高问题分析
当网络使用率过高时,可通过流量监控工具nethogs来实时监测统计各进程的网络使用情况,并进行问题定位。
以centos 8 为例
1、安装 nethogs
yum install -y nethogs
2、查看网卡的网络使用情况
nethogs eth0 【网卡名为eth0为例】