11-进程间通信-ps命令使用

LRU:Least Recently Used 近期最少使用算法(喜新厌旧),释放内存
旧的不常用的数据会被淘汰
 
进程间通信
IPC: Inter Process Communication
同一主机
pipe 管道,单向传输
socket   套接字文件,双工通信
Memory-maped file   文件映射,将文件中的一段数据映射到物理内存,多个进程共享这片内存
shm shared memory 共享内存
signal 信号
Lock   对资源上锁,如果资源已被某进程锁住,则其它进程想修改甚至读取这些资源,都将被阻
塞,直到锁被打开
semaphore 信号量,一种计数器,
不同主机:socket=IP和端口号
RPC remote procedure call
MQ 消息队列,生产者和消费者,如:Kafka,RabbitMQ,ActiveMQ
利用管道文件实现 IPC
mkfifo /data/test.fifo
cat >  /data/test.fifo
sss
cat  /data/test.fifo
sss

  函数专门存放调用

root@ubuntu2004:/etc/init.d# cat /etc/init.d/color 
color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}
. /etc/init.d/color  调用

 

ps 即 process state,可以进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 --forest
k|--sort 属性 对属性排序,属性前加 - 表示倒序
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
L 显示支持的属性列表
-C cmdlist 指定命令,多个命令用,分隔
-L 显示线程
-e 显示所有进程,相当于-A
-f 显示完整格式程序信息
-F 显示更完整格式的进程信息
-H 以进程层级格式显示进程相关信息
-u userlist 指定有效的用户ID或名称
-U userlist 指定真正的用户ID或名称
-g gid或groupname 指定有效的gid或组名称
-G gid或groupname 指定真正的gid或组名称
-p pid 显示指pid的进程
--ppid pid 显示属于pid的子进程
-t ttylist 指定tty,相当于 t
-M 显示SELinux信息,相当于Z

ps 输出属性

C :  ps -ef 显示列 C 表示cpu利用率
VSZ: Virtual memory SiZe,虚拟内存集,线性内存
RSS: ReSident Size, 常驻内存集
STAT:进程状态
 R:running
 S: interruptable sleeping
 D: uninterruptable sleeping
 T: stopped
 Z: zombie
 +: 前台进程
 l: 多线程进程
 L:内存分页并带锁
 N:低优先级进程
 <: 高优先级进程
 s: session leader,会话(子进程)发起者
 I:Idle kernel thread,CentOS 8 新特性
ni: nice值
pri: priority 优先级
rtprio: 实时优先级
psr: processor CPU编号
 
[root@centos7 ~]# ps aux |grep nginx | awk '{ print $6/1024 "M" "\t" $0 }'
0.65625M    root       945  0.0  0.0  28224   672 ?        Ss   07:22   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
28.4922M    nginx      947  1.7  0.7  55756 29176 ?        R    07:22   6:16 nginx: worker process
28.4922M    nginx      948  1.7  0.7  55756 29176 ?        R    07:22   6:11 nginx: worker process
0.960938M    root      3484  0.0  0.0 112824   984 pts/0    R+   13:11   0:00 grep --color=auto nginx
按CPU和内存利用率排序 
[root@centos7 ~]# ps axo pid,cmd,%cpu,%mem k -%cpu |head
  PID CMD                         %CPU %MEM
 2606 ab -n 20000 -c 2 http://192  104  0.0
  947 nginx: worker process        0.4  0.7
  948 nginx: worker process        0.4  0.7
 2438 [kworker/0:0]                0.2  0.0
 2429 [kworker/0:1]                0.1  0.0
    1 /usr/lib/systemd/systemd --  0.0  0.0
    2 [kthreadd]                   0.0  0.0
    4 [kworker/0:0H]               0.0  0.0
    6 [ksoftirqd/0]                0.0  0.0
[root@centos7 ~]# ps axo pid,cmd,%cpu,%mem k -%mem |head
  PID CMD                         %CPU %MEM
  930 /usr/bin/fdfs_storaged /etc  0.0  1.7
  947 nginx: worker process        0.6  0.7
  948 nginx: worker process        0.6  0.7
  912 /usr/bin/python2 -Es /usr/s  0.0  0.4
  484 /usr/lib/systemd/systemd-jo  0.0  0.4
  667 /usr/lib/polkit-1/polkitd -  0.0  0.3
  918 /usr/sbin/rsyslogd -n        0.0  0.3
  685 /usr/sbin/NetworkManager --  0.0  0.2
  944 /usr/bin/fdfs_trackerd /etc  0.0  0.2

 

posted @ 2022-04-19 16:02  gg888666  阅读(58)  评论(0编辑  收藏  举报