外网网站,重庆工业建设网站,安丘住房建设局网站,企业网站源码是什么一、centos内存高#xff0c;查看占用内存, top命令详解
1.1: free 命令是
free
单位K
free -m
单位M
free -h
单位Gfree最常规的查看内存占用情况的命令 1.2: 参数说明
total 总物理内存
used 已经使用的内存
free 没有使用的内存
shared 多进程共享内存
buff/cache 读写…一、centos内存高查看占用内存, top命令详解
1.1: free 命令是
free
单位K
free -m
单位M
free -h
单位Gfree最常规的查看内存占用情况的命令 1.2: 参数说明
total 总物理内存
used 已经使用的内存
free 没有使用的内存
shared 多进程共享内存
buff/cache 读写缓存内存
available 应用程序可用物理内存 二、top命令
top命令经常用来监控linux的系统状况比如cpu、内存的使用程序员基本都知道这个命令。按 q 退出top命令也可以用来查内存输入top命令按x高亮排序列默认应该是%CPU按CPU占用排序。按shift M 或 按shift , 可以看到高亮部分到%MEM按内存占用排序。就可以查到具体是哪个进程在占用内存然后 ps -ef |grep PID 三、ps命令
查看内存占用前10位
[rootwww ~]# ps aux | head -1;ps aux |grep -v PID |sort -rn -k 4 | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1183 20.1 13.6 2522020 525860 ? Ssl 11:42 52:13 /usr/local/mysql8/msql-8.0.30/bin/mysqld --defaults-file/etc/my.cnf
root 1194 0.2 3.8 1017104 150568 ? Ssl 11:42 0:31 /data/minio_data/minio server --console-address 192.168.1.100:33806 --address 192.168.1.100:9666 /data/minio_data /data/minio_data/minio-start.log 21
root 1196 0.0 0.5 1002932 19924 ? Ssl 11:42 0:01 /usr/sbin/libvirtd
root 1181 0.0 0.5 574280 19504 ? Ssl 11:42 0:04 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root 886 0.1 0.2 272008 8504 ? Sl 11:42 0:20 /usr/sbin/vmtoolsd
root 724 0.0 0.2 474848 8988 ? Ssl 11:42 0:02 /usr/sbin/NetworkManager --no-daemon
root 1186 0.0 0.2 216400 7944 ? Ssl 11:42 0:01 /usr/sbin/rsyslogd -n
polkitd 666 0.0 0.2 612232 10076 ? Ssl 11:42 0:00 /usr/lib/polkit-1/polkitd --no-debug
root 924 0.0 0.1 59484 5980 ? S 11:42 0:00 /usr/lib/vmware-vgauth/VGAuthService -s
root 3477 0.0 0.1 161804 6120 ? Ss 15:01 0:00 sshd: rootpts/1或者
[rootwww ~]# ps aux --sort -rss | head -n 10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1183 20.2 13.6 2522020 525860 ? Ssl 11:42 52:46 /usr/local/mysql8/msql-8.0.30/bin/mysqld --defaults-file/etc/my.cnf
root 1194 0.2 3.8 1017104 150568 ? Ssl 11:42 0:31 /data/minio_data/minio server --console-address 192.168.1.100:33806 --address 192.168.1.100:9666 /data/minio_data /data/minio_data/minio-start.log 21
root 1196 0.0 0.5 1002932 19924 ? Ssl 11:42 0:01 /usr/sbin/libvirtd
root 1181 0.0 0.5 574280 19504 ? Ssl 11:42 0:04 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
polkitd 666 0.0 0.2 612232 10076 ? Ssl 11:42 0:00 /usr/lib/polkit-1/polkitd --no-debug
root 724 0.0 0.2 474848 8988 ? Ssl 11:42 0:02 /usr/sbin/NetworkManager --no-daemon
root 886 0.1 0.2 272008 8504 ? Sl 11:42 0:20 /usr/sbin/vmtoolsd
root 1186 0.0 0.2 216400 7944 ? Ssl 11:42 0:01 /usr/sbin/rsyslogd -n
root 3038 0.0 0.1 161804 6120 ? Ss 14:12 0:00 sshd: rootpts/0还可以查CPU
查看CPU占用前10位
[rootwww ~]# ps aux | head -1;ps aux |grep -v PID |sort -rn -k 3 | head -10 或者
[rootwww ~]# ps aux --sort -pcpu | head -n 10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1183 20.6 13.6 2522020 525860 ? Ssl 11:42 54:00 /usr/local/mysql8/msql-8.0.30/bin/mysqld --defaults-file/etc/my.cnf
root 3623 0.7 0.0 0 0 ? S 15:08 0:26 [kworker/3:2]
root 419 0.4 0.0 0 0 ? S 11:42 1:06 [kworker/3:1H]
root 1194 0.2 3.8 1017104 150568 ? Ssl 11:42 0:31 /data/minio_data/minio server --console-address 192.168.1.100:33806 --address 192.168.1.100:9666 /data/minio_data /data/minio_data/minio-start.log 21
root 141 0.1 0.0 0 0 ? S 11:42 0:24 [kworker/6:1]
root 350 0.1 0.0 0 0 ? S 11:42 0:19 [kworker/5:1H]
root 351 0.1 0.0 0 0 ? S 11:42 0:19 [kworker/6:1H]
root 435 0.1 0.0 0 0 ? S 11:42 0:19 [kworker/4:1H]
root 455 0.1 0.0 0 0 ? S 11:42 0:24 [kworker/4:2]top命令详解
1、命令用法 首先解释一下该命令的具体用法。
top使用格式
top [-] [d] [p] [q] [c] [C] [S] [s] [n]参数说明
d 指定每两次屏幕信息刷新之间的时间间隔p 通过指定监控进程ID来仅仅监控某个进程的状态q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限那么top将以尽可能高的优先级运行S 指定累计模式s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险i 使top不显示任何闲置或者僵死进程c 显示整个命令行而不只是显示命令名
比如
top // 每隔5秒显式所有进程的资源占用情况
top -d 2 // 每隔2秒显式所有进程的资源占用情况
top -c // 每隔5秒显式进程的资源占用情况并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789 // 每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 // 每隔2秒显示pid是12345的进程的资源使用情况并显式该进程启动的命令行参数2、实例解读 然后我们结合实际的例子来聊一聊该命令执行过程中所输出的信息如何进行解读 第一行运行概览
top - 09:15:56 up 31 min, 2 users, load average: 0.01, 0.03, 0.05内容含义09:15:56当前系统时间up 31 min系统已经运行了31分钟在这期间没有重启过2 users当前有2个客户端登录系统load average: 0.01, 0.03, 0.05过去1分钟、5分钟、15分钟内系统的负载情况
注load average数据是每隔5秒钟检查一次活跃的进程数然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量结果高于5的时候就表明系统在超负荷运转了。
第二行任务概览 Tasks: 191 total, 2 running, 189 sleeping, 0 stopped, 0 zombie
这一行比较简单就不多解释了只说明一点zombie表示僵尸进程不理解的可自行百度。
第三行CPU状态
%Cpu(s): 0.7 us, 0.5 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st内容含义0.7 us用户空间所占百分比0.5 sy内核空间所占百分比0.0 ni改变过优先级的进程所占百分比98.8 id空闲进程所占百分比0.0 waIO等待进程所占百分比0.0 hi硬中断Hardware IRQ所占百分比0.0 si软中断Software Interrupts所占百分比0.0 st虚拟机所占百分比
同样也要说明一点这里CPU的使用比率和windows概念不同如果你不理解用户空间和内核空间自行百度吧。
第四行内存状态
KiB Mem: 3081144 total, 1445648 used, 1635496 free, 323064 buffers
KiB Swap: 4191228 total, 0 used, 4191228 free. 527176 cached Mem
内容含义3081144 total物理内存总量3G1445648 used使用中的内存总量1.38GB1635496 free空闲内存总量1.56G323064 buffers缓存的内存量 315M4191228 total交换分区总量4G0 used已使用的交换分区04191228 free空闲状态的交换分区4G527176 cached Mem缓冲状态的交换分区514K
这里要说明一下我们不能用windows的内存概念来理解这些数据Linux的内存管理有其特殊性复杂点需要一本书来说明这里只是简单说点和我们传统概念windows的不同。
MEM一行中使用中的内存总量used指的是现在系统内核控制的内存数空闲内存总量free是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中还包括过去使用过的现在可以被重复利用的内存内核并不把这些可被重新使用的内存交还到free中去因此在linux上free内存会越来越少但不用为此担心。
对于内存监控在top里我们要时刻监控SWAP一行中的已用数值used如果这个数值在不断的变化说明内核在不断进行内存和swap的数据交换这是真正的内存不够用了。
剩余行进程详情 首先说明一点上述命令的显示状态是在Ubuntu 14.0464位系统的缺省状态下所显示的。在其他的系统下或者同一个系统的不同设置状态下top命令所显示出来的列项目是有所区别的有可能与上述图片中的不一样。换句话说top命令其实能显示非常多的项目信息远不止上述图片中所述究竟有哪些呢如下表所述
序号名称含义aPID进程idbPPID父进程idcRUSERReal user namedUID进程所有者的用户ideUSER进程所有者的用户名fGROUP进程所有者的组名gTTY启动进程的终端名。不是从终端启动的进程则显示为?hPR优先级iNInice值。负值表示高优先级正值表示低优先级jP最后使用的CPU仅在多CPU环境下有意义k%CPU上次更新到现在的CPU时间占用百分比lTIME进程使用的CPU时间总计单位秒mTIME进程使用的CPU时间总计单位1/100秒n%MEM进程使用的物理内存百分比oVIRT进程使用的虚拟内存总量单位kb。VIRTSWAPRESpSWAP进程使用的虚拟内存中被换出的大小单位kbqRES进程使用的、未被换出的物理内存大小单位kb。RESCODEDATArCODE可执行代码占用的物理内存大小单位kbsDATA可执行代码以外的部分(数据段栈)占用的物理内存大小单位kbtSHR共享内存大小单位kbunFLT页面错误次数vnDRT最后一次写入到现在被修改过的页面数wS进程状态(D不可中断的睡眠状态,R运行,S睡眠,T跟踪/停止,Z僵尸进程)xCOMMAND命令名/命令行yWCHAN若该进程在睡眠则显示睡眠中的系统函数名zFlags任务标志参考 sched.h
从上表可以看出其实top命令可以显示的信息列最多有26列每一列的代号分别对应为a-z只不过在缺省状态下系统只显示其中比较重要的【PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME、COMMAND】列而用户是完全通过指定的方式可以进行随意增减的。同时在top命令运行的过程中还可以进行一些其他的自定义设置包括刷新速度、排序方式等那么究竟应该如何操作呢请看下节
3、个性化设置 上文说到可以在输入top命令的时候携带一些参数来进行配置可是有时候输入top命令的时候并不很清楚它的运行状态有些参数也不知道如何设置比如排序模式、需要显示的列等而是要等到top命令运行起来了才好进行设置。因此有没有一种方法是在top命令运行的过程中能够对其显示的模式、内容等进行临时的设置呢
答案当然是有的下面就介绍一下在top命令执行过程中可以使用的一些交互命令。从使用角度来看熟练的掌握这些命令比掌握选项还重要一些。
h或者? 显示帮助画面给出一些简短的命令总结说明 k 终止一个进程。系统将提示用户输入需要终止的进程PID以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽 i 忽略闲置和僵死进程。这是一个开关式命令 q 退出程序 r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低反之则可以使该进程拥有更高的优先权。默认值是10 S 切换到累计模式 s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间单位为s。如果有小数就换算成ms。输入0值则系统将不断刷新默认值是5s f或者F 从当前显示中添加或者删除项目。按下此键之后系统会进入配置界面显示出目前所能支持的全部条目用户可以进行自定义的删减和配置 o或者O 改变显示项目的顺序 l 切换显示平均负载和启动时间信息 m 切换显示内存信息 t 切换要不要显示进程和CPU状态信息这两行 c 切换显示命令名称和完整命令行 M 根据内存大小进行排序 P 根据CPU使用百分比大小进行排序 T 根据时间/累计时间进行排序 W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法 怎么样是不是非常灵活自己去试试吧