当前位置: 首页 > news >正文

手机网站欢迎页面设计石家庄最新消息

手机网站欢迎页面设计,石家庄最新消息,自己做网站卖二手车,网站开发移动端文章目录 前言freeMem 部分的解释Swap 部分的解释 vmstatProcs (进程)Memory (内存)Swap (交换)IO (磁盘 I/O)System (系统)CPU (处理器) pidstat标题行解释数据列解释 sar字段含义解释示例分析 总结 前言 菜就多练,昨天看了一篇有关剖析 RocksDB 内存超限问题的文…

文章目录

  • 前言
  • free
    • Mem 部分的解释
    • Swap 部分的解释
  • vmstat
    • Procs (进程)
    • Memory (内存)
    • Swap (交换)
    • IO (磁盘 I/O)
    • System (系统)
    • CPU (处理器)
  • pidstat
    • 标题行解释
    • 数据列解释
  • sar
    • 字段含义解释
    • 示例分析
  • 总结

前言

菜就多练,昨天看了一篇有关剖析 RocksDB 内存超限问题的文章,里面用了多种内存分析工具,看到那些貌似熟悉的名字,却一时也想不起怎么来用,当然像 free 和 top 这种命令还是比较熟的,但是像 vmstat 和 pidstat 这些就比较模糊了,翻了翻之前的总结也简单的描述过使用方法,但是对于这种已经忘记的实时也是不可回避的,菜就多练,今天就再练一练。

俗话说熟能生巧,有时候见的多了自然而然的就能发现规律了,比如 stat 这个词可是Linux命令中常见的面孔,它是单词 statistics 的缩写,也就统计的意思,所以就会出现类似 iostatvmstatnetstatpidstatmpstat 等命令,相似的还有各种 ps 和 各种 top 相关的命令,今天此文因内存而起,我们就先看看内存相关的 freevmstatpidstatsar 这几个命令。

free

free 命令是我最常用的内存命令,通常我使用时会加上 -h 参数更易读一些,命令虽简单,但是想完全理解却不易,并且不同的系统对于各列的参数实现还不完全相同,而我作为实用派,不愿想个学究一样去深挖各个参数的含义,还是以实用主义为主,明白各参数的基本含义即可

$ free -htotal        used        free      shared  buff/cache   available
Mem:          7.3Gi       5.8Gi       377Mi        40Mi       1.1Gi       1.2Gi
Swap:         9.0Gi       5.2Gi       3.7Gi

free -h 的输出显示了系统内存和交换空间的使用情况,在我看来total≈used+available,buff/cache的空间可能一部分属于used,又有一部分属于available,free应该总是小于available的,大体就是这些规则,精确的公式我是给不出的,对于常用的判断够用了:


Mem 部分的解释

  • total: 总的物理内存容量(7.3Gi)。
  • used: 已被使用的物理内存,包括应用程序和系统缓存(5.8Gi)。
  • free: 尚未分配的空闲物理内存(377Mi)。
  • shared: 共享内存,主要用于 tmpfs 和其他共享内存用途(40Mi)。
  • buff/cache: 用于缓冲区(buffer)和缓存(cache)的内存(1.1Gi)。
    • 缓冲区用于临时存储写入磁盘的数据。
    • 缓存用于存储从磁盘读取的数据,以便更快地访问。
  • available: 可供应用程序使用的内存(1.2Gi)。
    • 这个值是对系统内存的综合估算,它考虑了缓存中可以释放的部分。

Swap 部分的解释

  • total: 系统的交换空间总大小(9.0Gi)。
  • used: 已被使用的交换空间(5.2Gi)。
  • free: 尚未使用的交换空间(3.7Gi)。

vmstat

vmstat 是 Linux 和类 Unix 系统上的一个命令,用于实时监控系统性能,包括 CPU、内存、分页、磁盘 I/O 和上下文切换等信息。它非常适合用于分析系统瓶颈或性能问题。

$ vmstat 2 5 -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st0  0   5351    526    152   1062    0    0    11    21    2    2  3  1 96  0  00  0   5351    526    152   1062    0    0     0     0 14509 35013  2  1 97  0  00  0   5351    525    152   1063    0    0     0    86 14671 35064  2  1 97  0  00  0   5351    525    152   1062    0    0     0    68 14692 35164  2  1 97  0  02  0   5351    525    152   1063    0    0     0   122 14504 35142  2  1 96  0  0

这个命令表示每2秒刷新一次,共刷新显示5次,单位用M,接下来以第一行数字为例,解释数据含义:


Procs (进程)

  • r: 正在运行队列中等待 CPU 的进程数。0 表示当前没有需要 CPU 的进程在排队。
  • b: 处于等待 I/O 的阻塞进程数。0 表示没有进程因等待 I/O 阻塞。

Memory (内存)

  • swpd: 使用的交换空间大小(单位:MB)。5351 表示已使用 5351 MB 的交换空间。
  • free: 空闲内存大小(单位:MB)。526 表示当前系统有 526 MB 的空闲内存。
  • buff: 用于缓冲区的内存大小(单位:MB)。152 表示 152 MB 的内存被用作缓冲区。
  • cache: 用于缓存的内存大小(单位:MB)。1062 表示 1062 MB 的内存被用作文件缓存。

Swap (交换)

  • si: 从磁盘交换到内存的数据速率(单位:MB/s)。0 表示当前没有从交换分区加载到内存的数据。
  • so: 从内存交换到磁盘的数据速率(单位:MB/s)。0 表示当前没有将内存数据写入交换分区。

IO (磁盘 I/O)

  • bi: 每秒从块设备(磁盘等)读取的数据量(单位:块)。11 表示每秒读取了 11 块数据。
  • bo: 每秒写入块设备的数据量(单位:块)。21 表示每秒写入了 21 块数据。

System (系统)

  • in: 每秒中断数(硬件和软件中断)。 2 表示每秒发生了 2 次中断。
  • cs: 每秒上下文切换次数。 2 表示每秒进行了 2 次上下文切换。

CPU (处理器)

  • us: 用户态进程占用 CPU 时间的百分比。 3 表示 CPU 时间的 3% 用于运行用户进程。
  • sy: 内核态进程占用 CPU 时间的百分比。 1 表示 CPU 时间的 1% 用于运行内核进程。
  • id: CPU 空闲时间的百分比。 96 表示 CPU 时间的 96% 是空闲的。
  • wa: CPU 等待 I/O 完成的时间百分比。 0 表示 CPU 没有时间在等待 I/O 操作完成。
  • st: 被虚拟机(如 KVM)偷走的时间百分比。 0 表示没有 CPU 时间被虚拟机消耗。

这个命令可以用来监控系统性能瓶颈:

  • 如果 r 的值过高,说明 CPU 短缺。
  • 如果 si 和 so 的值大,说明系统内存不足,频繁使用交换空间。
  • 如果 wa 的值高,说明 I/O 操作是瓶颈。

pidstat

pidstat 是 Linux 系统中 sysstat 工具集的一部分,用于监控和报告单个进程的性能指标。它可以提供有关 CPU、内存、I/O、线程等的详细信息,帮助分析系统性能瓶颈。

$ pidstat -p 242285 -r 2 5
Linux 5.4.0-200-generic (ThinkPad-X390)     2024年12月14日  _x86_64_        (8 CPU)15时10分47秒   UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
15时10分49秒  1000    242285      0.00      0.00  302184   79776   1.05  Game10010601
15时10分51秒  1000    242285      0.00      0.00  302184   79776   1.05  Game10010601
15时10分53秒  1000    242285      0.00      0.00  302184   79776   1.05  Game10010601
15时10分55秒  1000    242285      0.00      0.00  302184   79776   1.05  Game10010601
15时10分57秒  1000    242285      0.00      0.00  302184   79776   1.05  Game10010601
Average:     1000    242285      0.00      0.00  302184   79776   1.05  Game10010601

这个命令监控242285这个进程内存情况,每2秒刷新一次,共刷新显示5次,单位用M,接下来以第一行数字为例,解释数据含义:

标题行解释

  • Linux 5.4.0-200-generic:运行的内核版本。
  • ThinkPad-X390:主机名。
  • 2024年12月14日:当前日期。
  • _x86_64_:处理器架构。
  • (8 CPU):系统中有 8 个 CPU 核心。

数据列解释

  • 时间:采样的时间戳。
  • UID:用户 ID,显示运行进程的用户(1000 表示非 root 用户)。
  • PID:进程 ID,这里是 242285
  • minflt/s:每秒次要缺页错误数(无需从磁盘加载内存页)。
  • majflt/s:每秒主要缺页错误数(需要从磁盘加载内存页)。
  • VSZ:虚拟内存大小(以 KB 为单位)。这里是 302184 KB,即约 302 MB
  • RSS:驻留内存大小(以 KB 为单位),即实际使用的物理内存。这里是 79776 KB,即约 78 MB
  • %MEM:进程使用的物理内存百分比。这里是 1.05%
  • Command:进程的名称或命令,这里是 Game10010601

这些行展示了每次采样的统计数据。这里看到该进程的 minflt/smajflt/s 均为 0.00,表示没有发生缺页错误,内存访问性能良好。虚拟内存大小 (VSZ) 和驻留内存大小 (RSS) 都是恒定的,说明该进程的内存使用稳定。

sar

sar(System Activity Report)命令是一个用于收集、报告和保存系统活动信息的工具,通常在 Linux 和 Unix 系统中使用。它是 sysstat 软件包的一部分,提供了对系统性能的详细监控和分析。

$ sar -r 2 5
Linux 5.4.0-200-generic (ThinkPad-X390)     2024年12月14日  _x86_64_        (8 CPU)15时26分06秒 kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
15时26分08秒    455724   1363580   5547036     72.86    160416    859272  23892108    140.53   4759984   1552228       428
15时26分10秒    455684   1363544   5547052     72.86    160416    859280  23886860    140.50   4760760   1552232       436
15时26分12秒    455456   1363320   5547276     72.87    160416    859284  23890572    140.53   4760420   1552236       476
15时26分14秒    455456   1363324   5547272     72.87    160416    859288  23890572    140.53   4760476   1552240       480
15时26分16秒    454700   1362572   5548028     72.88    160420    859284  23873744    140.43   4762228   1552244       480
Average:       455404   1363268   5547333     72.87    160417    859282  23886771    140.50   4760774   1552236       460

这个命令表示每2秒刷新一次内存信息,共刷新显示5次,接下来以第一行数字为例,解释数据含义:

字段含义解释

  • 时间戳(如 15时26分08秒):表示采集数据的时间。
  • kbmemfree:可用内存(以 KB 为单位)。表示系统中尚未被使用的内存量。
  • kbavail:可用内存(即使在缓存和缓冲区中也可用的内存,以 KB 为单位)。这个值通常比 kbmemfree 更准确,因为它考虑了系统可以回收的缓存和缓冲区内存。
  • kbmemused:已使用内存(以 KB 为单位)。计算公式为:总内存 - 可用内存
  • %memused:已使用内存的百分比。计算公式为:(kbmemused / 总内存) * 100
  • kbbuffers:用于文件系统缓存的内存(以 KB 为单位)。这是 Linux 内核用于存储未写入硬盘的数据的缓存。
  • kbcached:用于缓存的内存(以 KB 为单位)。这些是存储在内存中的文件数据,Linux 会尽量使用这部分内存来加快读取速度。
  • kbcommit:提交内存(以 KB 为单位)。表示可以分配给进程的内存总量,达到该值时会导致内存不足。
  • %commit:提交内存的百分比。表示已提交内存与可用内存的比例。
  • kbactive:活动内存(以 KB 为单位)。表示最近被访问的内存页。
  • kbinact:非活动内存(以 KB 为单位)。表示不再被访问的内存页。
  • kbdirty:脏页内存(以 KB 为单位)。表示已被修改但尚未写入硬盘的内存。

示例分析

  • kbmemfree 在 455724 KB 左右,表示系统还有相当数量的可用内存,说实话也不算多了,才400多M。
  • kbmemused 的值为 5547036 KB,表示大约 5.5 GB 的内存已被使用,且 %memused 为 72.86%,表明内存使用率较高。
  • kbbufferskbcached 的值相对较小,这可能表示系统正在利用可用内存缓存数据,从而优化性能。
  • kbcommit%commit 的值显示系统的内存承诺也在一个相对健康的范围。

总结

  • free -h 最常用的内存查看工具,可以方便快捷知晓内存总体情况,查看总量与可用内存值
  • vmstat 2 5 -S M 可用于监控内存,分析系统瓶颈或性能问题,r 的值过高说明 CPU 短缺。si 和 so 的值大,说明系统内存不足,频繁使用交换空间
  • pidstat -p 242285 -r 2 5 可提供单个进程的内存使用信息,分析缺页情况
  • sar -r 2 5 可分析内存总体情况,查看活动内存、非活动内存、脏页内存等信息
  • 因统计口径的不同,可能会遇到两个命令查出来的值不同,这些不必强求,熟悉各个命令的特点,遇到问题多方比较就可以了

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

我熬的不是夜,而是短暂的自由。因为我知道,一旦睡着了,再次醒来时我便不再属于我自已~

http://www.jinmujx.cn/news/111366.html

相关文章:

  • 湖南网站建设公司百度有人工客服吗
  • jsp网站怎么做的好看怎么制作自己公司网站
  • 国网北京电力建设研究院网站西安关键词推广
  • info后缀网站如何让自己的网站排名靠前
  • 可以做业务推广的网站有哪些安卓排名优化
  • 品牌创意型网站建设网络营销管理系统
  • 海口 网站 制作b2b推广网站
  • 淮北市濉溪县建设委员网站优化师是一份怎样的工作
  • 柳州最好的网站推广公司发布外链的步骤
  • 如何创建一个站点百度账号人工客服电话
  • 付款网站源码本周国内新闻
  • 做电子杂志用什么网站信息发布推广方法
  • 摄影网站设计方案磁力搜索引擎2023
  • 追设计网站seo搜索排名优化是什么意思
  • 公司做网站有什么用百度游戏排行榜风云榜
  • 企业网站标签页是什么百度权重
  • 做网站的那些高清图上哪里找网站维护公司
  • 海曙区做网站守游网络推广平台登陆
  • 网站文章不收录深圳网络营销公司
  • 怎么自己做网站备案网店推广渠道有哪些
  • 学校网站怎么查询录取百度搜索推广收费标准
  • 刷赞网站怎么做广州网站推广软件
  • 长岭建设局网站seo综合查询工具
  • 领卷网站怎么做的做灰色词seo靠谱
  • 做的网站百度找不到了百度竞价排名官网
  • 东莞seo排名优化seo排名谁教的好
  • 网站建设的公司服务网站搭建平台
  • 网站域名备案服务号网络销售这个工作到底怎么样
  • 动漫制作专业职业定位vue seo 优化方案
  • 网站建设策目标竞价外包托管费用