1.查看消耗内存最多的前40个进程:
` ps auxw|head -1;ps auxw|sort -rn -k4|head -40 `
2.通过命令查看服务器上一共开了多少的 php-cgi 进程:
` ps -fe |grep "php-fpm"|grep "pool"|wc -l `
3.查看内存总数:
` cat /proc/meminfo | grep MemTotal `
4.systemd占用内存过高临时解决的方法:
` systemctl daemon-reexec `
5.快速消耗内存方法:
```
mkdir /tmp/foo
mount -t tmpfs -o size=10G tmpfs /tmp/foo
```
修改那个 10G ,想消耗多少都可以
要取消的话:
```
umount /tmp/foo
dd if=/dev/zero of=/tmp/foo/big
```
6.快速创建大文件来消耗磁盘空间
` fallocate -l `
fallocate命令可以为文件预分配物理空间。-l后接空间大小,默认单位为字节。
也可后跟k、m、g、t、p、e来指定单位,分别代表KB、MB、GB、TB、PB、EB。
例如: ` fallocate -l 50G test ` 创建一个50G的test 文件
truncate 将文件缩减或扩展至指定大小,如果指定文件不存在则创建
例如:` truncate -s 10G bigfile `
7.top命令
top显示系统当前的进程和其他状况,是一个动态显示过程
统计信息区前五行是系统整体的统计信息。
第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
14:36:02 当前时间
up 8days 5:03 系统运行时间
19 users 当前登录用户数
load average: 0.33, 0.27, 0.28 系统负载,即任务队列的平均负载。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行
Tasks(进程):
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
Cpu(s):
0.3 us 用户空间占用CPU百分比
0.0 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
99.7 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi:硬件CPU中断占用百分比
0.0 si:软中断占用百分比
0.0 st:虚拟机占用百分比
最后两行为内存信息
Mem(单位KB):
2929852 total 物理内存总量
724096 free 空闲内存总量
1604096 used 使用的物理内存总量
601660 buff/cache 用作内核缓存的内存量
Swap(交换分区):
2097148 total 交换区总量
1683196 free 空闲交换区总量
413952 used 使用的交换区总量
937592 avail Mem可用于进程下一次分配的物理内存数量
计算空闲内存
totalfree = 724096free + 601660 buff/cache
进程信息区统计信息区域的下方显示了各个进程的详细信息
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND:运行进程所使用的命令。进程名称
输入top后按不同案件显示不同信息:
l:隐藏/显示第1行负载信息;
t:隐藏/显示第2~3行CPU信息;
m:隐藏/显示第4~5行内存信息;
c 切换显示命令名称和完整命令行
q:退出top命令;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
如果希望top命令显示特定用户正在运行的进程: top -u [用户名]
如果将top命令的输出保存到文本文件,top -n [刷新时间间隔] -b > filename.txt
8.网络调试
kbps也可以表示网络的传输速度,为了在直观上显得网络的传输速度较快,一般公司都使用kb(千位)来表示。如果是大写B的kBps,则表示每秒传送多少千字节。
1kByte/s=8kbit/s(一般简写为1kB/s=8kb/s)
TX是发送(transport),RX是接收(receive)
RX bytes:总下行流量
TX bytes:总上行流量
可以每隔两秒监视网络状态, 并标记发生变化的部分: watch -d ifconfig
可以每隔两秒只监视 网卡eth0, 并标记发生变化的部分: watch -d ifconfig eth0
可以每隔一秒只监视网卡eth0,只显示流量部分,并标记发生变化的部分: watch -d 'ifconfig eth0 | grep bytes'
每隔一秒高亮显示网络链接数的变化情况: watch -n 1 -d netstat -ant
实时查看模拟攻击客户机建立起来的连接数: watch 'netstat -an | grep:21 | \ grep<客户机的IP>| wc -l'
9.查看正在运行的进程栈跟踪信息:` pstack $(pidof 进程名) `
10. ` cat /proc/cmdline ` 查看cmdline文件,文件中保存了内核启动参数
包括boot镜像、分区识别号、文件系统类型、rootwait终端.
11./proc/meminfo 该文件统计了系统内存的使用情况
网友评论