top
或htop
命令实时查看CPU和内存的使用情况。对于更详细的信息,可以使用vmstat
、free
或sar
等工具。服务器查看CPU内存使用情况
在服务器管理和维护中,了解系统的资源使用情况是至关重要的,本文将详细介绍如何通过命令行工具来查看Linux服务器的CPU和内存使用情况,以下是一些常用的方法和命令:
一、查看CPU信息
查看物理CPU个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
这条命令通过读取/proc/cpuinfo
文件并过滤出物理CPU的信息,然后进行去重和计数,得出物理CPU的个数。
查看每个物理CPU中的核数
cat /proc/cpuinfo | grep "cpu cores" | uniq
此命令会显示每个物理CPU中的核数。
查看系统整体性能情况
vmstat
该命令输出关于进程、内存、分页、块IO、陷阱以及CPU活动的信息,具体字段说明如下:
Procs (进程):r(运行队列中的进程数量)、b(等待IO的进程数量)
Memory(内存):swpd(使用虚拟内存大小)、free(空闲物理内存大小)、buff(用作缓冲的内存大小)、cache(用作缓存的内存大小)
Swap(交换分区):si(每秒从交换区写到内存的大小)、so(每秒写入交换区的内存大小)
IO(块设备):bi(每秒读取的块数)、bo(每秒写入的块数)
System(系统):in(每秒中断数)、cs(每秒上下文切换数)
CPU(以百分比表示):us(用户进程执行时间百分比)、sy(内核系统进程执行时间百分比)、id(空闲时间百分比)
二、查看内存使用情况
查看内存使用情况
free -h
free
命令用于显示系统内存的使用情况,包括总内存、已用内存、空闲内存、共享内存、缓冲区缓存等,选项-h
使输出更加人性化,以更易读的形式显示。
示例输出:
total used free shared buff/cache available Mem: 7.7G 1.1G 5.6G 438M 987M 6.0G Swap: 2.0G 0B 2.0G
total
:总计物理内存的大小。
used
:已使用的内存大小。
free
:可用内存大小。
shared
:多个进程共享的内存总额。
buff/cache
:用于缓冲和缓存的内存大小。
available
:应用程序可用的内存大小。
清除缓存
如果缓存占用过多接近总内存,可以使用以下命令清除缓存:
echo 1 > /proc/sys/vm/drop_caches # 释放网页缓存 echo 2 > /proc/sys/vm/drop_caches # 释放目录项和索引 echo 3 > /proc/sys/vm/drop_caches # 释放网页缓存、目录项和索引
三、监控实时系统性能
使用top命令
top
top
命令可以动态查看系统的整体性能,包括各个进程的CPU和内存使用情况,按下q
键或Ctrl+C
可以退出该命令。
示例输出:
top 15:47:26 up 10 days, 3:45, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.5 us, 0.5 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8067744 total, 118592 used, 7949152 free, 438088 buffers KiB Swap: 2097148 total, 0 used, 2097148 free. 1572864 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 123456 12345 1023 R 0.5 0.2 0:00.01 someprocess
%Cpu(s)
:各CPU状态的占比。
KiB Mem
:内存使用情况。
KiB Swap
:交换分区使用情况。
PID
、USER
、PR
、NI
、VIRT
、RES
、SHR
、S
、%CPU
、%MEM
、TIME+
、COMMAND
:分别表示进程ID、所有者、优先级、Nice值、虚拟内存、常驻内存、共享内存、状态、CPU使用率、内存使用率、运行时间和命令名。
使用uptime命令
uptime
uptime
命令可以查看系统的平均负载和运行时间。
示例输出:
15:47:26 up 10 days, 3:45, 2 users, load average: 0.00, 0.01, 0.05
load average
:过去1分钟、5分钟和15分钟的平均负载。
使用ps命令
ps aux --sort=-%cpu | head -n 10
这条命令列出了CPU使用率最高的前10个进程。
示例输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1234 50.0 1.2 123456 12345 ? R 15:47 0:00 someprocess user 5678 20.0 0.5 56789 5678 pts/0 S 15:45 0:00 anotherprocess ...
%CPU
:CPU使用率。
%MEM
:内存使用率。
VSZ
:虚拟内存大小。
RSS
:常驻内存大小。
TTY
:终端类型。
STAT
:进程状态。
START
:启动时间。
TIME
:运行时间。
COMMAND
:命令名称。
四、其他相关命令
lsmod命令
lsmod | grep ip_vs
检查内核模块是否加载。
lspci命令
lspci
查找PCI设置。
iptraf命令
iptraf
网络流量监控工具,建议使用centos自带的工具iptraf。
uname命令
uname -a
查看系统内核版本。
五、常见问题解答(FAQs)
Q1. 如何找到占用CPU最多的进程?
A1. 你可以使用以下命令找到占用CPU最多的进程:
ps aux --sort=-%cpu | head -n 10
这条命令会列出CPU使用率最高的前10个进程,如果你只关心最高的一个进程,可以结合head -n 1
来使用:
ps aux --sort=-%cpu | head -n 1
Q2. 如果发现某个进程的CPU占用率非常高,如何处理?
A2. 如果发现某个进程的CPU占用率异常高,首先需要确认该进程是否正常工作,可以通过以下步骤进行处理:
1、识别进程:使用ps aux | grep [PID]
命令查看进程详细信息。
2、终止进程:如果确定该进程异常,可以使用kill -9 [PID]
命令强制终止。
ps aux | grep [PID] kill -9 [PID]
3、分析日志:检查系统和应用日志,找出导致CPU占用过高的原因,避免问题再次发生。
小伙伴们,上文介绍了“服务器查看cpu内存使用情况”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。