Linux性能优化之cpu性能评估工具

简介: 一、vmstat二、iostat三、uptime命令四、top命令

Linux性能优化之cpu性能评估工具

 

内容介绍:

一、vmstat

二、iostat

三、uptime命令

四、top命令

 

 

一、vmstat

(1)主要功能:

统计操作系统的内存信息、进程状态和cpu活动的监视。

(2)特点:

统计内容较为全面;系统默认自带,无须另外下载软件包,使用较为方便。

(3)使用方法(线上服务器演示):

vmstat 3 5:表示3秒钟统计一次系统信息,统计5次后结束。

image.png

 

(4)输出字段含义:

procs(进程)

r值:表示cpu正在处理或者在cpu队列中等待的状态值。该数值的评判标准与cpu核数有关,r是指cpu运行队列的组合,在这个队列的饱和状态下,每个核均在处理一个任务,因此,r选项的最大值应小于或等于cpu总核数。若r值长期大于cpu总核数,则说明此时cpu负载较重。

 

b值:代表正在等待资源的进程数。如等待I/O或内存交换等。该数值同样不可以经常大于cpu总核数,若b值不经常为0或者较大,说明cpu的负载较大。

 

memory(内存)

swpd:表示切换到交换区的内存数量,单位kb,若该值不为0,但siso值为0,则说明内存无影响。

free:剩余物理内存状态值,单位kb

buff:一般对块设备进行读写会用到缓冲,其存放buff/cache的内存量,还包括对于文件属性的存放,如文件大小、文件权限及文件写入的状态值等。

 

cache:表示page-cache,作为文件系统的cache使用,访问频繁的文件都会被cache。该值一般较大,表示cache的文件较多,但并不代表内存不正常(该内容会在下节课具体阐述)。

 

swap

si:表示由磁盘调入内存的文件数量,或者说是调入内存交换区的文件数量。

so:与si意义相反,表示由内存调入磁盘的文件数量,或者说是内存交换区进入物理内存的文件数量。

siso长期为0,则表明系统资源充足。反之,则说明系统物理内存不充足。

 

io

bi:表示从块设备读入数据的总量,即读入磁盘的大小,单位kb

bo:表示从写入块设备数据的总量,即写入磁盘的大小,单位kb

 

system(系统间隔时间内发生的中断数)

表明内核消耗cpu时间的多少

in:在某个时间间隔内,观测到的每秒设备产生的中断数。

cs:在某个时间间隔内,观测到的每秒产生的上下文切换数。

in值与cs值较大,则内核消耗的cpu量较大。

 

cpu

us:表示用户进程消耗cpu的百分比。若该值较大,则说明用户进程消耗的cpu的时间较多。用户进程是指线上运行的软件、业务等,或称用户消耗的cpu资源。

 

sy:与system表示含义相同,表示内核进程消耗cpu的百分比。若该值较大,则说明内核进程消耗的cpu的时间较多。

us长期大于50%,且sy值较小,说明用户进程消耗的cpu较多,但并不说明存在异常,仅说明资源得到了充分利用。

ussy长期大于80%,则说明系统cpu资源不足。

id:表示cpu处于空闲状态时间的百分比。

wa:表示I/O等待值占用cpu时间的百分比。若该值较大,则说明I/O等待值较大。若wa大于20%,则I/O等待值较大,需要考虑是否是由于大量磁盘读写导致的;若wa长期大于50%,则表明磁盘存在问题,可增加更快的磁盘或对其进行优化。

st

 

 

二、iostatI/O statistics 输入/输出统计)

(1)主要功能:

对系统磁盘I/O工作进行监视及对cpu状态进行统计与判断。

(2)特点:

需要另外安装sysstat工具包

3)使用方法:

iostat直接输入:显示操作系统启动到输出前的状态值。

image.png

 

iostat -c 3 5:评估cpu的状态值,表示3秒输出一次,输出5次 。

iostat -d:判断磁盘的I/O状态值。

 

 

(3)输出字段分析:

image.png

avg-cpu:表示cpu平均值的统计。

%user:表示用户进程占用cpu的百分比。

%nice:表示运行正常时间消耗cpu的百分比。

%system:表示内核进程消耗cpu的百分比。

%iowait:表示I/O等待时间消耗cpu的百分比。

%steal:表示在内存紧张环境下,page-in(入页:内存进行切换操作)时,强制对不同页进行的steal操作,主要涉及对内存的判断。

%idel:表示空闲时间占用cpu的百分比。

 

三、uptime命令

(1)主要用途:

用于判断系统整体性能的指标命令,可了解一段时间内系统的负载状态。

 

(2)特点:

系统自带的命令

 

3)使用方法:

uptime直接输出

image.png 

 

4)输出字段分析:

①显示当前时间

up显示系统启动时间

③显示登录系统用户数目

load average 显示平均负载

1个值:代表系统1分钟之内整体的负载状态。

2个值:代表系统5分钟之内整体的负载状态。

3个值:代表系统15分钟之内整体的负载状态。

 

四、top命令

1)主要功能:

显示包括cpu、磁盘、内存、网络等信息

2)特点:

使用最为简单,且统计范围十分广泛

3)使用方法:

top直接输入

image.png

 

4)输出字段含义:

①与uptime显示结果相同。

Tasks:显示目前系统总的任务数、正在运行的任务数、休眠的任务数及处于僵尸状态的任务数。

Cpus:cpu状态的统计

键盘输入“1”,则显示cpu的核数及每个核的运行状态。其输出值与vmstatiostat输出值含义相同。

Mem:对内存的统计,显示系统物理内存总量、使用物理内存量、空闲物理内存量和缓冲物理内存量。

Swap:对Swap使用情况的统计

相关文章
|
2月前
|
缓存 算法 Linux
深入理解Linux内核调度器:公平性与性能的平衡####
真知灼见 本文将带你深入了解Linux操作系统的核心组件之一——完全公平调度器(CFS),通过剖析其设计原理、工作机制以及在实际系统中的应用效果,揭示它是如何在众多进程间实现资源分配的公平性与高效性的。不同于传统的摘要概述,本文旨在通过直观且富有洞察力的视角,让读者仿佛亲身体验到CFS在复杂系统环境中游刃有余地进行任务调度的过程。 ####
56 6
|
22天前
|
运维 监控 Linux
BPF及Linux性能调试探索初探
BPF技术从最初的网络数据包过滤发展为强大的系统性能优化工具,无需修改内核代码即可实现实时监控、动态调整和精确分析。本文深入探讨BPF在Linux性能调试中的应用,介绍bpftune和BPF-tools等工具,并通过具体案例展示其优化效果。
45 14
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
99 7
|
27天前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
2月前
|
缓存 监控 Linux
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
42 4
|
2月前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####
|
2月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
267 1
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
871 2
|
4月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
221 5