转自:http://hi.baidu.com/paobeilvcha/blog/item/9b886d6d7d82b7fd43169482.html
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
操作实例:
在命令行中输入 “top”
即可启动 top
top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。
第一部分 -- 最上部的 系统信息栏 :
第一行(top):
“00:11:04”为系统当前时刻;
“3:35”为系统启动后到现在的运作时间;
“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“59 total”为当前系统进程总数;
“1 running”为当前运行中的进程数;
“58 sleeping”为当前处于等待状态中的进程数;
“0 stoped”为被停止的系统进程数;
“0 zombie”为被复原的进程数;
第三行(Cpus):
分别表示了 CPU 当前的使用率;
第四行(Mem):
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
第二部分 -- 中间部分的内部命令提示栏:
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s
- 改变画面更新频率
l - 关闭或开启第一部分第一行 top 信息的表示
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
h - 显示帮助
n - 设置在进程列表所显示进程的数量
q - 退出 top
s -
改变画面更新周期
第三部分 -- 最下部分的进程列表栏:
以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式
在Linux下查看内存我们一般用free命令:
[root@scs-2 tmp]# free
total used free shared buffers cached
Mem: 3266180 3250004 16176 0 110652 2668236
-/+ buffers/cache: 471116 2795064
Swap: 2048276 80160 1968116
下面是对这些数值的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
如上例:
2795064=16176+110652+2668236
接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。
如何看额定值:
cat /proc/meminfo
[root@scs-2 tmp]# cat /proc/meminfo
MemTotal: 3266180 kB
MemFree: 17456 kB
Buffers: 111328 kB
Cached: 2664024 kB
SwapCached: 0 kB
Active: 467236 kB
Inactive: 2644928 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 3266180 kB
LowFree: 17456 kB
SwapTotal: 2048276 kB
SwapFree: 1968116 kB
Dirty: 8 kB
Writeback: 0 kB
Mapped: 345360 kB
Slab: 112344 kB
Committed_AS: 535292 kB
PageTables: 2340 kB
VmallocTotal: 536870911 kB
VmallocUsed: 272696 kB
VmallocChunk: 536598175 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 2048 kB
用free -m查看的结果:
[root@scs-2 tmp]# free -m
total used free shared buffers cached
Mem: 3189 3173 16 0 107 2605
-/+ buffers/cache: 460 2729
Swap: 2000 78 1921
查看/proc/kcore文件的大小(内存镜像):
[root@scs-2 tmp]# ll -h /proc/kcore
-r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore
备注:
占用内存的测量
测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。
/proc/meminfo 机器的内存使用信息
/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm 进程所占用的内存
[root@localhost ~]# cat /proc/self/statm
654 57 44 0 0 334 0
输出解释
CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:
参数 解释 /proc//status
Size (pages) 任务虚拟地址空间的大小 VmSize/4
Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4
Shared(pages) 共享页数 0
Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4
Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4
Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4
dt(pages) 04
查看机器可用内存
/proc/28248/>free
total used free shared buffers cached
Mem: 1023788 926400 97388 0 134668 503688
-/+ buffers/cache: 288044 735744
Swap: 1959920 89608 1870312
我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used
相关推荐
本项目专注于监控Linux系统的四个关键指标:流量、CPU利用率、磁盘利用率和内存利用率。下面将详细介绍如何实现这一目标,并提供相关知识点。 首先,我们要理解这四个指标的重要性: 1. **Linux流量**:网络流量...
"基于CPU和内存利用率的负载均衡算法的研究" 基于CPU和内存利用率的负载均衡算法的研究.pdf文章旨在解决当前采用的最少连接数算法无法解决因不同业务请求消耗资源差异大而导致的平均响应时间长的问题。作者提出了CM...
本文将详细介绍如何在Linux环境下使用`top`命令查看CPU使用率,以及如何利用`free`命令监控内存状态。 #### 使用`top`命令查看CPU使用情况 `top`命令是一个实时的系统监视工具,它能够提供关于系统任务执行情况的...
本文将详细探讨如何通过SNMP协议读取远程计算机的实时性能参数,特别是CPU利用率和内存使用情况。 #### SNMP基础知识 SNMP的核心组件包括网络管理系统(NMS,Network Management System)、代理(Agent)和管理...
"Linux系统中获得CPU利用率和内存使用情况" 知识点: 1.Linux系统中的/proc目录:Linux系统中的/proc目录是一个虚拟文件系统,提供了对系统硬件和软件的信息。在这个目录中,我们可以找到关于系统的各种信息,如...
描述中提到的“用来占用CPU内存使用率的脚本”可能包含了若干用于模拟高负载场景的脚本,这些脚本对于测试系统的极限性能、调试内存泄漏问题或者验证系统在压力下的响应能力非常有用。下面我们将深入探讨相关的Linux...
linux c程序获取cpu使用率及内存使用情况
在Linux操作系统中,CPU利用率和使用情况是系统监控的关键指标,它们可以帮助我们了解系统的性能瓶颈,优化资源分配,以及及时发现潜在的问题。本教程将详细讲解如何获取和分析Linux下的CPU使用情况。 首先,`mytop...
在Ubuntu Linux系统中,了解和监控本机的CPU与内存信息是进行系统管理和优化的关键步骤。本文将深入探讨如何利用shell命令行工具来获取这些重要信息,为用户提供一个全面的视角,帮助他们更好地理解自己的系统资源。...
1、创建存放脚本文件目录 mkdir -p /etc/press chmod 777 /etc/press 2、启动定时任务进程 echo 'systemctl start crond.service...部署成功后查看当前使用率:top -n 1|grep Cpu|awk '{print "当前CPU使用率:"$2"%"}'
QT/C++实时获取CPU和内存使用率是软件开发中一项重要的功能,特别是在系统监控或性能分析的应用场景下。QT框架提供了跨平台的能力,使得我们可以在Windows、macOS、Linux等不同操作系统上编写代码,而C++作为其底层...
数据可能包含每个时间间隔的CPU利用率和内存占用量,我们可以将其存储为时间序列数据。 然后,在QCustomPlot中创建一个新的绘图区,并添加相应的坐标轴。对于CPU和内存使用率图,我们通常会有一个时间轴(x轴)和两...
以上代码片段展示了如何使用Go语言读取Linux系统的CPU占用率、CPU温度、内存占用率和磁盘占用率。在实际应用中,这些函数可以被整合到一个统一的系统监控服务中,定期获取和记录这些数据,以便进行性能分析和故障...
`bc`是一个交互式的或批处理的算术语言,用于进行浮点数计算,这对于处理可能包含小数的资源利用率数据很有用。 以下是一个基本的Shell脚本框架,展示了如何使用SNMP获取这些信息: ```bash #!/bin/bash # 定义...
在"CPU内存图形显示"这个主题中,我们通常会使用系统监控工具,如Windows的任务管理器、Linux的top或htop命令,以及各种第三方监控软件。这些工具提供了图形化的界面,直观地展示CPU和内存的使用情况。通过这些图形...
在IT领域,特别是对于系统监控和资源管理而言,掌握如何使用Java获取Linux系统的CPU和内存实时信息是一项重要的技能。这不仅有助于系统管理员实时监控服务器的健康状况,还为开发人员提供了优化应用程序性能的关键...
首先,理解CPU和内存利用率的基本概念是必要的。CPU利用率是指在特定时间范围内,CPU被占用的百分比。当利用率高时,表示系统正在执行大量计算任务,而低利用率则可能意味着资源未得到充分利用。内存利用率则是指...
在Linux操作系统中,理解并监控CPU利用率是管理和优化系统性能的关键步骤。CPU利用率是指CPU在一段时间内被占用的比例,它反映了系统执行任务的能力。当CPU利用率过高,可能会导致系统响应变慢,影响用户体验。本文...
1:封装成一个类,直接调用即可。...3:linux下CPU占用率的计算非常准确,支持多核。 4:硬盘容量计算极速。进度条显示占用比例。 5:多彩数码管实时显示当前时间。 6:自定义颜色下拉框,选择即可看到效果。