Linux进程管理

使用man手册查看

物理核心	
逻辑核心	32核

并行 		32
并发	
进程线程协程(异步)
#进程
一个正在运行的程序,一个程序运行至少要启动一个进程,主进程  子进程
速度:启动慢,结束慢
资源隔离:
资源不共享:

#线程
一个进程正常运行,至少要启动一个线程,主线程		子线程
速度:启动快,结束快
资源共享:
线程的损坏会影响进程

异步:
	节省资源
静态查看进程 process
[root@sxw ~]#  ps aux | less
参数解释:
ps :process nsapashot
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
-------------------
[root@linux-server ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
============================================================================
USER: 	#运行进程的用户
PID:   #进程ID
%CPU:   #CPU占用率
%MEM:   #内存占用率
VSZ	    进程占用的虚拟内存大小。
RSS     占用的物理内存大小
STAT:  #进程状态  ---了解
?    表示没有占用终端
R 	运行
S 	可中断睡眠 Sleep
D	不可中断睡眠
T 	停止的进程 
Z 	僵尸进程
X    死掉的进程
START:	#进程的启动时间
TIME:	#进程占用CPU的总时间
COMMAND: #进程文件,进程名

进程状态--了解
Sl	以线程的方式运行
Ss  s进程的领导者,父进程
R+	+表示是前台的进程组
S< <优先级较高的进程 	
SN  N优先级较低的进程
[root@linux-server ~]# ps -ef
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式
UID       用户ID
PID       进程ID
PPID      父进程ID
C         CPU占用率
STIME     开始时间
TTY       开始此进程的TTY----终端设备
TIME      此进程运行的总时间
CMD       命令名

查询指定pid

ps aux | grep sshd

pgrep sshd
pidof sshd

查看端口

net-tools	#环境安装
netstat -nplt | grep pid号
ss -nplt | grep pid号
-a  显示全部的进程
-u  显示udp
-n  以数字的型式显示协议名称
-t   tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
参数解释:
recv-Q:网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。
send-Q:网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Foreign Address:与本机端口通信的外部请求

lsof -i:80
#注意:端口号只有整数,范围是从0 到65535
参数解释:
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
w  #看已经登陆到终端的进程信息,远程登陆会有ip 地址

部分参数解释:
USER –登录用户名.
TTY –登录用户使用的终端名.
FROM –登录用户来源的主机名或IP地址.
LOGIN@ –用户登录时间.
WHAT –用户当前的进程及选项/参数。
默认端口
nginx: 80
httpd: 80
sshd: 22
mail:25	465
tomcat:8080
mysql:3306
redis:6379
ftp:21

动态查看进程

top	#动态显示信息,三秒刷新一次。
1分钟   第一个数字
5分钟   第二个数字
15分钟  第三个数字
======================
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出   
z 彩色显示
W 保存
=====================================
PR   优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES  进程使用的、未被换出的物理内存大小,单位kb。
SHR  共享内存大小,单位kb
us: 用户态进程占用cpu
ni: nice值
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
hi:硬中断,请求插队
si:软中断
st:停止
进程优先级
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
#修改进程(一般不要修改)
renice -n -10 pid
进程控制
kill 信号 PID   #信号也是进程间通信的一种方式
kill -l	 #查看所有信号
-9	#强制杀死,一般用于不能正常停止的情况下
-15  TERM 正常杀死(这个信号可以默认不写)可以使用systemctl stop 进程 停止服务
-1   HUP  重新加载进程或者重新加载配置文件,PID不变(不支持所有)
-18  CONT 激活进程
-19  STOP 挂起进程
#进程状态解释--了解:
+:表示运行在前台的进程
S+:休眠状态
T+:暂停,挂起状态
s:父进程

pkill -9 服务名  #使用pkill可以指定进程名字
作业控制
sleep 7000 &   #&:让命令或者程序后台运行
sleep 8000    #ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
^Z
[2]+  Stopped                 sleep 8000

jobs  #查看当前终端后台的工作号
bg %2  #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
jobs (只能在当前终端下使用)
fg %1  #将后台的程序调到前台
kill -9 %2  #通过kill杀死进程
 
nohop sleep 1000 &	#挂载后台

常用命令

运维三板斧

1.查看当前CPU负载

#查看cpu负载命令
w
top
uptime

2.查看内存使用

[root@linux-server ~]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           1984         154        1508           8         321        1632
Swap:          2047           0        2047

-m:单位M
-g:单位G

3.查看磁盘

df -h

4.查看系统的版本和内核

 cat /etc/redhat-release  #查看版本
 uname -a #看查正在运行的内核版本
 uname -r  #查看内核版本

你可能感兴趣的:(linux,服务器,运维)