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)为父进程

posted @ 2021-04-30 16:19  丑矬穷屌  阅读(111)  评论(0)    收藏  举报