进程-性能工具-信号kill

进程和线程

进程process和线程threads的概念
process  用户空间进程		内核空间进程
 pstree -pa tom1   查看用户tom1 执行的命令
ps -eo pid,lstart,etime,cmd |grep nginx
VSZ 物理内存+共享内存
RSS 物理内存
COMMAND 【】 内核进程   / 用户进程
STAT
	D      //无法中断的休眠状态(通常 IO 的进程); 
	R      //正在运行可中在队列中可过行的; 
	S      //处于休眠状态; 
	T      //停止或被追踪; 
	W      //进入内存交换 (从内核2.6开始无效); 
	X      //死掉的进程 (基本很少见); 
	Z      //僵尸进程; 
	<      //优先级高的进程 
	N      //优先级较低的进程 
	L      //有些页被锁进内存; 
	s      //进程的领导者(在它之下有子进程); 
	l      //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads); 
	+      //前台进程;
ni: nice值
pri: priority 优先级
rtprio: 实时优先级
psr: processor CPU编号
###########
并发,通过时间片来分片执行
并行,多核执行
进程是执行中的程序
进程(代码就是二进制程序,数据,进程空间就是内存空间,打开的文件)
进程=公司  线程=员工
进程-》子进程
物理地址空间===物理内存大小
虚拟地址空间===
cat /proc/1730/status	#查看pid号的文件状态
ll /proc/1730/exe		#查看进程启用的程序
ll /proc/1730/fd		#查看打开的文件
##############
memory leak内存泄露 程序申请了内存空间,一直占用不释放,导致别的进程不能使用
memory overflow内存溢出 程序申请了10M空间,但是写入了20M空间,会占用别的进程的空间
oom out of memory 内存不足
孤儿进程
父进程先退出,子进程会成为孤儿进程,这是孤儿进程会被PID=1的systemd进程收养,成为systemd的子进程
孤儿进程会继续执行
LRU算法
从上往下排列使用内存位置,如果有新的调用数据,就会把最下边的位置给挤掉,以此类推
#如果重新调用下边位置的数据,会重新移动的最上边
进程间的通信
同一主机的方法
pipe文件 单工文件,写入的时候直接写进内存中,读取的时候直接从内存中读 #进程通讯的文件 mkfifo
socket文件 双工 
memory-maped file 文件映射,将文件中的一段数据映射到物理内存,多个进程共享这片内存
shm shaer memory 共享内存
signal 信号
lock 加锁
semaphore 信号量,一种计数器
不同主机的方法 socket=ip+端口号
RPC 远程默认调用
MQ  消息队列,生产者和消费者 如kafka,RabbitMQ,activeMQ
优先级
0-99	实时进程
100-139	非实时进程
nice -20对应100;19对应139
查看优先级#ps axo pid,cmd,nice
调整优先级#renice -n -10 5687
当0优先级的进程时间片到时,会放到就绪队列里,等到0优先级的运行队列执行完,会把0就绪队列的拿出来放到运行队列,都执行完会把1运行队列拿到0队列,以此类推
0-139运行队列按优先级分类
0-139就绪队列按优先级分类
[root@centos8-node2 tmp]# ps axo pid,cmd,nice
...
5687 ping 127.0.0.1                0
5688 ps axo pid,cmd,nice           0
[root@centos8-node2 tmp]# renice -n -10 5687
5687 (process ID) old priority 0, new priority -10
[root@centos8-node2 tmp]# ps axo pid,cmd,nice
...
5687 ping 127.0.0.1              -10
5690 ps axo pid,cmd,nice           0
性能工具
buffer 写入优势  cache 读取优势
pstree -p	进程工具
pstree -u	进程工具
ps -efT | ps auxf 
ps -T -p pid		//列出了由进程号为 pid 的进程创建的所有线程
prtstat $pid	#详细信息
 pmap 689 查看占用的内存空间
pgrep ssh	查看服务pid
pgrep -au root
pidof 		查看服务pid
mpstat 2
top -H -p 	121 #显示pid123的线程信息
ps -T -p $pid
iotop 磁盘工具
iftop 网络工具
nload 网络工具
nethogs 网络工具
iptraf-ng 网络工具
time 查看命令运行时长 time(ls)
dstat 系统统计
ab -c 1000 -n2000   -c 并发数  -n 用户数  页面测试
lsof进程查看
lsof -c sshd	#查看ssh正在使用的文件和网络连接
lsof -u root	#查看root正在使用的文件和网络连接
lsof -p 10840	#查看进程打开的文件
lsof -t -c sshd	#只显示进程号
lsof -i :22		#查看端口22打开的文件
web管理界面
dnf install -y cockpit
systemctl enable --now cockpit
192.168.1.12:9090 登录web
pmap
查看进程在内存的运行空间
[root@cenots8 etc]# pmap 15078
15078:   nginx: master process /usr/sbin/nginx
0000565017aaf000   1048K r-x-- nginx
0000565017db4000      8K r---- nginx
0000565017db6000    108K rw--- nginx
0000565017dd1000    128K rw---   [ anon ]
...
 total           119180K
信号kill
0) 检查服务状态 		#kill -0  3309;echo $?    killall -0 mysql;echo $?
1)  重新加载文件 #例 kill -1  $pid
1) SIGHUP 无须关闭进程而让其重读配置文件
2) SIGINT 中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT 相当于ctrl+\
9) SIGKILL 强制杀死正在运行的进程,可能会导致数据丢失,慎用!
15) SIGTERM 终止正在运行的进程,默认信号
18) SIGCONT 继续运行
19) SIGSTOP 后台休眠
fg 投到前台终端
bg 投到后台
ping 127.1&ping 127.2 同时执行

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值