首页 > 系统相关 >linux进程与计划(2)

linux进程与计划(2)

时间:2024-04-18 18:11:46浏览次数:29  
标签:优先级 top 命令 计划 内存 linux 进程 CPU

五大性能

性能 命令
内存使用率 free,top
CPU使用率 top,ps,w
硬盘使用率 df
硬盘读写性能 dd,iostat
网络带宽 iftop

ps -ef 命令输出信息
如果不想看到所有的进程,只想查看一下当前登录产生了哪些进程,那只需使用 "ps -l" 命令就足够了
CPU 在运算数据时,不是把一个集成算完成,再进行下一个进程的运算,而是先运算进程 1,再运算进程 2,接下来运算进程 3,然后再运算进程 1,直到进程任务结束。不仅如此,由于进程优先级的存在,进程并不是依次运算的,而是哪个进程的优先级高,哪个进程会在一次运算循环中被更多次地运算。
在 Linux 系统中,表示进程优先级的有两个参数:Priority 和 Nice
其中,PRI 代表 Priority,NI 代表 Nice。这两个值都表示优先级,数值越小代表该进程越优先被 CPU 处理。不过,PRI值是由内核动态调整的,用户不能直接修改。所以我们只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。

top命令

ps命令可以一次性给出当前系统中进程状态,但使用此方法得到的信息缺乏时效性,并且如果管理员需要实时监控进程运行情况,就必须不停地执行ps命令,这显然是缺乏效率的。
为此,linux提供了top命令。top命令可以动态地持续监听进程的运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需求,人性化地定制自己的输出,进而更清楚的了解进程的运行状态。
选项

  • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
  • -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
  • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
  • -p 进程PID:仅查看指定 ID 的进程;
  • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
  • -u 用户名:只监听某个用户的进程;

在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作

  • ? 或 h:显示交互模式的帮助;
  • c:按照 CPU 的使用率排序,默认就是此选项;
  • M:按照内存的使用率排序;
  • N:按照 PID 排序;
  • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
  • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
  • r:按照 PID 给某个进程重设优先级(Nice)值;
  • q:退出 top 命令;

top命令的输出内容是动态的,默认每隔3秒刷新一次。命令的输出主要分为两部分:
1.第一部分是前五行,显示的是整个系统的资源使用情况,我们就是通过这些输出来判断服务器的资源使用状态的
2.第二部分是从第六行开始的,显示的是系统中进程的信息

第一部分

top - 10:06:37 up 5:36, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 204 total, 1 running, 202 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1867048 total, 74348 free, 755112 used, 1037588 buff/cache
KiB Swap: 4194300 total, 4191856 free, 2444 used. 878688 avail Mem

第一行为任务队列信息,具体内容如表 所示。

内 容 说 明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间.本机己经运行 1 天 13 小时 32 分钟
2 users 当前登录了两个用户
load average: 0.00,0.00,0.00 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)

第二行为进程信息,具体内容如表

内 容 说 明
Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第三行为 CPU 信息,具体内容如表

内 容 说 明
Cpu(s): 0.1 %us 用户模式占用的 CPU 百分比 个人用户开启的进程占用的 cpu 率
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.7%id 空闲 CPU 占用的 CPU 百分比
0.1%wa 等待输入/输出的进程占用的 CPU 百分比 1
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.1%si 软中断请求服务占用的 CPU 百分比
0.0%st st(steal time)意为虚拟程序占用 cpu 时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息,具体内容如表buff cache

内 容 说 明
Mem: 625344k total 物理内存的总量,单位为KB
571504k used 己经使用的物理内存数量
53840k&ee 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存
65800k buffers 作为缓冲的内存数量

第五行为交换分区(swap)信息,如表

内 容 说 明
Swap: 524280k total 交换分区(虚拟内存)的总大小
Ok used 已经使用的交换分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交换分区的大小

通过 top 命令的第一部分就可以判断服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于 1,则证明系统压力较大。如果 CPU 的使用率过高或空闲率过低,则证明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。

这时,我们就应该判断是什么进程占用了系统资源。如果是不必要的进程,就应该结束这些进程;如果是必需进程,那么我们该増加服务器资源(比如増加虚拟机内存),或者建立集群服务器。

缓冲(buffer)和缓存(cache)的区别:

  • 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
  • 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

第二部分

top 命令的第二部分输出,主要是系统进程信息,各个字段的含义如下:

  • PID:进程的 ID。
  • USER:该进程所属的用户。
  • PR:优先级,数值越小优先级越高。
  • NI:优先级,数值越小、优先级越高。
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。
  • S:进程状态。
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程的命令名。

top选项:
-d # 指定刷新时间间隔,默认为3秒
-b 全部显示所有进程
-n # 刷新多少次后退出
例:

pgrep命令

查看指定的进程

  • -U 指定用户
  • -l:显示进程名
  • -a:显示完整格式的进程名
  • -P pid:显示指定进程的字进程
    例:


标签:优先级,top,命令,计划,内存,linux,进程,CPU
From: https://www.cnblogs.com/leikj/p/18144140

相关文章

  • Alibaba Cloud Linux 3.2104 LTS 安装php-5.6.12
    1把php安装包上传到服务器2安装php所需要的扩展yum-yinstalllibxml2libxml2-developensslopenssl-develbzip2bzip2-develcurlcurl-devellibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibmcryptlibmcrypt-develgdgd-devel3安装......
  • 进程控制
    目录1.fork函数1.1如何理解fork函数有两个返回值问题1.2如何理解fork给父进程返回自己的pid,自己返回01.3如何理解同一个id值,有两个不同的值2.进程终止2.1进程退出码2.2进程退出2.2.1进程常见退出办法2.2.3exit()函数和_exit()函数3.进程等待3.1进程等待的方法3.1.1wait()函数3.2w......
  • net8 linux docker sqlserver报错error: 31 - Encryption(ssl/tls) handshake failed)
    asp.netcore升级到8.0后遇到数据库不能连接问题?_已解决_博问_博客园(cnblogs.com) 中文提示:连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Aconnectionwassuccessfullyestablishedwiththeserver,butthenanerroroccurredduringthep......
  • Alibaba Cloud Linux 3.2104 LTS 安装mysql5.7.39
    1上传mysql安装包到linux服务器tar-zxvfmysql-5.7.39-linux-glibc2.12-x86_64.tar.gzmvmysql-5.7.39-linux-glibc2.12-x86_64mysql5.72创建mysql用户groupaddmysqluseradd-gmysql-s/sbin/nologinmysqlchown-Rmysql:mysqlmysql5.7 ......
  • ubuntu解决/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found的问题
    运行进程时报错./main:/lib/x86_64-linux-gnu/libc.so.6:version`GLIBC_2.38'notfound(requiredby./main)./main:/lib/x86_64-linux-gnu/libc.so.6:version`GLIBC_2.33'notfound(requiredby./main)./main:/lib/x86_64-linux-gnu/libc.so.6:version`G......
  • 程序与进程
    程序与进程什么是程序一组计算机能识别和执行的指令,用于指导计算机执行特定任务或解决特定问题。程序通常由代码、数据和资源文件组成,涉及语法、算法和数据结构。为二进制文件什么是进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。作为系统进行资源分配和调度......
  • # Linux From Scratch 12.1 安装笔记
    目录目录安装指南相关链接准备工作准备宿主机准备硬盘下载软件添加LFS用户配置环境开始构建构建过程概述构建LFS交叉工具链和临时工具进入Chroot并构建其他工具构建LFS系统安装软件系统配置安装内核安装引导安装指南版本12.1-systemd-中文翻译......
  • GoldenGate抽取进程extract延迟处理
    前言一套GoldenGate环境,已经运行了很多年,一直比较正常,Extract抽取进程基本上没有出现延迟的情况,但这次突然出现抽取延迟,其中一个抽取进程延迟高达50个小时左右。 处理过程1.当前有两个抽取进程,分别为:E_HXZG、E_SBFSC,目前出现延迟的是第1个抽取进程。检查该进程的当前状态......
  • 在Linux中,如何使用MTR进行网络诊断和路由跟踪?
    mtr(MyTraceroute)是一个结合了traceroute和ping功能的网络诊断工具。它可以显示到目的主机的数据包传输路径,并持续监测每个路径点的丢包率和延迟。以下是使用mtr进行网络诊断和路由跟踪的详细步骤:1.安装mtr首先,你需要确保你的Linux系统上已经安装了mtr。你可以使用包管理器来......
  • 在Linux中,如何使用OpenVAS和Nessus进行漏洞扫描和管理?
    OpenVAS和Nessus都是流行的漏洞扫描和管理工具,它们可以帮助系统管理员和安全研究人员识别和修复潜在的安全漏洞。1.使用OpenVAS进行漏洞扫描和管理安装OpenVAS:在KaliLinux上,可以使用命令apt-getinstallopenvas来安装OpenVAS。安装过程中,系统会提示下载并安装一些依赖包......