一、静态查看进程信息(ps -aux 推荐aux ps -elf)
ps -elf
e :显示系统内所有进程的信息
l:长格式显示进程信息
f:完整格式显示进程信息。
F 内核分配给进程的标记
S 进程状态
PPID 进程的父进程的进程号
PID 进程的pid号
C 进程在整个生命周期中使用的CPU的利用率/使用
PRI 进程的优先级【数字越大,优先级越低】
NI 谦让值
ADDR 进程在内存中的地址
SZ 进程被换出,需要swap交换空间的大致大小
WCHAN 进程如果在休眠中,显示休眠进程的系统函数名
STIME 进程启动时的系统时间
tty 启动终端
? 系统自启的
TIME
CMD 命令
pstree -up 11111 树形图查看线程
u 显示用户名
p 显示进程的PID号
动态查看进程信息
top
up 系统已经运行的时长
4 users 当前登录的用户数
load average 系统负载(单位时间内系统处理的任务数)
0.00 1分钟
0.01 5分钟
0.05 15分钟
进程信息
total 当前系统的总进程数
running 运行中的进程数
sleeping 休眠中的进程数
stopped 终止的进程数
zombie 僵尸进程数
CPU使用情况(核心)
%CPU(s) 当前CPU信息
us 用户进程占用CPU的大小(管理员,程序用户,普通用户)
sy 内核进程占用CPU的大小
ni 优先级调度占用CPU的大小
id 空闲CPU的百分比
wa 磁盘读写性能
hi 1分钟的CPU使用率
si 3分钟的CPU使用率
st 5分钟的CPU使用率
内存信息(free -h)和交换空间信息
buff 缓存
avail Mem 可用的物理内存
q退出top
查看CPU 的占用比
法一: top看id,如果id数值过低,那就q退出,然后ps -aux,找到%CPU(会从高到低排)
法二: 直接在top里面看%CPU
PID 进程id
USER 进程所有者的用户名
PR 优先级 --系统优先级
NI 谦让度值。负值表示高优先级,正值表示低优先级 --人为设置的优先级
VIRT 进程使用的虚拟内存总量,单位kb
RES 进程使用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
S 进程状态
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
数字键1 显示所有CPU的个数和工作状态
c键 按照CPU百分比大小进行排序
q键 退出
运行一次即退出top(用的少,运行脚本的时候用)
二、五大负载和优化查看
①CPU负载
核心:了解系统是否过载;优化高CPU负载的进程
命令:
top
htop (yum -y install htop)
q退出
②内存负载
监控内存的工具:free(静态) top(动态)
优化核心:释放一些不必要的内存占用;关闭不需要的服务;释放缓存
命令:
free -h
echo 1 > /proc/sys/vm/drop_caches 清理缓存
③磁盘负载 ⭐⭐⭐⭐⭐
监控I/O (input output):iostat {监控读写性能的命令}
④网络负载
监控网络带宽
命令:
ifconfig(静态)
iftop
⑤进程负载
top
进程管理:
pgrep 查找进程PID。一般结合kill命令一起使用
-a 显示进程名和PID
-c 仅显示匹配进程的数量,其他都不显示
-f 匹配进程名及其参数
命令:
pgrep -a httpd
kill 传递kill信号给内核,执行终止程序的命令。kill只是一个信号。 【面试:kill的工作原理】
kill -9 表示进程被终止,需要立即退出 (慎用)
kill -15 告诉进程现在要被终止,由进程自行停止退出
jobs 可以列出后台进程的状态信息
-l 显示所有进程的PID号
-n 仅显示最近的后台进程
-r 仅显示正在运行的后台进程
-s 仅显示已停止的后台进程
进入后台运行
cp -a /mnt/ lopt/&命令行结尾加上&就是后台运行。
包:
java &
war
有些服务是依赖一些相关的运行程序包,启动的时候一定要后台启动。&
ctrl + z 放到后台并停止运行
fg + 数字 把后台的程序调度到前台执行
三、创建定时任务
crontab
* * * * * 分 时 日 月 周
分 0-59
时 0-23
日 1-31
月 1-12
周 0-7 周日:0 7
* * * * *
* 表示该范围内的任意时间
* * * * *
1,3,5* * * * 第1、3、5分钟各执行一次(表示多个不连续的时间)
1-5* * * * 1到5分钟都会执行
*/10* * * * 每十分钟执行一次
crontab -e 创建定时任务
* * * * * /opt/123.sh * * * * * +命令或者脚本
crontab -e -u 为指定用户(默认当前登录用户)创建任务
crontab -e -u root 为指定用户root创建任务
crontab -l 查看定时任务
crontab -e 进入然后用dd 一个一个删 【清空定时任务】
crontab -r 清空所有定时任务 【不要用】
crontab -r -u root 清空用户root的所有定时任务 【不要用】
crontab -l -u root 查看用户root的定时任务