5 种方法排查 Linux 系统运行速度慢的现象
点击上方“杰哥的IT之旅”,选择“置顶公众号”
干货、福利第一时间送达!
往往在实际工作中,难免会遇到服务器系统运行速度缓慢的现象,那么,究竟遇到这种现象时,我们该怎么办?下面针对此问题进一步总结遇到该现象时,将如何来判断到底是哪个正在运行的进程、CPU 运行状态、内存运行是否过载、交换内存区是否已满、以及硬盘是否运行正常等相关因素来进行判断。
相信大家,遇到该现象时,首先会检查 CPU 的信息,在 Linux 系统中,提供了 proc 文件系统显示系统的软硬件信息。那么可以执行命令 cat /proc/cpuinfo文件系统中查看 CPU 的提供商和相关详细配置信息;
cat /proc/cpuinfo
lscpu
通过上述两条命令 cat /proc/cpuinfo 和 lscpu 将显示了有关 CPU 的详细信息。
简单说明几项输出的含义:
vendor_id:CPU 制造商。
model name:表示 CPU 的制造商、型号和速度。本文中是 2.20GHz 的英特(R)酷睿(TM)CPU。
cpu MHz:用于测量通道、总线和计算机内部时钟的传输速度。本文中传输速度是 2194.919。
cache size:CPU 二级缓存大小。
cpuid level:执行 cpuid 指令前,eax 寄存器中的值,根据不同的值 cpuid 指令会返回不同的内容。
bogomips:bogo 是 bogus(伪)的意思,MIPS 是指每秒百万条指令。它是显示系统性能的独立程序。
除了上述检查的情况之外,还可以使用命令 top 来检查 CPU 负载,将实时显示 process 的动态。资源使用最高的进程排在最前面。
参数:
-c:显示完整命令;
-b:以批处理模式显示程序信息;
-d NUM:设置信息更新次数;
-n NUM:显示更新十次后退出;
-p PID:将显示指定的进程信息;
-S:以累积模式显示程序信息;
假如你想知道到底哪个进程产生了 IO,数据读取速度等信息,这个时候就需要 iotop 这个工具了。它的输出和 top 命令类似;
参数:
-o:只显示正在产生 I/O 的进程或线程;
-b:非交互模式,一般用来记录日志;
-n NUM:设置监测的次数,默认无限;
-d SEC:设置每次监测的间隔,默认 1 秒;
-p PID:指定监测的进程/线程;
-u USER:指定监测某个用户产生的 I/O;
-P:仅显示进程,默认 iotop 显示所有线程;
-a:显示累积的 I/O,而不是带宽;
-k:使用 kb 单位进行显示;
-t:时间戳;;
-q:只在第一次监测时显示列名;
-qq:将永远不显示列名;
-qqq:将永远不显示 I/O 汇总;
service --status-all 该命令查看所有服务当前的运行状态。将按照字母的顺序运行所有的 init 脚本。
service --status-all
chkconfig --list 显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --list
initctl 是守护进程控制工具,管理员可以与 Upstart 守护进程进行通信和交互。
initctl list
free 命令:用于显示内存状态,会显示内存的使用情况,实体内存,虚拟交换内存,共享内存,以及系统核心使用的缓冲区等等;
语法:
free [-bkmotV] [-s <间隔秒数>]
参数:
-b:以 byte 为单位显示内存使用情况;
-k:以 KB 为单位显示内存使用情况;
-m:以 MB 为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-t:显示内存总和列;
-V:显示版本信息;
-s <间隔秒速>:将以动态的形式持续观察内存使用情况;
上述 free 命令各项参数实例
推荐阅读
2、神奇,原来 Linux 终端下居然还有进程记帐功能...
9、百度网盘 Linux 版正式发布:专为中标麒麟桌面操作系统打造