进程管理
查看所有进程:
ps aux 注释:a所有前台进程,x所有后台进程,u进程产生的用户
或
ps -le 注释:-l显示详细信息,-e显示所有进程
ps可理解为process snapshot或process status
[root@localhost ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 128092 6724 ? Ss 13:08 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 root 2 0.0 0.0 0 0 ? S 13:08 0:00 [kthreadd]
tty代表本地终端,tty1-tty6字符终端,tty7图形终端,用Alt+F1到F6,Ctrl+Alt+F7切换。
pts/0-255代表远程虚拟终端
STAT进程状态:R运行,S睡眠,T停止,s包含子进程,+位于后台
START:进程启动时间
TIME:进程占用CPU时间
COMMAND:产品进程的命令
查看系统健康状态:top
[root@localhost ~]# top -d 9 注释:-d设置几秒刷新,默认3秒 top - 15:31:37 up 2:23, 4 users, load average: 0.00, 0.01, 0.05 注释:load average显示系统在之前1、5、15分钟的平均负载,<1负载小,>1负载大,相对单核CPU来说的,如果是4核可以理解为<4、>4 Tasks: 108 total, 1 running, 107 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 注释:us用户占用,sy系统占用,ni改变过优先级用户进程占用,id空闲,主要看这个,wa等待输入输出进程占用,hi硬中断请求服务占用,si软中断服务请求占用,st(steal time)虚拟时间百分比,虚拟机虚拟CPU等待实际CPU时间百分比。 KiB Mem : 999936 total, 579276 free, 149096 used, 271564 buff/cache 注释:主要看空闲内存free KiB Swap: 4191224 total, 4191224 free, 0 used. 667604 avail Mem 注释:可以看出交换分区基本没用,所以分多了也是浪费硬盘。 注释:以上5行重点看划线部分 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 注释:默认以CPU占用率%CPU降序排序 1 root 20 0 128092 6724 3972 S 0.0 0.7 0:01.57 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
?或h 显示交互模式帮助
P(可以开启大写,再按p)或shift+p:以CPU占用降序排列
M(可以开启大写,再按m)或shift+m:以内存占用降序排列
N(可以开启大写,再按n)或shift+n:以PID降序排列
q退出
截图可以看出top命令本身就是一条比较耗资源的命令。
查看系统运行时长:uptime或top或w
[root@localhost ~]# uptime 15:39:47 up 2:31, 4 users, load average: 0.00, 0.01, 0.05 注释:和top命令首行一样
[root@localhost ~]# w 16:30:57 up 3:22, 4 users, load average: 0.00, 0.01, 0.05 注释:和top命令首行一样 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 13:10 1:07m 0.65s 0.65s -bash root pts/0 192.168.3.10 13:11 1.00s 0.27s 0.02s w qiaofeng tty2 15:21 1:09m 0.02s 0.02s -bash xiongjia tty3 15:21 1:09m 0.01s 0.01s -bash
tree命令:
如果未安装tree命令可以使用光盘yum源安装:
mount /dev/cdrom /mnt/cdrom
yum -y install tree
[root@localhost ~]# tree 注释:查看当前目录结构 . ├── myShell.sh ├── shFiles │ ├── hello.sh │ ├── param.sh │ ├── starXat.sh │ └── Tetris.sh ├── testfile └── testfileb 1 directory, 7 files [root@localhost ~]# ls myShell.sh shFiles testfile testfileb
pstree查看进程树:
[root@localhost ~]# pstree -p systemd(1)─┬─NetworkManager(581)─┬─dhclient(685) │ ├─{NetworkManager}(585) │ └─{NetworkManager}(587) ├─abrt-watch-log(536) ├─abrtd(532) ├─agetty(2873) ├─atd(574) ├─auditd(508)───{auditd}(515) ├─crond(572) ├─dbus-daemon(546)───{dbus-daemon}(554) ├─firewalld(577)───{firewalld}(682) ├─login(578)───bash(2111) ├─login(2644)───bash(2651) ├─lsmd(534) ├─lvmetad(371) ├─master(1294)─┬─pickup(3148) │ └─qmgr(1301) ├─polkitd(535)─┬─{polkitd}(553) │ ├─{polkitd}(560) │ ├─{polkitd}(564) │ ├─{polkitd}(565) │ └─{polkitd}(567) ├─rngd(539) ├─rsyslogd(892)─┬─{rsyslogd}(898) │ └─{rsyslogd}(899) ├─smartd(528) ├─sshd(932)───sshd(2150)───bash(2154)───pstree(3294) ├─systemd-journal(360) ├─systemd-logind(544) ├─systemd-udevd(378) ├─tuned(893)─┬─{tuned}(1120) │ ├─{tuned}(1124) │ ├─{tuned}(1127) │ └─{tuned}(1139) └─vmtoolsd(529)
终止进程:kill
[root@localhost ~]# kill kill: 用法:kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明 ... 或 kill -l [信号声明] [root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 注释:常用的有1终止进程后重新读取配置文件再重启进程、9强制终止进程、15正常终止进程 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
kill -1 PID 注释:重启进程
kill -9 PID 注释:强制终止进程
kill -15 PID 注释:-15是默认值,可省。
killall [选项][信号] 进程名 注释:根据进程名杀死一类进程
选项:-i交互式,终止前询问;-I忽略大小写。
pkill [选项][信号] 进程名 注释:根据进程名杀死一类进程
选项:-t 终端号 按终端号踢出用户
[root@localhost ~]# w 16:33:30 up 3:25, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 13:10 1:09m 0.65s 0.65s -bash root pts/0 192.168.3.10 13:11 2.00s 0.28s 0.00s w qiaofeng tty2 15:21 1:11m 0.02s 0.02s -bash xiongjia tty3 15:21 1:12m 0.01s 0.01s -bash [root@localhost ~]# pkill -9 -t tty2 [root@localhost ~]# w 16:33:44 up 3:25, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 13:10 1:10m 0.65s 0.65s -bash root pts/0 192.168.3.10 13:11 0.00s 0.29s 0.01s w xiongjia tty3 15:21 1:12m 0.01s 0.01s -bash
工作管理
把进程放入后台:
命令 & 注释:此方法放入后台的进程仍在运行
命令 然后Ctrl+z 注释:此方法放入后台的进程是暂停状态
[root@localhost ~]# tar -zcf etc.tar.gz /etc & [1] 2900 [root@localhost ~]# tar: 从成员名中删除开头的“/” [root@localhost ~]# 注释:直接敲回车可以看到后台进程仍在运行 [1]+ 完成 tar -zcf etc.tar.gz /etc [root@localhost ~]# ls etc.tar.gz myShell.sh shFiles testfile testfileb
[1]+ 已停止 top [root@localhost ~]# jobs -l [1]+ 2912 停止 (信号) top [root@localhost ~]# jobs [1]+ 已停止 top ... [2]+ 已停止 find / [root@localhost ~]# jobs [1]- 已停止 top [2]+ 已停止 find / [root@localhost ~]# jobs -l [1]- 2912 停止 (信号) top [2]+ 2924 停止 find / ... [3]+ 已停止 locate / [root@localhost ~]# jobs [1] 已停止 top [2]- 已停止 find / [3]+ 已停止 locate / [root@localhost ~]# jobs -l [1] 2912 停止 (信号) top 注释:[1]代表工作号 [2]- 2924 停止 find / 注释:-减号代表倒数第二个放入后台的工作 [3]+ 2944 停止 locate / 注释:+加号代表最近放入后台的工作
fg 注释:将+号的工作号恢复到前台执行
fg %工作号 注释:将指定工作号的工作恢复到前台执行,%可省
bg 注释:把后台暂停的工作恢复到后台执行,此工作不能有和前台交互,否则不能恢复到后台运行
[root@localhost ~]# tar -zcf root.tar.gz / 注释:按Ctrl+z放入后台暂停 tar: 从成员名中删除开头的“/” ^Z [3]+ 已停止 tar -zcf root.tar.gz / [root@localhost ~]# jobs [1]- 已停止 top [2] 运行中 tar -zcf root.tar.gz / & [3]+ 已停止 tar -zcf root.tar.gz / 注释:查看为已停止 [root@localhost ~]# bg 注释:把后台暂停的工作恢复到后台执行 [3]+ tar -zcf root.tar.gz / & 注释:显示的&可以看出工作在后台,且为运行状态 [root@localhost ~]# jobs [1]+ 已停止 top [2] 运行中 tar -zcf root.tar.gz / & [3]- 运行中 tar -zcf root.tar.gz / & 注释:查看显示在后台运行中
[root@localhost ~]# kill -9 2982 [3]- 已杀死 tar -zcf root.tar.gz / [root@localhost ~]# jobs [1]+ 已停止 top [2]- 已杀死 tar -zcf root.tar.gz /
bg对top命令无效,因为top需要与用户前台交互。
系统资源查看
vmstat监控系统资源
vmstat [刷新延时 刷新次数]
[root@localhost ~]# vmstat 1 3 注释:1代表每秒刷新,3代表3次,可以看到有3行记录 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 288788 2176 554792 0 0 24 22 63 172 3 0 97 0 0 0 0 0 288792 2176 554824 0 0 0 0 27 46 0 1 99 0 0 0 0 0 288792 2176 554824 0 0 0 0 24 39 0 0 100 0 0 [root@localhost ~]# vmstat 3 9 注释:3秒刷新一次,共显示9次记录(可看到有9行) procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 289088 2176 554792 0 0 24 22 62 170 3 0 97 0 0 1 0 0 289076 2176 554792 0 0 0 0 28 42 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 20 30 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 22 33 0 0 100 0 0 1 0 0 289076 2176 554792 0 0 0 0 20 30 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 20 32 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 24 35 0 0 100 0 0 1 0 0 289076 2176 554792 0 0 0 0 21 34 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 21 33 0 1 99 0 0 [root@localhost ~]# vmstat 1 注释:若只有一个数字,则为刷新时间间隔,无限次 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 289092 2176 554792 0 0 23 22 62 170 3 0 97 0 0 0 0 0 289076 2176 554792 0 0 0 0 26 42 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 30 41 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 25 39 0 0 100 0 0 0 0 0 289076 2176 554792 0 0 0 0 23 32 0 1 99 0 0 0 0 0 289076 2176 554792 0 0 0 0 23 34 0 0 100 0 0 ^C [root@localhost ~]#
dmesg开机时内核检测信息
[root@localhost ~]# dmesg|grep CPU [ 0.000000] smpboot: Allowing 128 CPUs, 127 hotplug CPUs [ 0.000000] setup_percpu: NR_CPUS:5120 nr_cpumask_bits:128 nr_cpu_ids:128 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 33 pages/cpu @ffff88003c600000 s96728 r8192 d30248 u262144 [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=128, Nodes=1 [ 0.000000] RCU restricting CPUs from NR_CPUS=5120 to nr_cpu_ids=128. [ 0.000453] CPU: Physical Processor ID: 0 [ 0.000478] mce: CPU supports 0 MCE banks [ 0.028943] smpboot: CPU0: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (fam: 06, model: 8e, stepping: 09) [ 0.029028] core: CPUID marked event: 'cpu cycles' unavailable [ 0.029029] core: CPUID marked event: 'instructions' unavailable [ 0.029030] core: CPUID marked event: 'bus cycles' unavailable [ 0.029031] core: CPUID marked event: 'cache references' unavailable [ 0.029032] core: CPUID marked event: 'cache misses' unavailable [ 0.029033] core: CPUID marked event: 'branch instructions' unavailable [ 0.029033] core: CPUID marked event: 'branch misses' unavailable [ 0.030768] Brought up 1 CPUs [ 0.333649] microcode: CPU0 sig=0x806e9, pf=0x1, revision=0x3c
free查看内存使用状态:
[root@localhost ~]# free 注释:默认为-k,以KB为单位显示 total used free shared buff/cache available Mem: 999936 153876 289092 6916 556968 639868 Swap: 4191224 0 4191224 [root@localhost ~]# free -b total used free shared buff/cache available Mem: 1023934464 157548544 296030208 7081984 570355712 655245312 Swap: 4291813376 0 4291813376 [root@localhost ~]# free -k total used free shared buff/cache available Mem: 999936 153856 289092 6916 556988 639888 Swap: 4191224 0 4191224 [root@localhost ~]# free -m total used free shared buff/cache available Mem: 976 150 282 6 543 624 Swap: 4092 0 4092 [root@localhost ~]# free -g total used free shared buff/cache available Mem: 0 0 0 0 0 0 Swap: 3 0 3 [root@localhost ~]# free -h total used free shared buff/cache available Mem: 976M 150M 282M 6.8M 543M 624M Swap: 4.0G 0B 4.0G
查看cpu信息:cat /proc/cpuinfo 注释:/proc是内存挂载点,断电就消失。
/proc目录下还有meminfo文件
uname查看与内核相关信息
[root@localhost ~]# uname Linux [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# uname -r 注释:查看内核版本 3.10.0-514.el7.x86_64 [root@localhost ~]# uname -s Linux
[root@localhost ~]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped
注释:可以看出此系统是64位的
查看Linux系统发行版:
[root@localhost ~]# lsb_release -a 注释:如果命令未安装可以用yum -y install lsb来安装 LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.3.1611 (Core) Release: 7.3.1611 Codename: Core
lsof列出进程打开或使用的文件信息
[root@localhost ~]# lsof -c w 注释:-c列出以指定字符串开头的进程打开的文件 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME watchdog/ 10 root cwd DIR 8,5 263 64 / watchdog/ 10 root rtd DIR 8,5 263 64 / watchdog/ 10 root txt unknown /proc/10/exe writeback 16 root cwd DIR 8,5 263 64 / writeback 16 root rtd DIR 8,5 263 64 / writeback 16 root txt unknown /proc/16/exe [root@localhost ~]# lsof -u xiongjiawei 注释:-u列出某个用户的进程打开的文件 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 2651 xiongjiawei cwd DIR 8,2 202 67 /home/xiongjiawei bash 2651 xiongjiawei rtd DIR 8,5 263 64 / bash 2651 xiongjiawei txt REG 8,5 960392 72354 /usr/bin/bash bash 2651 xiongjiawei mem REG 8,5 106070960 17079038 /usr/lib/locale/locale-archive bash 2651 xiongjiawei mem REG 8,5 61752 8433363 /usr/lib64/libnss_files-2.17.so bash 2651 xiongjiawei mem REG 8,5 2116736 8433345 /usr/lib64/libc-2.17.so bash 2651 xiongjiawei mem REG 8,5 19344 8433351 /usr/lib64/libdl-2.17.so bash 2651 xiongjiawei mem REG 8,5 174520 8458487 /usr/lib64/libtinfo.so.5.9 bash 2651 xiongjiawei mem REG 8,5 155064 8433338 /usr/lib64/ld-2.17.so bash 2651 xiongjiawei mem REG 8,5 26254 25315636 /usr/lib64/gconv/gconv-modules.cache bash 2651 xiongjiawei 0u CHR 4,3 0t0 5947 /dev/tty3 bash 2651 xiongjiawei 1u CHR 4,3 0t0 5947 /dev/tty3 bash 2651 xiongjiawei 2u CHR 4,3 0t0 5947 /dev/tty3 bash 2651 xiongjiawei 255u CHR 4,3 0t0 5947 /dev/tty3 [root@localhost ~]# lsof -p 228 注释:列出某个PID进程打开的文件 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ata_sff 228 root cwd DIR 8,5 263 64 / ata_sff 228 root rtd DIR 8,5 263 64 / ata_sff 228 root txt unknown /proc/228/exe