使用 vmstat, mpstat 和 sar 查看系统运行参数
vmstat
字段含义
Procs
r: The number of processes waiting for run time. 等待执行的进程, 数字越大意味着CPU越忙, 果该数字经常大于逻辑cpu个数则CPU资源存在瓶颈
b: The number of processes in uninterruptible sleep. 处在非中断睡眠状态的进程数, 即进程被阻塞, 主要是指被资源阻塞的进程对列数(比如IO资源, 页面调度等), 当这个值较大时需要根据应用程序来进行分析,比如数据库产品,中间件应用
Memory
swpd: the amount of virtual memory used. 已使用的虚拟内存大小. 如果虚拟内存使用较多, 可能系统的物理内存不足, 需要减少物理内存使用或增大物理内存. swapd不为0并不意味物理内存不足, 如果swapd长期稳定, si和so为0, 就是正常的
free: the amount of idle memory. 空闲的内存大小
buff: the amount of memory used as buffers. buffer(缓存, 主要用于块设备缓存)的大小, 单位KB
cache: the amount of memory used as cache. cache(缓存, 主要用于缓存文件)的大小, 单位KB
inact: the amount of inactive memory. (-a option) 非活跃的内存大小
active: the amount of active memory. (-a option) 活跃的内存大小
Swap
si: Amount of memory swapped in from disk (/s). 从swap交换到内存的数量, 单位KB/s
so: Amount of memory swapped to disk (/s). 从内存交换到swap的数量, 单位KB/s
关于free和si, so的说明: 内存充足的时候这2个值都是0, 如果这2个值一直大于0, 会影响系统性能(因为有磁盘IO和CPU消耗). 内存是否充足要结合free和si, so一起看, 如果free小但是si和so大多时候是0, 内存就是够用的.
IO
bi: Blocks received from a block device (blocks/s). 每秒从块设备接收到的块数, 单位: 块/秒
bo: Blocks sent to a block device (blocks/s). 每秒写到块设备的块数, 单位: 块/秒
System
in: The number of interrupts per second, including the clock. 每秒的中断数, 包括时钟中断
cs: The number of context switches per second. 每秒的环境上下文切换次数. 比如我们调用系统函数, 就要进行上下文切换, 而过多的上下文切换会浪费较多的cpu资源, 这个数值应该越小越好. 上下文切换数目高于中断数目,说明kernel中相当数量的时间都开销在上下文切换线程. 大量的上下文切换将导致CPU 利用率分类不均衡. 导致等待io请求的(wa)百分比非常高, 以及user time(us)百分比非常低
CPU
These are percentages of total CPU time. 以下的数值都是CPU总时间的百分比
us: Time spent running non-kernel code. (user time, including nice time): 用户CPU时间(非内核进程占用时间). us的值高说明用户进程消耗的CPU时间多
sy: Time spent running kernel code. (system time) 系统使用的CPU时间. sy的值高说明系统内核消耗的CPU资源多, 这种情况是有问题的
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. 空闲的CPU时间, 在Linux 2.5.41之前这部分包含IO等待时间
wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle. 等待IO的CPU时间. 在Linux 2.5.41之前这个值为0. 这个指标意味着CPU在等待硬盘读写操作的时间. wait越大则机器io性能就越差, 说明IO等待比较严重, 这可能由于磁盘大量作随机访问造成, 也有可能磁盘出现瓶颈
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
参数说明
vmstat [delay] [count]
-a
Displays active and inactive memory.
-f
Displays the number of forks since boot. This includes the fork, vfork, and clone system calls, and is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on thread usage. This display does not repeat.
-m
Displays slab information.
-n
Specifies that the header will appear once, not periodically.
-s
Displays a table of various event counters and memory statistics. This display does not repeat.
delay
The delay between reports in seconds. If no delay is specified, only one report is printed, with the average values since the machine was last booted.
count
The number of times to report on the system. If no count is specified and delay is defined, vmstat reports indefinitely.
-d
Displays disk statistics. 每个磁盘设备为一行, 显示磁盘相关的读写统计
-p
Takes a partition name as a value, and reports detailed statistics for that partition.
-S
Defines the units output by the report. Valid values are k (1000 bytes), K (1024 bytes), m (1,000,000 bytes), or M (1,048,576 bytes).
-D
Report summary statistics about disk activity.
sar, sysstat
参数说明
-b Report I/O and transfer rate statistics
-B Report paging statistics
-d Report activity for each block device (kernels 2.4 and newer only)
-H Report hugepages utilization statistics.
--human Print sizes in human readable format (e.g. 1k, 1.23M, etc.)
-I { int_list | SUM | ALL } Report statistics for interrupts. int_list is a list of comma-separated values or range of values (e.g., 0-16,35,400-). The SUM keyword indi‐cates that the total number of interrupts received per second is to be displayed. The ALL keyword indicates that statistics from all interrupts, including potential APIC interrupt sources, are to be reported
-m Report power management statistics
-n { keyword [,...] | ALL } Report network statistics. Possible keywords are DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 and UDP6.
-P { cpu [,...] | ALL } Report per-processor statistics for the specified processor or processors.
-p retty-print device names. Use this option in conjunction with option -d. By default names are printed as dev m-n where m and n are the major and minor numbers for the device.
-q Report queue length and load averages.
-r [ ALL ] Report memory utilization statistics. The ALL keyword indicates that all the memory fields should be displayed.内存和交换分区使用率
-S Report swap space utilization statistics.
-u [ ALL ] Report CPU utilization. The ALL keyword indicates that all the CPU fields should be displayed.
-v Report status of inode, file and other kernel tables
-W Report swapping statistics.
-w Report task creation and system switching activity.
-y Report TTY devices activity.
.
例子
# Report CPU utilization for each 2 seconds. 5 lines are displayed.
sar -u 2 5 #
sar -b 1 5 #
sar -q 1 3 # Report statistics on IRQ 14 for each 2 seconds. 10 lines are displayed. Data are stored in a file called int14.file.
sar -I 14 -o int14.file 2 10 # Display memory and network statistics saved in daily data file 'sa16'.
sar -r -n DEV -f /var/log/sysstat/sa16 # Display all the statistics saved in current daily data file.
sar -A
.
其他的单项查看工具
mpstat 是专用于查看CPU状态的工具
# Display five reports of global statistics among all processors at two second intervals.
mpstat 2 5 # Display five reports of statistics for all processors at two second intervals.
mpstat -P ALL 2 5
iostat 是用于查看CPU和设备IO状态的工具, 主要用于后者
# Display a single history since boot report for all CPU and Devices.
iostat
# Display the CPU utilization report at two second intervals.
iostat -c 2
# Display a continuous device report at two second intervals.
iostat -d 2
# Display six reports at two second intervals for all devices.
iostat -d 2 6
# Display six reports of extended statistics at two second intervals for devices sda and sdb.
iostat -x sda sdb 2 6
# Display six reports at two second intervals for device sda and all its partitions (sda1, etc.)
iostat -p sda 2 6
netstat 用于显示网络连接, 路由表, 网口状态等信息的工具
-a, --all 显示所有连线中的Socket.
-n, -–numeric 直接使用IP地址, 而不通过域名服务器
-p, -–programs 显示正在使用Socket的程序识别码和程序名称
-t, -–tcp 显示TCP传输协议的连线状况 # 显示正打开侦听端口的程序
netstat -lnp
# 显示和本机端口已经建立的连接
netstat -antp
ps 用于查看系统进程的工具
#
ps aux #
ps -eLf
使用 vmstat, mpstat 和 sar 查看系统运行参数的更多相关文章
- NVIDIA TX2--3--NVIDIA Jetson TX2 查看系统版本参数状态及重要指令
NVIDIA Jetson TX2 查看系统参数状态. 当前博主的TX2更新的版本为:Jetpack 3.3, cuda 9.0.252, cudnn7.0, opencv3.3.1, TensorR ...
- vmstat的使用(查看系统各种负载)
$ vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd f ...
- Linux查看系统运行情况
http://elinux.org/Runtime_Memory_Measurement
- 电脑开机后win系统运行异常慢,鼠标移动卡
今天公司里面一个小伙伴的电脑开机后还没有打开应用程序系统就运行非常慢,打开文件夹反应慢,鼠标是一点一点的在移动.体验感极差.作为运维的我立即上去解决问题: 首先是查看一下电脑确实运行比较慢,然后就查看 ...
- Linux查看系统开机和关机时间
1.who 命令查看 who -b 查看最后一次系统启动的时间 who -r 查看当前系统运行时间 [root@test ~]# who -b system ...
- 使用w uptime vmstat top sar nload 等命令查看系统负载
1. w 和uptime,查看cpu的使用率: 2.vmstat 命令,查看更细的物理设备使用状况: 3.top 命令: top -c 可具体查看命令及路径: top -bn1 静太显示一条命令, ...
- 使用w查看系统负载 vmstat命令 top命令 sar命令 nload命令
w/uptime 查看系统负载 w查看系统负载,uptime跟w一样. [root@centos7 ~]# w 22:34:10 up 6 days, 23:10, 4 users, load a ...
- Linux centos7 日常运维——使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令
一.使用w查看系统负载 w .uptime查看系统负载,0.00表示1分钟之内负载为0 cat /proc/cpuinfo查看cpu核数 二.vmstat命令,查看进程.cpu.memory.交换. ...
- 【系统监控】性能监测 vmstat,mpstat,iostat
一.系统整体性能监测工具:uptime [root@WebServer ~]# uptime (同w命令输出的第一行信息) 09:40:52 up 5 days, 57 min, 1 user, lo ...
随机推荐
- 【Java】 剑指offer(67) 把字符串转换成整数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...
- HDU 1503【LCS】(字符串合并输出)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1503 题目大意: 给两个字符串,组成一个长度尽可能小的字符串,它包含上述两个字符串,且原字符串中的字符 ...
- python模块中sys.argv[]使用
一.sys 模块 sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口. 官方的文档参考:https://docs.python.org/ ...
- Redis实现的分布式锁和分布式限流
随着现在分布式越来越普遍,分布式锁也十分常用,我的上一篇文章解释了使用zookeeper实现分布式锁(传送门),本次咱们说一下如何用Redis实现分布式锁和分布限流. Redis有个事务锁,就是如下的 ...
- 线程安全地获取插入mysql的条目的id
在往mysql中插入条目时有时会希望能得到该插入条目的id,一种方式是再执行一个select语句条件为max(id)来获取,但这种形式在并发环境里并不是线程安全的,因为在你完成插入到再执行一个sele ...
- android monitor 汉化 ddms
作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com android.jar\com\androi ...
- idea 开发插件。
作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com idea 开发插件. Intellij ID ...
- 洛谷.4008.[NOI2003]editor文本编辑器(块状链表)
题目链接 st(n)表示sqrt(n) 为使块状链表不会退化,通常将每块的大小S维持在[st(n)/2,2st(n)]中,这样块数C也一定[st(n)/2,2st(n)]中 在此使用另一种方法(方便) ...
- Python3基础系列——枚举类型大揭秘
为什么使用枚举 枚举类型是定义常量的一种最优选择. 常量的广义概念是:不变化的量 对于常量的通俗比喻--如同大山不被轻而易举地改变 地球上的重力加速度到海枯石烂也会改变 人们使用的常量是时间不很漫长的 ...
- Python3绘图之Matplotlib(03)
饼图 = pie 散点图 = scatter plots 极化图 = polar charts 箭头 = Annotations 本节代码示例 import matplotlib.pyplot as ...