首页 > 系统相关 >linux核心基础-进程与资源管理

linux核心基础-进程与资源管理

时间:2024-05-31 16:44:09浏览次数:17  
标签:ps 显示 文件 nginx linux 进程 资源管理

1、linux资源管理器

linux中对需要运维去管理、去查看的资源信息,如下

内存资源、使用率
free命令
磁盘资源、使用率
df
CPU资源、使用率
top
htop
glances
进程资源、使用率
ps
pstree
pidof
网络资源、使用率
Iftop
所有资源的整体查看命令
top
glances
htop

2、进程

2.1 区分

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,并占用一定的系统资源。
程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。
线程是真正干活的

2.2进程fork概念

1.我们的操作系统都是一堆进程而已,系统运行时,就产生了0号进程,然后其他进程都是0号进程创建的子进程。
2.linux启动之后,第一个进程就是PID为0,然后通过0号进程fork()出其他的进程。
3.操作系统的运行,就是不断的创建进程、以及销毁进程。

2.3 孤儿进程

1.当父亲进程挂了,导致儿子进程成了孤儿,甚至是一个、或者多个孤儿进程。
2.孤儿进程会被系统的1号进程收养,并且有1号进程来回收,处理这些孤儿进程。
3.孤儿进程就是失去了原本父亲的进程,1号进程好比是孤儿院,专门处理孤儿进程的善后工作,因此孤儿进程不会对系统产生什么危害。

2.4僵尸进程

1.僵尸听着明显比孤儿进程可怕些,是有害的
2.父亲进程创建出子进程后,如果子进程先挂了,父进程却不知道儿子进程挂了这件事,就无法正确送走儿子进程,清楚它在系统中的信息,那么这个儿子进程就成了可怕的僵尸进程,会对系统产生危害。
3.当系统中有了僵尸进程,你可以通过ps命令找到它,并且它的状态是(Z,zombie僵尸进程)
4.如果系统中产生大量僵尸进程,占据了系统中大量可分配的资源,如进程id号,系统就无法再正确创建新进程,完成任务,导致系统无法使用的危害。

2.3.1 解决僵尸进程

  • 杀死父进程
  • 优化代码,不要再写这种垃圾代码了,把unix高级编程,好好学学。
  • 开除、换一个更懂操作系统的程序员。
1. 当程序运行的时候,通过父进程fork创建子进程去处理任务。
2. 子进程被创建后开始处理任务,任务处理完毕后就退出了,子进程应该去通知父进程,将儿子进程销毁,别浪费资源。
3. 如果子进程没有正确告知父进程,回收自己的系统资源,且父进程还未结束,导致该子进程成为僵尸进程。

3、进程管理命令

3.1 top查看 CPU使用情况

命令:top

作用:查看服务器的进程占用的资源(100%使用)

语法:# top (动态显示)

top操作快捷键

z::打开,关闭颜色

M(大写):表示将结果按照内存(MEM)从高到低进行降序排列;

m(小写):切换内存memmory的显示格式。

P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列;

1 :当服务器拥有多个cpu 的时候可以使用“1”快捷键来切换是否展示显示各个cpu 的详细信息;

q:退出

3.2 ps查看进程

ps aux #unix 查看进程
命令:ps(process status 进程状态)
语法:ps [参数选项]
作用:主要是查看服务器的进程信息,并且是打印当前的运行状态快照,而不是实时的监控,只是某一时刻的系统进程信息

参数风格,请注意,参数的位置,存在先后关系,位置错误可能导致无法使用。



# UNIX风格,没有短横线
a # 显示所有终端、所有用户执行的进程
u # 以用户显示出进程详细信息
x # 显示操作系统所有进程信息
f # 显示进程树形结构
o # 格式化显示进程信息,指定如pid
k # 对进程属性排序,如k %mem  ,正序排序   ,k -%mem 逆序
--sort,再进行排序,如 --sort %mem 根据内存使用率显示


linux标准参数用法
-e # 显示所有进程
-f # 显示进程详细
-p # 指定pid,显示其信息,如 ps -fp 2609
-C # 指定进程的名字查看,如ps -fC sshd
-U # 指定用户名,查看用户进程信息 ps -Uf yuchao01

3.3 grep取反

同学们会发现总有一个grep进程

可以grep过滤掉。

语法

grep -v 选项,取反

[root@yuchao-linux01 ~]# ps -ef|grep vim |grep -v grep
root      20313  19658  0 20:38 pts/0    00:00:00 vim chaoge666.txt

3.4 ps常用命令组合(重点)

参数风格,请注意,参数的位置,存在先后关系,位置错误可能导致无法使用。

# UNIX风格,没有短横线
a # 显示所有终端、所有用户执行的进程
u # 以用户显示出进程详细信息
x # 显示操作系统所有进程信息
f # 显示进程树形结构
o # 格式化显示进程信息,指定如pid
k # 对进程属性排序,如k %mem  ,正序排序   ,k -%mem 逆序
--sort,再进行排序,如 --sort %mem 根据内存使用率显示


linux标准参数用法
-e # 显示所有进程
-f # 显示进程详细
-p # 指定pid,显示其信息,如 ps -fp 2609
-C # 指定进程的名字查看,如ps -fC sshd
-U # 指定用户名,查看用户进程信息 ps -Uf yuchao01

3.5 lsof查看进程打开了什么文件

比如,当我们需要检查网站服务器的nginx进程,以及nginx都打开了哪些文件,比如nginx记录的日志,写入到了什么文件里,lsof可以轻松帮你找到这些文件。

linux一切皆文件,任何事务都以文件的形式存在,通过文件,不仅可以直接访问到文本数据,常规数据,甚至网络连接(socket套接字文件)、以及硬件(/dev/sda),都以文件形式可以在linux管理。

常用参数
-c # 指定进程名,打开了哪些系统文件,如lsof -c nginx
-i # 显示符合条件的进程,如ipv[46][protocol][@host|addr][:service|port]
-p # 显示指定pid打开的文件
-u # 显示指定用户uid打开的文件,以及具体进程信息
+d # 显示文件夹下被打开的文件有哪些,如 lsof +d /var/log/nginx/
+D # 递归列出目录下哪些文件被进程打开
-n # 不显示主机名,直接显示ip
-P # 不显示端口名,直接显示端口号
-s # 列出文件大小

状态解释

[root@yuchao-linux01 log]# lsof +D /var/log/nginx/ | head -2
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
nginx   5489  root    2w   REG  253,0        0 17579733 /var/log/nginx/error.log

名称  
进程标识符id号        
进程执行的用户主    
文件描述符   
文件类型 reg普通文本 DIR目录
NODE 索引节点(文件在磁盘上的标识)
NAME 进程打开文件的名字

标签:ps,显示,文件,nginx,linux,进程,资源管理
From: https://www.cnblogs.com/mushann/p/18224777

相关文章

  • linux的孤儿进程
    在Linux系统中,孤儿进程是指其父进程已经终止或被杀死,而该进程本身还在运行的进程。当父进程正常退出或异常终止时,它的所有子进程都将变为孤儿进程。这些孤儿进程不再有任何父进程来监控和管理它们的状态。然而,Linux系统并不会让这些孤儿进程成为真正的“孤儿”。相反,系统会......
  • linux修改某类文件权限命令
    bashfind/your/directory-typef-name"*.so*"!-typel-execchmod644{}+这条命令会在/your/directory目录下递归查找所有文件名以.so结尾的文件(共享库文件),并将它们的权限设置为644。!-typel部分确保只有实际的文件(不是符号链接)会被修改权限。请替换/your/......
  • linux系统中运行jmeter
    首先安装Wmware虚拟机linux系统,大家自行百度下载安装。可以在虚拟机上配置环境来直接jmeter脚本,也可以使用xshell连接,这里我们学习在虚拟机上配置环境来执行。下面是我安装好进来之后的页面 (如果大家对linux命令不太熟悉,可以下载一个可视化远程软件winscp进行操作)接下来我......
  • Linux搜索查找类
    1.find  【find指令将从指定目录向下递归遍历其中各个子目录,将满足条件的文件或者目录显示在终端】       案例1:按文件名:根据名称查找/home目录下的hello.txt文件find/home-namehello.txt   案例2:按拥有者:查找/opt目录下,用户名称为Tom的......
  • linux(centos7)中安装7z
    linux(centos7)中安装7z-tatasix-博客园(cnblogs.com)一.先安装wgetyum-yinstallwget二.下载7z的压缩包wgethttps://sourceforge.net/projects/p7zip/files/p7zip/16.02/p7zip_16.02_src_all.tar.bz2三.安装bzipyuminstall-ybzip2四.解压压缩包tar-jxvf......
  • 浅识Linux
    浅识LinuxLInux安装使用:先装VMware打开虚拟机软件,创建新的虚拟机,选择自定义安装硬件兼容性(默认选项即可)稍后安装操作系统,只创建一台裸机中间一些按需选择即可。。。。。。。。。。。指定网络连接方式为NAT(有需要虚拟机与宿主机处于同一网段的情况选桥接模......
  • 521源码-游戏源码-2024卡牌回合自走棋手游《梦间集》推出全新Linux手工服务端
    首款稀有卡牌回合自走棋手游《梦间集》推出全新Linux手工服务端整理更多网站源码,游戏源码,学习教程,请点击......
  • 在Linux中,如何进行日志审计?
    在Linux中进行日志审计主要是为了记录、监控和分析系统活动,以确保安全合规、故障排查和性能优化。以下是进行日志审计的一些关键步骤和工具:1.配置auditd审计系统安装与启动:确保auditd服务已经安装并正在运行。auditd是Linux系统自带的审计子系统,用于收集安全相关的事件日志......
  • 在Linux中,如何进行网络监控?
    在Linux中进行系统监控是确保系统稳定性和性能的关键任务,可以通过多种命令行工具和图形界面应用程序来实现。下面是一些基本且常用的系统监控方法和工具:1.CPU监控top或htop:top是一个实时显示系统中各个进程资源使用情况(CPU、内存)的命令行工具。htop是top的增强版,提供......
  • 在Linux中,如何进行应用性能监控?
    在Linux中进行应用性能监控是确保应用程序高效运行的关键步骤。这不仅包括基本的系统资源监控,还涉及到应用程序内部的性能分析。以下是一些主要的方法和工具:1.使用标准系统监控工具top/htop:快速查看哪些进程占用了大量CPU或内存资源。strace:跟踪系统调用,帮助诊断应用为何......