Linux进程管理-静态查询-动态查询

获取帮助的方法:以[ls]为例

在这里插入图片描述

- [ls] --help
- info [ls]
- man [ls]  --其中135 最常用
-   man 1 用户命令   --ls/cp/mv..
-   man 2 系统调用  
-   man 3 库调用  
-   man 4 特殊文件  
-   man 5 配置文件和文件格式   --fstab/hosts..
-   man 6 游戏  
-   man 7 杂项  
-   man 8 系统管理命令   --mount/fsck..
其中模糊查询:
man -k pass
man -f passwd  查询显示对应章节

-type[ls]--检查并显示给定的命令类型
[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的别名

[root@localhost ~]# type cat  #外部命令显示命令的路径
cat 已被哈希 (/usr/bin/cat)

[root@localhost ~]# type cd  #显示命令是一个内置命令
cd 是 shell 内嵌

对别名的补充说明:

alias查询当前系统中的所有别名
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'......

永久定义别名:
打开配置文件 /etc/bashrc结尾添加;
临时定义别名:
[root@localhost ~]# alias la="ls -lah"
释放别名:
[root@localhost ~]# unalias la

which查询命令对应的程序位置

[root@localhost ~]# which cat
/bin/cat
[root@localhost ~]# which ls
alias ls='ls --color=auto'
	/bin/ls
[root@localhost ~]# which useradd
/usr/sbin/useradd

进程管理:

进程: 当可执行文件,运行后在系统中生成的记录,以及该进程所消耗的资源(cpu, 内存,磁盘,网络等), linux中的进程称之为守护进程

进程状态:(面试要点)

[root@client ~]# man ps   #man ps 进入进程状态集 PROCESS STATE CODES
/STATE
PROCESS STATE CODES
       Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a
       process:
               D    uninterruptible sleep (usually IO)   # 不可中断休眠态
               R    running or runnable (on run queue)   # 运行态
               S    interruptible sleep (waiting for an event to complete)  # 休眠态
               T    stopped by job control signal  # 停止态
               t    stopped by debugger during the tracing  # 调试中的停止态
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)  #死亡态
               Z    defunct ("zombie") process, terminated but not reaped by its parent  #僵尸态

       For BSD formats and when the stat keyword is used,
       additional characters may be displayed:

               <    high-priority (not nice to other users)  # 高优先级
               N    low-priority (nice to other users) # 低优先级
               L    has pages locked into memory (for real-time and custom IO) #锁内存页
               s    is a session leader  # 进程领导者
               l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) # 多线程
               +    is in the foreground process group #前台进程组

前后台切换-以钟表为例

[root@client ~]# xclock -update 1 &   # &后台运行,stopped状态,后台运行也依赖终端进行
[root@client ~]# xclock -update 1   # 前台运行
Warning: Missing charsets in String to FontSet conversion
^Z                                          # Ctrl +Z 前台进程调到后台,并且呈现停止态
[2]+  已停止              xclock -update 1    
[root@client ~]# xclock -update 2
Warning: Missing charsets in String to FontSet conversion
^Z
[3]+  已停止               xclock -update 2
[root@client ~]# bg 1    # 进程编号2,后台运行,bg 加编号 后台运行
bash: bg: 任务 1 已在后台
[root@client ~]# fg 1    # 进程编号1,前台运行,fg +编号前台运行
nohup xclock -update 1
^Z
[1]+  已停止               nohup xclock -update 1
[root@client ~]#  jobs   # jobs 查看后台进程状态 + 表示当前的第一个进程, —表示第二个
[1]+  已停止               nohup xclock -update 1
[2]   已停止               xclock -update 1
[3]-  已停止               xclock -update 2
[root@client ~]# kill %1   # kill % 杀进程
[1]+  已终止               nohup xclock -update 1
[root@client ~]# kill %2
[2]   已终止               xclock -update 1
[root@client ~]# kill %3
[3]-  已终止               xclock -update 2
[root@client ~]# nohup xclock -update 1 &   #脱离终端运行
[1] 26008
nohup: 忽略输入并把输出追加到"nohup.out"
[root@client ~]# kill %1
[1]+  已终止               nohup xclock -update 1

杀进程

[root@client ~]# kill -15 18344    #(进程id) 正常结束 ,正常关闭 
[root@client ~]# kill -9 18332    # 强制杀进程 ,强制关闭(kill 最高级别
在使用kill命令来终止一个很消耗资源的进程时,最强信号值是9
[root@client ~]# pkill httpd      #杀一组进程 (杀进程名 别杀系统进程,杀自己创建的进程; [root@client ~]# killall httpd    #杀进程名  
[root@client ~]# kill -l       #进程通讯机制
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP

查看进程号 ps -ef |grep vim

[root@client ~]# ps -ef |grep vim
root      26768   2509  0 20:42 pts/0    00:00:00 grep --color=auto vim

查询

静态查询

[root@client ~]# ps -ef          # ?表示不依赖终端运行
UID         PID       PPID      C               STIME       TTY      TIME       CMD
进程拥有者   进程编号  父进程编号 占用CPU的百分比  进程启动时间  运行终端 占用CPU时间 进程名
root          1       0         0              8月14         ?       00:00:22 /usr/lib/s
root          2      0          0              8月14         ?       00:00:00 [kthreadd]
root          4      2          0              8月14         ?       00:00:00 [kworker/0
root          6      2          0              8月14         ?       00:00:00 [ksoftirqd
root          7      2          0              8月14         ?       00:00:00 [migration

[root@client ~]# ps aux
USER        PID     %CPU         %MEM          VSZ      RSS         TTY    STAT    START       TIME       COMMAND
进程拥有者  进程编号 占用CPU百分比 占用内存百分比 虚拟内存 实际消耗内存 运行终端 进程状态 进程运行时间 占用CPU时间 进程名
root          2     0.0          0.0           0        0          ?        S       8月14        0:00        [kthreadd]
root          4     0.0          0.0           0        0          ?        S<      8月14       0:00    [kworker/0:0H]
root        676     0.0          0.0          201328  1272         ?        Ssl     8月14       0:00     /usr/sbin/gssproxy -D
avahi       682     0.0          0.0          62156   400          ?        S       8月14      0:00      avahi-daemon: chroot helper
root        706     0.0          0.1          52808  2736          ?        Ss      8月14      0:00     /usr/sbin/smartd -n -q never
rtkit       708     0.0          0.0          198804  1772         ?        SNsl   8月14      0:03     /usr/libexec/rtkit-daemon
其中STAT进程状态,参考上面提供的进程状态;上半部分,运行队列;下半部分,内存以配置为单位。

[root@client ~]# ps auc
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1279  0.0  4.5 395072 92540 tty1     Rsl+ 8月14   0:58 X
root       2509  0.0  0.1 116672  3396 pts/0    Ss   8月14   0:01 bash   #Ss休眠态
root      26294  0.0  0.0 155372  1868 pts/0    R+   20:06   0:00 ps

动态查询

[root@client ~]# top -d 0.1     # top查询指令,-d 查询秒,显示进程信息周期
top - 20:10:10 up 1 day,  8:49,   2 users,        load average: 0.10, 0.06, 0.05
当前系统时间              运行时间  当前登录用户总数 平均负载       分钟
Tasks: 216 total,   1 running, 215 sleeping,   0 stopped,   0 zombie
进程总数             1运行      215 休眠         0 停止        0僵尸态
%Cpu(s): 25.0 us,  0.0 sy,  0.0 ni,    75.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
占用CPU% 用户消耗    系统消耗 nice值调整  空闲      等待硬盘  硬中断   软中断    偷取
KiB Mem :  2027968 total,   378336 free,   847844 used,   801788 buff/cache
           内存总量         空闲内存        已使用内存      缓存
# buff记录文件位置,用户存储会有一个缓存段,buff元数据信息,cache存储真正的数据,buff比cache小得多;buff文件索引,  
KiB Swap:  2097148 total,  2097148 free,        0 used.   929532 avail Mem 
            交换分区        空闲                 已用        有效的可用内存
#交换分区大小,通常是物理内存2倍,但是很大的环境就不要添加这么大的交换分区,固态硬盘速度较慢。 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND  
  进程编号       优先级     虚拟内存 实际消耗内存 共享内存 进程状态 CPU使用率 内存使用率 占用CPU使用时间 进程名
  2034 root      20   0 3586448 259400  76388 S  50.0 12.8   4:10.52 gnome-shell   
  2502 root      20   0  699412  34284  19696 S  10.0  1.7   0:33.66 gnome-termin+ 
     1 root      20   0  194096   7256   4236 S   0.0  0.4   0:22.34 systemd  
     
%Cpu(s) 指的是有多少CPU核心,展开就是每个CPU平均消耗
CPU(s)展开以后就是,1展开CPU信息, 再1合并CPU
%Cpu0  :  5.0 us,  2.1 sy,  0.0 ni, 92.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  4.9 us,  2.1 sy,  0.0 ni, 93.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
#上半部分用户态,下半部分内核,系统消耗,消耗比为3:1

P cpu排序,M 内存排序
%CPU  %MEM       
4.7   12.8  
3.3   5.2             
0.0   2.8  
2.0   1.7  

补充信息

查询当前内核版本uname

[root@client ~]# uname -r
3.10.0-1062.el7.x86_64
[root@client ~]# uname -a
Linux client.com 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

内存

cat /proc/meminfo 查看硬件信息

[root@client ~]# cat /proc/meminfo   # 内存在系统中映射的文件
MemTotal:        2027968 kB
MemFree:          407992 kB
MemAvailable:     955868 kB

CPU采集数据-uptime-对应硬件文件cat /proc/cpuinfo

[root@client ~]# uptime      #  获取CPU负载
 20:34:21 up 1 day,  9:13,  2 users,  load average: 0.00, 0.01, 0.05
[root@client ~]# cat /proc/cpuinfo   # cpu硬件对应的文件
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 25
[root@client ~]# lscpu   # 一个简单指令集,其中缓存是CPU里的缓存,不是内存中的缓存,离CPU核心越近,存储越快。硬盘-内存-三级缓存(共享)-二级缓存-一级缓存-i 文件索引,d date 数据(通过这种方式降低成本
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
座:                 2
NUMA 节点:         1
厂商 ID:           AuthenticAMD

free 查看以MB为单位的内存信息

[root@client ~]# free
              total        used        free      shared  buff/cache available
Mem:        2027968      826740      410440       75000      790788      958352
Swap:       2097148           0     2097148
[root@client ~]# free -m    # 显示系统内存使用情况,包括交换分区
              total        used        free      shared  buff/cache   available
Mem:           1980         807         400          73         772         935
Swap:          2047           0        2047

CPU-mpstat 查看进程百分比

root@client ~]# mpstat
Linux 3.10.0-1062.el7.x86_64 (client.com) 	2023年08月15日 	_x86_64_	(2 CPU)
20时28分50秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时28分50秒  all    0.18    0.00    0.13    0.01    0.00    0.01    0.00    0.00    0.00   99.66

[root@client ~]# mpstat 1 2   # 查看进程百分比,一秒一次,检查两次
Linux 3.10.0-1062.el7.x86_64 (client.com) 	2023年08月15日 	_x86_64_	(2 CPU)
20时29分06秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时29分07秒  all    2.53    0.00    0.51    0.00    0.00    0.00    0.00    0.00    0.00   96.97
20时29分08秒  all    3.05    0.00    0.51    0.00    0.00    0.00    0.00    0.00    0.00   96.45
平均时间:  all    2.78    0.00    0.51    0.00    0.00    0.00    0.00    0.00    0.00   96.71

[root@client ~]# mpstat -P 0 1 2  # mpstat -P 显示特定CPU的使用率,0核心的负载,一秒一次,采集两次
Linux 3.10.0-1062.el7.x86_64 (client.com) 	2023年08月15日 	_x86_64_	(2 CPU)
20时29分56秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时29分57秒    0    2.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   97.00
20时29分58秒    0    4.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   96.00
平均时间:    0    3.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   96.50

[root@client ~]# mpstat -P ALL 1 2  #mpstat -P ALL 1 2    # 所有核心的使用率, 1秒一次,采集2次
Linux 3.10.0-1062.el7.x86_64 (client.com) 	2023年08月15日 	_x86_64_	(2 CPU)
20时30分18秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   0.00   91.49
省略···

nice值调整–nice值调整(-20~19):值越小,优先级越高

root@client ~]# renice -n -20 -p 2346
2346 (进程 ID) 旧优先级为 0,新优先级为 -20
[root@client ~]# renice -n 0 -p 2346
2346 (进程 ID) 旧优先级为 -20,新优先级为 0
[root@client ~]# nice -n -20 xclock -update 1
[root@client ~]# nice -n -20 vim  # 系统设置,但是vim不需要这么高优先级,CPU会自动调整优先级


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值