查看cpu,内存使用率(一)

liunx 收藏
0 19
1、free

# free -m

以MB为单位显示内存使用情况

# free -h

以GB为单位显示内存使用情况

# free -t

以总和的形式查询内存的使用信息

# free -s 5

周期性的查询内存使用信息

每5秒执行一次命令

[root@localhost ~]# free -s 5
              total        used        free      shared  buff/cache   available
Mem:       12137332     1280796     8875008      420268     1981528    10110136
Swap:       6160380           0     6160380

Mem:内存的使用情况总览表(物理内存)

Swap:虚拟内存。即可以把数据存放在硬盘上的数据

shared:共享内存,即和普通用户共享的物理内存值

buffers:用于存放要输出到disk(块设备)的数据的

cached:存放从disk上读出的数据

total:机器总的物理内存

used:用掉的内存

free:空闲的物理内存

注:物理内存(total)=系统看到的用掉的内存(used)+系统看到空闲的内存(free)

2、查看某个pid的物理内存使用情况

 cat /proc/PID/status | grep VmRSS

[root@localhost ~]# pidof nginx
27327 27326
[root@localhost ~]#
[root@localhost ~]# cat /proc/27327/status | grep VmRSS
VmRSS:      2652 kB
[root@localhost ~]#
[root@localhost ~]# cat /proc/27326/status | grep VmRSS
VmRSS:      1264 kB
[root@localhost ~]#
[root@localhost ~]# pidof java
1973
[root@localhost ~]# cat /proc/1973/status | grep VmRSS
VmRSS:   1166852 kB
3、查看本机所有进程的内存占比之和

cat mem_per.sh

[root@localhost ~]# cat mem_per.sh
#!/bin/bash
ps auxw|awk '{if (NR>1){print $4}}' > /opt/mem_list
awk '{MEM_PER+=$1}END{print MEM_PER}'  /opt/mem_list
[root@localhost ~]#
[root@localhost ~]# chmod 755 mem_per.sh
[root@localhost ~]#
[root@localhost ~]# sh mem_per.sh
64.4
[root@localhost ~]# 

脚本配置解释:
ps -auxw|awk '{print $3}'   表示列出本机所有进程的cpu利用率情况,结果中第一行带"%CPU"字符
ps -auxw|awk '{print $4}'   表示列出本机所有进程的内存利用率情况,结果中第一行带"%MEM"字符
ps auxw|awk '{if (NR>1){print $4}}  表示将"ps auxw"结果中的第一行过滤(NR>1)掉,然后打印第4行

二、查看CPU使用情况1、top

top后键入P看一下谁占用最大

# top -d 5

周期性的查询CPU使用信息

每5秒刷新一次

top - 02:37:55 up 4 min,  1 user,  load average: 0.02, 0.10, 0.05
Tasks: 355 total,   1 running, 354 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.0 us,  2.8 sy,  0.0 ni, 94.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
# us:表示用户空间程序的cpu使用率(没有通过nice调度)
# sy:表示系统空间的cpu使用率,主要是内核程序。
# id:空闲cpu KiB Mem :
1868660 total, 1081340 free, 578388 used, 208932 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1123992 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2220 mysql 20 0 1307796 471172 7608 S 0.6 25.2 0:02.31 mysqld 349 root 20 0 0 0 0 S 0.4 0.0 0:01.14 kworker/0:3 644 root 20 0 0 0 0 S 0.4 0.0 0:00.17 xfsaild/dm-0 3489 root 20 0 146432 2268 1440 R 0.4 0.1 0:00.11 top 1 root 20 0 44500 7120 2596 S 0.2 0.4 0:01.69 systemd 283 root 39 19 0 0 0 S 0.2 0.0 0:00.18 khugepaged 2621 root 20 0 141264 5140 3896 S 0.2 0.3 0:00.18 sshd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/1 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/2
2、ps auxw(查看本机的进程所占cpu和mem的百分比情况)

使用"ps auxw" 可以查看到本机的进程所占cpu和mem的百分比情况

# ps auxw | head -1

%CPU 进程的cpu占用率
%MEM 进程的内存占用率

[root@localhost ~]# ps auxw | head -1
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[root@localhost ~]#

查看java进程所占本机的cpu百分比, 如下为0.2%

# ps auxw |grep -v grep|grep -w java|awk '{print $3}'

[root@localhost ~]# ps auxw |grep -v grep|grep -w java|awk '{print $3}'
0.2

查看java进程所占本机的内存百分比, 如下为30.0%

# ps auxw |grep -v grep|grep -w java|awk '{print $4}'

[root@localhost ~]# ps auxw |grep -v grep|grep -w java|awk '{print $4}'
30.0
3、查看本机所有进程的CPU占比之和

# cat cpu_per.sh

[root@localhost ~]# cat cpu_per.sh
#!/bin/bash
ps auxw|awk '{if (NR>1){print $3}}' > /opt/cpu_list
awk '{CPU_PER+=$1}END{print CPU_PER}'  /opt/cpu_list
[root@localhost ~]#
[root@localhost ~]# chmod 755 cpu_per.sh
[root@localhost ~]#
[root@localhost ~]# sh cpu_per.sh
44.5
[root@localhost ~]#
三、查看cpu信息(信息记录在/proc/cpuinfo中)

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数

# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

1、查看虚拟机逻辑CPU的个数

# cat /proc/cpuinfo| grep "processor"| wc -l

[root@localhost ~]# cat /proc/cpuinfo| grep "processor"| wc -l
6
2、查看物理CPU个数

# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

[root@localhost ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
1
3、列出CPU详细信息

# lscpu

服务器1:

[root@localhost ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                6
On-line CPU(s) list:   0-5
Thread(s) per core:    1
Core(s) per socket:    6
座:                 1
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              15
型号名称:        Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
步进:              11
CPU MHz:             2194.916
BogoMIPS:            4389.83
超管理器厂商:  KVM
虚拟化类型:     完全
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           4096K
NUMA 节点0 CPU:    0-5
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni ssse3 cx16 pcid sse4_2 x2apic hypervisor lahf_lm
4、查看每个物理CPU中core的个数(即核数)

# cat /proc/cpuinfo| grep "cpu cores"| uniq

[root@localhost ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores       : 6

    暂时没有人评论