首页 > 系统相关 >进程-系统性能和计划任务常用命令-上篇

进程-系统性能和计划任务常用命令-上篇

时间:2024-11-20 08:46:30浏览次数:3  
标签:ps grep pid nginx 常用命令 进程 上篇 lsof

12-进程-系统性能和计划任务

系统进程

确认init进程

  • init:第一个进程,从 CentOS7 以后为 systemd - 进程:都由其父进程创建,fork(),父子关系,CoW:Copy On Write (读时共享,写时复制)
which init
ll /usr/sbin/init

进程优先级

  • pstree是一个在类Unix系统中广泛使用的命令行工具,pstree以树状图的形式显示进程及其子进程的层次结构,清晰地表达了进程间的父子关系。这种展示方式比简单的列表(如ps命令的输出)更加直观,有助于用户快速理解进程的继承关系
  • ps的英文全称是process status,意为进程状态。通过ps命令,用户可以获取当前系统中正在运行的进程的各种详细信息,如进程ID(PID)、进程状态、CPU使用情况、内存占用、运行时间等。
    可以查看进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中

pstree,ps

ps axo pid,cmd,nice |head
top | head
nice -n 11 ping www.baidu.com
ps axo pid,cmd,nice | grep ping
renice -n -10 3887
ps axo pid,cmd,nice |grep 3734
renice -n -30 3887
pstree -p

ps aux|head -3
ps -ef|head -3
ps -eFH|head -3
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
ps -axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -x
ps auxf|head
ps aux k -%cpu
ps axo pid,cmd,%cpu,%mem k -%cpu
ps axo pid,cmd,%cpu,%mem --sort -%mem

ps axo pid,cmd,%cpu,%mem,user,euser,ruser|grep passwd
ps axo pid,cmd,%cpu,%mem,user,euser,ruser|grep passwd

ps -fU apache
ps -fU 48
ps -fu user01
ps -fu 1000
ps -U root -u root
ps -fG nginx
ps -fg mysql
ps -fg 27
ps -fp 1234
ps -f --ppid 1234
ps -fp 1204,1239,1263
ps -ft pts/0
ps -e --forest
ps -f --forest -C sshd
ps -ef --forest|grep -v grep|grep sshd
ps -fL -C nginx
ps L
ps -eo pid,ppid,user,cmd
ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime
ps -p 1244 -o comm
ps -C sshd,bash
ps -C httpd,sshd,-o pid
ps -eo comm,etime,user|grep nginx
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem |head
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu |head
ps -eM
ps --context
ps -eo euser,ruser,suser,fuser,f,comm,label
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem |head'

prtstat

prtstat命令是一个用于打印指定进程统计信息的工具。它通过读取/proc/PID/stat文件(在Linux系统中),来获取并显示指定进程的统计信息。这些信息对于了解进程的运行状态、资源占用情况等非常有用。
可以显示进程信息,来自于psmisc包

pidof ping
prtstat 3610
prtstat -r 3610

优先级

进程优先级调整

  • 静态优先级:100-139
  • 进程默认启动时的nice值为0,优先级为120
  • 只有根用户才能降低nice值(提高优先性)

nice命令用于在程序启动时修改其运行时的优先级。进程的优先级决定了它被CPU执行的先后顺序,优先级越高的进程占用CPU的次数越多。

nice -n 11 ping www.baidu.com
ps axo pid,cmd,nice|grep ping
renice -n -10 3887
ps axo pid,cmd,nice|grep 3734
renice -n -30 3887

进程搜索

pgrep

pgrep是Linux/Unix系统中一个用于查找与给定模式匹配的进程的命令。pgrep命令的名字来源于“process grep”的缩写,它使用pgrep来搜索与给定模式匹配的进程ID(PID)。该命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程ID。每一个进程ID以一个十进制数表示,通过一个分隔符(默认为换行符)和下一个ID分开。

pgrep -at pts/1
pgrep -f ".*sshd.*"
pgrep -o sshd
pgrep -n sshd
ps aux|grep user01
pgrep -u user01


pidof

pidof命令是Linux系统中的一个实用工具,用于查找当前正在运行的程序的进程ID(PID).
pidof命令通过进程名称来查找对应的进程ID,并将结果输出到终端上。它通常用于脚本中,以确定特定的程序是否正在运行,或者在启动或停止服务之前获取其PID。

pstree -p |grep nginx
pidof -x /usr/sbin/nginx
pidof nginx
pidof -s nginx
kill -9 $(pidof nginx)
pidof nginx
pidof -x /usr/bin/systemd

进程状态

top

top 命令是一个在类 Unix 操作系统(如 Linux 和 macOS)中广泛使用的命令行工具,用于实时显示系统的运行状况,特别是各个进程的资源和性能使用情况。它提供了一个动态更新的视图,帮助系统管理员和用户监控系统的健康状态。

top
top -d 10
top -u user01
top -Hp 992
top -p 992 -c
top -n 1
top -b -n 1

htop

htop是一个交互式的系统监视工具,用于查看Linux系统中正在运行的进程和资源使用情况。它提供了比传统的top命令更丰富的信息和功能,并以彩色方式展示进程列表,使得用户可以更直观地了解系统的运行状态。
注意:htop 是增强版的 top 命令,在 centos 中来自于 epel 源, ubuntu 中可以直接安装

htop
htop -d 5

free

free命令是Linux系统中用于显示内存使用情况的常用工具。free命令能够显示Linux系统中空闲的、已用的物理内存及swap内存,以及被内核使用的buffer和cache。它提供了系统内存使用情况的快照,帮助用户了解系统的内存资源分配和消耗情况。

free
free -m
free -h

#清理缓存
cat /proc/sys/vm/drop_caches
free -m
echo 3 > /proc/sys/vm/drop_caches
free -m

pmap

pmap命令是一个用于报告Linux进程内存映射关系的工具,它显示了进程的内存使用情况,包括代码段、数据段、堆栈等详细信息。这个命令对于理解进程内存布局和排查内存问题非常有帮助。
pmap实际上是一个Sun OS上的命令,Linux系统仅支持其有限的功能。

pstree -p|grep sshd
pmap 1134
pmap -x 1134
pmap -pd 1134
pmap -pd 1134 -A 00007f7504778000,00007f75047bd000
cat /proc/1134/maps

vmstat

vmstat命令生成的报告可用于平衡系统负载活动,帮助用户快速获取当前系统的负载情况,进行系统性能调优、故障排查等操作。具体来说,它可以:

  • 监测系统的整体负载情况:

了解系统的CPU、内存、磁盘、网络等性能指标,以及进程数量和状态等信息。

  • 分析系统性能问题:

通过观察系统的CPU使用率、内存占用、磁盘I/O等指标,快速定位系统的性能瓶颈,找到导致系统负载过高、响应变慢等问题的原因。

  • 监测系统的稳定性:

通过连续监测系统的负载情况,识别出系统的周期性波动,以及系统负载变化的规律,从而更好地管理系统资源,保证系统的稳定性。

vmstat
vmstat 1
vmstat -s

lsof

lsof:list open files,查看当前系统文件的工具。在linux环境下,一切皆文件,用户通过文件不仅可以访问常规数据,还可以访问网络连接和硬件如传输控制协议 (TCP) 和用户数据报协议 (UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符

yum install nginx -y
systemctl start nginx
ps aux|grep nginx
pstree -p |grep nginx
netstat -tnulp|grep nginx
lsof -Pti :80
lsof |head
lsof /var/log/messages
lsof /dev/pts/1
lsof `tty`
lsof -p 1270
lsof -c httpd
lsof -u root|more
lsof +D /var/log
lsof +d /var/log
lsof -i -n
lsof [email protected]
lsof -i :80 -n
lsof -i -n -a -p 9527
lsof -n -p -i TCP -s TCP:ESTABLISHED

从内存中恢复已删除的文件

tail -f /var/log/messages
rm -rf /var/log/messages
ls /var/log/messages
ps aux|grep tail
ll /proc/6037/fd #6037为ps aux|grep tail显示出的第二列数字
cat /proc/6037/fd/3
cat /proc/6037/fd/3 > /var/log/messages
ll /var/log/messages

kill

kill命令是在Unix和类Unix操作系统(如Linux)中使用的命令,主要用于向进程发送信号,通常用于终止进程。

  • kill命令:

用于终止指定进程的运行。
需要通过"进程ID"(PID)来指定要终止的进程。
可以发送多种信号给进程,其中SIGTERM(默认)和SIGKILL是两种常用的信号。

  • killall命令:

用于终结指定名称的所有进程。
通过"进程名称"来匹配并终止进程,而不是进程ID。
同样可以发送多种信号,但默认也是发送SIGTERM信号。

  • pkill命令:

用于根据进程名或信号终止进程,功能类似于killall,但提供了更多选项。
可以直接跟进程名称,也可以跟其他选项来指定终止条件。
同样可以发送多种信号。
高级功能:
可以根据终端号踢出用户登录。
可以根据用户名终止所有进程。
可以使用模糊匹配来终止进程名包含特定字符串的进程。

kill -l
trap -l
killall -0 ping
echo $?
killall -0 ping
echo $?
pkill -t pts/1
pgrep -a '^p'
pkill '^p'
pgrep -a '^p'
lsof -i :80
fuser -k -9 80/tcp
lsof -i:80

作业管理

Linux的作业控制

  • 前台作业:通过终端启动,且启动后一直占据终端
  • 后台作业:可通过终端启动,但启动后即转入后台运行(释放终端)
  • 在这里插入图片描述
ping ww.baidu.com
ps aux|grep ping
jobs
fg
fg2
jobs
bg
bg 1
jobs
echo $BASHPID
pstree -p|grep a.sh
ping 127.0.0.1 &
ps aux|grep ping
ps aux|grep ping
jobs
./a.sh 123 &
jobs
killall -19 a.sh
jobs
killall -18 a.sh
jobs

标签:ps,grep,pid,nginx,常用命令,进程,上篇,lsof
From: https://blog.csdn.net/m0_73940847/article/details/143884155

相关文章

  • 动态IP黑白名单过滤的设计与实现(上篇设计思想)
    文章目录需求分析方案设计1、设计过程2、最终方案3、扩展知识-布隆过滤器需求分析一些恶意用户(可能是黑客、爬虫、DDoS攻击者)可能频繁请求服务器资源,导致资源占用过高。因此我们需要一定的手段实时阻止可疑或恶意的用户,减少攻击风险。通过IP封禁,可以有效拉......
  • 【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
    Linux学习笔记:https://blog.csdn.net/2301_80220607/category_12805278.html?spm=1001.2014.3001.5482前言:在多任务操作系统中,进程优先级是影响任务调度的重要因素之一。操作系统通过设置不同的优先级来控制进程对CPU的使用权,从而实现资源的高效利用和任务的公平分配。本文......
  • MySQL常用命令
    MySQL#用户管理及授权CREATEUSERluke@localhostIDENTIFIEDBY'linuxprobe';grantallon*.*toluke@localhost;grantselect,update,delete,insertonmysql.usertoluke@localhost;#查询用户权限showgrantsforluke@localhost;#创建DBcreatedatabaselinu......
  • electron 渲染进程无法接收到主进程发送的配置文件内容
    问题electron中,主进程启动的时候,会读取配置文件内容,并通过ipc发送给渲染进程。现在的问题是,preload.js中的contextBridge里面的ipcRenderer.on一直没有执行。解决其实原因很简单,软件开启的时候,通过contextBridge和ipc这一套还没有完全准备好。导致主进程使用web......
  • 理解进程调度时机跟踪分析进程调度与进程切换的过程
    张晓攀+原创作品转载请注明出处+《Linux内核分析》MOOC课程https://mooc.study.163.com/course/1000029000实验八——理解进程调度时机跟踪分析进程调度与进程切换的过程一、理解Linux系统中进程调度的时机在Linux内核中,schedule()函数是核心的进程调度机制。它的主要作用是......
  • Linux常用命令之tar命令详解
    tar命令详解tar(TapeArchive)是Unix和Linux系统中一个非常强大的文件归档工具,用于创建、提取和管理归档文件。归档文件可以包含一个或多个文件和目录,常用于备份、存档和传输数据。tar支持多种压缩方式,如gzip、bzip2和xz。基本语法tar[选项][归档文件][文件或......
  • Linux系统怎么通过端口号查找完整进程
    需求已知某进程启动了一个端口号,怎么才能知道改进程的完整启动命令查找过程例如本机已经启动了8006端口通过端口PID可以查看到改端口启动的进程PID是6120#lsof-i:8006COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEpt_main_t6120xiaoxing93u......
  • 网络属性及相关配置常用命令-下篇
    nmclinmcliconnmclidevshowens160nmcliconmodens160+ipv4.address10.0.0.119/24#同一设备新增一条配置+ipv4.addressnmclicondownens160;nmcliconreload;nmcliconupens160ipa|grep'inet1'nmcliconmodens160-ipv4.addresses10.0.0.119/2......
  • 网络属性及相关配置常用命令-上篇
    网络属性及相关配置网卡名字rocky8|openEuleripa|egrep'mtu|scrope'cd/etc/sysconfig/network-scriptsmvifcfg-ens160ifcfg-eth0sed-i's/ens160/eth0/g'ifcfg-eth0vim/etc/default/grub #grub是启动配置文件GRUB_CMDLINE_LINUX="...net.ifnames=0......
  • 【Linux】进程的基本概念
    目录一、进程概念的推导二、描述进程(PCB)2.1task_struct2.2task_struct内容2.2.1task_struct内容分类2.2.2PID(进程ID)2.2.3PPID(父进程的进程ID)三、查看进程四、进程的创建4.1命令行直接启动进程4.2通过代码来创建进程4.2.1通过fork函数来创建进程4.2.2fork函数......