linux(进程,cpu,内存)
netstat -tunalp 查看网络状态
-a all
-t tcp协议
-u udp协议
-l listen
-p PID/Program name
-n 不将IP地址解析为主机名,不将端口号解析为协议名
lsof -i:22 查看22号端口信息
route -n 查看路由
du -sh /etc 统计文件夹大小
df 查看硬盘
df -h 带单位查看硬盘
df -T 带文件系统类型查看硬盘
free 查看内存
free -m 以兆为单位查看内存
free -wm 将buffer与cache分开显示
less /proc/meminfo 查看内存(free命令就是查看此文件内容)
------------------------------------------------------------------------------------------------------------------------
查看进程信息
ps aux
ps -elf 可以查看ppid
pgrep -l -u sb01 查看由sb01用户开启的进程
pstree 需要yum install -y psmisc
top
压力测试工具
yum install -y stress
stress --cpu 4 --timeout 300
ps aux

用户、进程ID、CPU使用率、内存使用率
VSZ:线性空间大小(虚拟内存,进程向系统申请的空间,未必全部占用),kb单位
RSS:实际占用内存大小,kb单位
TTY:终端
STAT:进程状态 (man ps(/STATE))
R 运行
S 可中断睡眠sleep,即在睡眠的过程中可以接收信号唤醒=》执行的IO操作可以得到硬件设备的响应
D 不可中断睡眠,即在睡眠的过程中不可以接收信号唤醒=》执行的IO操作得不到硬件设备的响应
T 停止的进程
Z 僵尸进程
X 死掉的进程
附带符号:
< 代表优先级较高的进程
N 代表优先级较低的进程
s 包含子进程
+ 前台的进程
l 小字母l,代表以现场的方式运行,即多线程
| 管道符号代表多进程
START:启动时间
TIME:进程占用cpu的总时间
COMMAND:进程文件,进程名
------------------------------------------------------------------------------------------------------------------------------------
top

top:当前时间,up:系统运行时间,user:当前用户,load average:cpu负载百分比(1分钟,5分钟,15分钟。1核满载是1,4核满载是4,有时会出现超负载的情况)
Tasks行:total为总进程数,runnning为正在运行进程数,sleeping为正在IO进程数,stopped为停止的进程数,zombie为僵尸进程数
%Cpu行:us为用户态进程使用cpu百分比,sys为内核态进程使用率,ni为nice被优先调度的进程使用率,id(idle)为空闲率,wa(waite)为IO进程使用率,hi硬件中断,si软件中断,st被偷走的资源(比如虚拟化进程)
硬件中断:cpu正在运算进程1,别的进程需要使用cpu,cpu立刻运算别的进程
软件中断:cpu正在运算进程1,别的进程需要使用cpu,cpu稍后运算别的进程
PR,NI(nice):PR=nice+20
VIRT:虚拟内存(一开始划分的内存)
RES:实际内存
SHR:共享内存
一个进程实际独占的内存=实际内存-共享内存
top选项:
top -d 1 -p 进程的pid -d表示指定刷新频率,-p表示指定进程
top -d 1 -u sb01 -u表示指定用户进程
top内部命令:
q 退出
s 刷新频率
M 以内存排序
P 以CPU排序
R 对排序倒序
N 按PID排序
Shift <>移动排序依据
f 自定义显示字段
l 小写字母l,显示cpu负载
1 数字1,显示所有cpu信息
k 向指定进程发信号,输完k后输入指定的pid,再输入所需信号,9为关闭该进程
r 修改指定进程的nice值(nice值越小,优先级越高,范围:-20至19)
-----------------------------------------------------------------------------------------------------------------------
kill 朝进程发信号
kill -l 查看kill列表
kill -数字(字母也行) 进程id
kill -1 进程ID 不重启进程的情况下,重新加载配置
kill -9 进程ID 强制停止进程
kill -15 进程ID 默认信号,中止进程
kill -stop(19) 进程ID 停止进程
kill -18(cont) 进程ID 恢复停止的进程
pkill -9 vim 所有的vim进程都被杀掉
---------------------
nohup ping www.baidu.com &>/dev/null & 以nohup方式提交命令
nohup方式:不接收SIGHUP信号。默认每个终端点x关闭时,系统会向该终端开启的进程发SIGHUP信号来关闭程序。若不想让进程被关闭,可以logout,exit退出(也可以:在命令前加setsid(或者用()将命令括起来)直接将父进程设为1)。或者命令前加nohup。
---------------------
screen命令:(创建一个screen窗口执行指定命令,点x关闭窗口时,将父进程设为1,进程可以恢复)
yum install screen -y
screen vim a.txt 执行
先按Ctrl+a再按Ctrl+d 后台执行
screen -ls 查看
screen -r 进程ID 恢复
scren -wipe 清理死掉的screen进程
screen -S 窗口名 设定窗口名(以后恢复时可以输入窗口名代替进程ID)
screen -x 窗口名 同步窗口(别人在此窗口输入的内容,会同步显示出来)
----------------------------------
sync 将buffer的数据同步到硬盘
echo 3 > /proc/sys/vm/drop_caches 释放buffer,cache空间
cat /proc/cpuinfo 查看cpu信息
lscpu 查看cpu信息
uptime 查看cpu负载(其实就是至显示top命令的第一行)
jobs 查看本终端的后台程序
fg %1 将后台运行程序调至前台(front)
bg %2 将后台暂停的程序继续在后台运行(back)
kill -9 %1 关闭指定的后台程序
tee将命令输出结果在终端显示,并保存至文件
ifconfig | tee a.txt 既显示,也保存
ifconfig &> a.txt 只保存,终端不显示
僵尸进程:子进程停止后,释放内存空间,但没释放pid等信息资源的状态
linux系统规定:父进程随时可以查看子进程信息(包括已停止的子进程),所以需要僵尸进程这一状态,以便父进程可以查看子进程信息。但僵尸进程会占用pid,占用过多的pid会导致新进程无法开启。所以程序员开发一个程序时需要通过向系统调用wait/waitpid来清理僵尸进程。
ps:若程序员没考虑僵尸进程,且pid不够用时,需要关闭父进程来清理。关闭父进程后,僵尸进程会变为孤儿进程,且找寻新的父进程(systemd),systemd有清理僵尸进程的机制。
kill -CHILD 父进程PID 清理僵尸进程
孤儿进程:父进程死了的子进程叫孤儿进程,孤儿进程会认pid为1的进程(systemd)为父进程

浙公网安备 33010602011771号