一、进程管理
进程查看 ps
ps aux 查看系统所有进程 使用BSD操作系统格式
USER 该进程是由哪个用户产生的
PID 进程的ID号
%CPU 该进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEM 该进程占用的物理内存的百分比,占用越高,进程越耗费资源
VSZ 该进程占用虚拟内存的大小,单位KB
RSS 该进程占用的实际物理内存大小,单位KB
TTY 该进程是在哪个终端中运行的(tty1-tty7代表本地控制台终端,pts/0-255代表虚拟终端)
STAT 进程状态,常见状态:
R 运行
S 休眠
T 停止
s 包含子进程
+ 位于后台
START 该进程的启动时间
TIME 该进程占用CPU的运算时间(非系统时间)
COMMAND 产生此进程的命令
ps -le 查看系统所有进程 使用linux标准命令格式
选项:
-a 显示一个终端的所有进程,除了会话引线
-u 显示进程的归属用户及内存的使用情况
-x 显示没有控制终端的进程
-l 长格式显示,显示更加详细的信息
-e 显示所有进程,和-a作用一致
pstree 显示进程树
选项:
-p 显示进程id号
-u 显示进程所属用户
top 查看系统状态
top - 10:58:17 up 117 days, 18:12, 2 users, load average: 0.08, 0.05, 0.07
系统时间 运行天数(117天18小时12分) 当前登录用户(2) 系统在 1分钟 5分钟 15分钟的平均负载(cpu核心数2,则不应该大于2)
Tasks: 107 total, 3 running, 104 sleeping, 0 stopped, 0 zombie
系统总进程数 正在运行进程数 休眠进程数 正在停止的进程数 僵尸进程
%Cpu(s): 0.3 us, 1.0 sy, 0.0 ni, 98.0 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st
CPU状态 us用户模式占用比 sy系统模式占用比 ni改变过优先级的用户进程占用比 id空闲占用比 wa等待输入/输出的进程的占用比
hi硬中断请求服务占用比 si软中断请求服务占用比 st虚拟时间百分比
KiB Mem : 1016904 total, 73724 free, 406624 used, 536556 buff/cache
内存状态 总内存 空闲 已使用 缓冲(加速数据写入)
KiB Swap: 0 total, 0 free, 0 used. 426612 avail Mem
交换分区(虚拟内存) 总内存 空闲 已使用 缓存(加速数据读取)
选项
-d 秒数 设置top命令刷新秒数 默认3秒
-b 使用批处理模式输出 一般和 -n 合用
-n 指定top命令执行的次数 例:top -b -n 1 >top.log
?或h 显示交互模式帮助
P 以CPU使有率排序(默认)
M 以内存的使用率排序
N 以PID排序
q 退出top
杀死进程 kill
信号
-1(HUP) 进程ID号 平滑重启
-9 进程ID号 强制终止进程
killall 根据进程名称杀死进程
killall -i -9 进程名 例: killall -9 httpd
选项 -i 交互询问是否删除
pkill 信号 选项 进程名
选项 -t 终端号 例:pkill -9 -t tty1 踢出用户 (w查看登录当前终端号 pts为远程终端)
修改进程优先级
ps -le
PRI NI 这两个值都是优先级,数字越小优先级越高
最终优先级为PRI+NI的值,用户只能修改NI值,无法修改PRI值
NI的值范围是-20到19
普通用户调整的范围0-19,只能调整自己的进程,且只能,调高不能降低
ROOT用户才可以设置负值
PRI(最终值) = PRI(原始值)+NI
nice 修改NI值
可以给新执行的命令直接赋予NI值,不能修改已存在的进程
选项:
-n NI值 进程命令
例:nice -n -5 service httpd start
renice 命令 修改已存在进程的NI值
renice 优先级 PID
例:renice -10 2125
二、工作管理
1.把程序放入后台
命令后面加上 &符号
把命令放入后台,并在后台执行
按下ctrl+z快捷键,放在后台暂停
2.查看后台的工作
jobs命令
选项: -l 显示工作的ID
+号表示最近一个放入后台的工作 恢复工作的默认值
-号代表倒数第二个放入后台的工作
3.将暂停的工作恢复到后台执行
bg %工作号 不加任何参数 默认恢复+号工作到后台
4.恢复前台运行
fg%工作号 不加任何参数 默认恢复+号工作到前台
5.脱离终端运行
①把需要后台执行的命令加入/etc/rc.local文件中
②使用定时任务
③使用nohup命令
nohup 命令 &
三、系统资源查看
1. 监控系统资源
vmstat 刷新延时 刷新次数
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 78864 144776 386748 0 0 0 38 4 3 0 1 98 0 0
说明:
procs 进程信息字段:
r 等待运行的进程数,数量越大,系统越繁忙
b 不可被唤醒的进程数,数量越大,系统越繁忙
memory 内存信息字段:
swpd 虚拟内存的使用情况,单位KB
free 空闲的内存容量,单位KB
buff 缓冲的内存容量,单位KB
cache 缓冲的内存容量,单位KB
缓存cache:加速数据"读取"
缓冲buffer:加速数据"写入" 都是放入内存中
swap 交换分区的信息字段
si从磁盘交换到内存中数据的数量,单位KB
so从内存交换到磁盘中数据的数量,单位KB
此两个数越大,证明数据需要经常在磁盘和内存间交换,系统性能越差
io 磁盘读写信息字段
bi 从块设备读入数据的总量,单位是块
bo 写到块设备的数据的总量,单位是块
此两个数越大,代表系统的I/O越繁忙
system 系统信息字段
in 每秒被终端的进程次数
cs 每秒钟进行的时间切换次数。
此两个数越大,代表系统与接口设备的通讯越繁忙
cpu cpu信息字段
us 非内核进程消耗cpu运算时间的百分比
sy 内核进程消耗cpu运算时间的百分比
id 空闲cpu的百分比
wa 等待I/O所消耗的cpu百分比
st 被虚拟机所盗用的cpu占比
dmesg 开机时内核检测信息
free 查看内存使用状态
选项:
-b 以字节为单位显示
-K 以KB为单位显示 默认此项
-m 以MB为单位显示
-g 以GB为单位显示
查看cpu信息
cat /proc/cpuinfo
查看 平均负载 uptime
查看系统与内核相关信息 uname
选项:
-a 查看全部
-r 查看内核版本
-s 查看内核名称
查看系统位数
file /bin/ls
查看linux系统的发行版本
lsb_release -a (yum install lsb)
四、定时任务
at 一次性定时任务
crontab循环定时任务
选项:
-l 查询任务列表
-e 编写定时任务
-r 删除当前用户的定时任务
* * * * * cmd
分钟 小时 天数 月份 星期 命令
*代表任何时间
,代表不连续的时间
-连续的时间范围
*/n 每隔n执行一次
最小有效时间为分钟 最大有效时间为月份
在定时任务中使用绝对路径
系统crontab设置
/etc/crontab配置文件
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
需要指定user
anacron配置
用来保证系统关机错过的定时任务,可以开机后再执行
在/var/spool/anacron/cron.{daily,weekly,monthly}文件中保存上次执行的时间
用于判断是否执行过(不能精确到小时)
以下4个目录存储对应定时执行脚本 由anacron配置和调用
/etc/cron.monthly 月份
/etc/cron.weekly 星期
/etc/cron.dailly 天数
/etc/cron.hourly 小时
配置文件 /etc/anacron
RANDOM_DELAY=45 错峰执行时间随机延迟 45分钟
START_HOURS_RANGE=3-22 执行时间 3:00-22:00
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
天数 强制延迟(分钟) 工作名称 实际执行命令
执行时以daily为例: 强制延迟5分钟 再随机延迟0-45分钟 依次执行daily目录下脚本
(run-parts执行参数目录下的所有可执行脚本)
因为延迟机制,执行时间不能确定