# 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 kB3、查看本机所有进程的内存占比之和
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行
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 st2
# 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
、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.03、查看本机所有进程的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 62、查看物理CPU个数
# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
[root@localhost ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 13、列出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
# cat /proc/cpuinfo| grep "cpu cores"| uniq
[root@localhost ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 6