【性能测试】linux服务器性能监控常用命令

news2024/12/23 10:59:31

CPU 性能监控指令

top 命令

  • 基本功能:top 命令是 Linux 系统中最常用的性能监控工具之一。它可以实时显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存使用量、进程状态等信息。在性能测试监控服务器性能时,通过 top 命令可以快速查看哪些进程在消耗大量的 CPU 资源。
  • 示例用法:在终端中输入 “top” 后,会显示一个动态的进程列表。默认按照 CPU 使用率排序,第一行显示系统的整体信息,如当前时间、系统运行时间、登录用户数、系统负载(1 分钟、5 分钟、15 分钟的平均负载)等。后续行显示各个进程的详细信息,包括进程 ID(PID)、用户、优先级、虚拟内存大小、物理内存大小、共享内存大小、CPU 使用率、内存使用率等。例如,如果你发现一个 Java 进程的 CPU 使用率持续很高,可能表示这个进程对应的应用(如接口服务)在性能测试中占用了大量 CPU 资源,需要进一步分析其原因。
    在这里插入图片描述

mpstat 命令

  • 基本功能:mpstat 命令用于多处理器系统的 CPU 性能统计。它可以显示每个 CPU 核心的使用情况,包括用户态 CPU 使用率、内核态 CPU 使用率、空闲率等指标。在多核服务器上进行性能测试时,mpstat 命令可以帮助确定 CPU 负载是否均匀分布在各个核心上。
  • 示例用法:“mpstat -P ALL” 命令可以显示所有 CPU 核心的统计信息。输出结果会包括每个核心的编号、用户使用率、nice 使用率(优先级调整后的用户使用率)、系统使用率、空闲率等。例如,如果发现某些核心的使用率过高,而其他核心使用率较低,可能表示应用没有充分利用多核优势,或者存在性能瓶颈导致任务集中在部分核心上。
    在这里插入图片描述

vmstat 命令

  • 基本功能:vmstat 命令主要用于报告虚拟内存统计信息以及系统的 CPU 活动情况。它可以提供关于内存、磁盘 I/O、CPU 上下文切换等更详细的数据,帮助分析 CPU 性能与其他系统资源之间的关系。
  • 示例用法:“vmstat 1 5” 命令表示每秒输出一次系统状态信息,共输出 5 次。在输出结果中,“r” 列表示运行队列中的进程数,这个数值如果持续大于 CPU 核心数,可能表示 CPU 竞争激烈;“b” 列表示处于不可中断睡眠状态的进程数;“us” 列表示用户空间 CPU 使用率,“sy” 列表示内核空间 CPU 使用率。通过这些数据可以综合判断 CPU 的工作状态和性能瓶颈。
    在这里插入图片描述

内存性能监控指令

free 命令

  • 基本功能:free 命令用于显示系统内存的使用情况,包括总内存、已使用内存、空闲内存、共享内存、缓存和缓冲内存等信息。在性能测试中,通过 free 命令可以快速了解服务器的内存资源是否充足。
  • 示例用法:输入 “free -h” 命令可以以可读的格式(如 KB、MB、GB)显示内存信息。输出结果中,“Mem” 行显示物理内存的情况,“Swap” 行显示交换分区(如果有)的情况。例如,如果 “free” 列的数值很小,而 “used” 列的数值很大,并且 “cached” 和 “buffers” 列也没有多少空间,可能表示服务器内存资源紧张,需要考虑增加内存或者优化应用的内存使用。
    在这里插入图片描述

vmstat 命令(用于内存部分)

  • 基本功能:前面提到 vmstat 命令也可以用于监控内存性能。它可以显示内存的交换情况(内存数据与磁盘交换分区之间的交换),这对于判断服务器是否存在内存不足的情况非常重要。
  • 示例用法:在 vmstat 命令的输出结果中,“si” 列表示从磁盘交换到内存的字节数,“so” 列表示从内存交换到磁盘的字节数。如果这两个数值较大,说明系统正在频繁地进行内存交换,这会严重影响性能,因为磁盘 I/O 速度远远慢于内存访问速度。
    在这里插入图片描述

磁盘 I/O 性能监控指令

iostat 命令

  • 基本功能:iostat 命令用于监控系统的磁盘 I/O 情况,包括磁盘的读写速度、每秒读写次数、平均等待时间等指标。在性能测试中,如果接口服务涉及大量的磁盘读写操作(如数据库读写、文件存储等),iostat 命令可以帮助评估磁盘 I/O 是否成为性能瓶颈。
  • 示例用法:“iostat -x 1 5” 命令表示每秒输出一次扩展的磁盘 I/O 统计信息,共输出 5 次。输出结果中,“r/s” 列表示每秒完成的读操作次数,“w/s” 列表示每秒完成的写操作次数,“rkB/s” 列表示每秒读的千字节数,“wkB/s” 列表示每秒写的千字节数,“await” 列表示平均每次 I/O 操作的等待时间。如果 “await” 数值较大,说明磁盘 I/O 存在延迟,可能是磁盘性能不足或者 I/O 请求过于密集。
    在这里插入图片描述

iotop 命令

  • 基本功能:iotop 命令类似于 top 命令,但是它主要用于监控磁盘 I/O 的进程级信息。它可以实时显示哪些进程在进行大量的磁盘读写操作,以及它们的读写速度。
  • 示例用法:在终端中输入 “iotop” 后,会显示一个动态的进程列表,按照磁盘 I/O 使用率排序。第一行显示总的磁盘读写速度,后续行显示各个进程的详细信息,包括进程 ID、用户、I/O 优先级、读写速度等。通过 iotop 命令可以快速定位在性能测试中占用大量磁盘 I/O 资源的进程。
    网络性能监控指令
    在这里插入图片描述

netstat 命令

  • 基本功能:netstat 命令用于显示网络连接、路由表、网络接口统计等信息。在性能测试中,可以使用它来查看服务器的网络连接状态,如当前有多少个连接、哪些端口处于监听状态等。
  • 示例用法:“netstat -tuln” 命令可以显示所有 TCP 和 UDP 的监听端口。输出结果中,“Proto” 列表示协议类型(TCP 或 UDP),“Local Address” 列表示本地地址和端口,“Foreign Address” 列表示外部地址和端口(对于监听端口通常为 “0.0.0.0:” 或 “:::”),“State” 列表示连接状态(对于监听端口为 “LISTEN”)。通过这个命令可以检查接口服务是否在正确的端口上监听,以及是否有异常的网络连接。
    在这里插入图片描述

sar 命令(用于网络部分)

  • 基本功能:sar(System Activity Reporter)命令是一个系统活动报告工-具,它可以收集和报告各种系统资源的使用情况,包括网络。通过 sar 命令可以获取网络接口的流量统计信息,如每秒接收和发送的数据包数量、字节数等。
  • 示例用法:“sar -n DEV 1 5” 命令表示每秒输出一次网络设备的统计信息,共输出 5 次。输出结果中,“IFACE” 列表示网络接口名称,“rxpck/s” 列表示每秒接收的数据包数量,“txpck/s” 列表示每秒发送的数据包数量,“rxkB/s” 列表示每秒接收的千字节数,“txkB/s” 列表示每秒发送的千字节数。通过这些数据可以评估服务器在性能测试中的网络负载和性能。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2238586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS2humble版本使用colcon构建包

colcon与与catkin相比,没有 devel 目录。 创建工作空间 首先,创建一个目录 ( ros2_example_ws ) 来包含我们的工作区: mkdir -p ~/ros2_example_ws/src cd ~/ros2_example_ws 此时,工作区包含一个空目录 src : . └── src1 directory, …

VUE使用TS开发打包时发现校验问题无法打包

解决办法: 找到 tsconfig.app.json 这个文件,把他的include改为一个实际存在的空文件即可

vscode+EIDE开发环境搭建

嵌入式知识框架目录篇章:返回请点我 热门优质文章 文章标题等级:低中高推荐指数5√最佳vscode安装配置使用调试【保姆级教程】中√√√[VSCODE]基于EIDE插件搭建vscode下的STM32单片机开发环境中√√√官方安装高√√√√VScode利用EIDE和cortex-debug…

kafka面试题解答(四)

5、消费者组和分区数之间的关系是怎样的? 消费者组数小于等于分区数,消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费。 6、kafka如何知道哪个消费者消费哪个分区? 生产者把数据发送给各个分区&…

C#入门 020 事件(类型成员)

初步了解事件 定义:单词Event,译为“事件” 《牛津词典》中的解释是“a thing that happens, especially something important通顺的解释就是“能够发生的什么事情” 角色:使对象或类具备通知能力的成员 事件(event)是一种使对象或类能够提供通知的成员对象O拥有…

单链表算法题(数据结构)

1. 反转链表 https://leetcode.cn/problems/reverse-linked-list/description/ 题目: 看到这个题目的时候我们怎么去想呢?如果我们反应快的话,应该可以想到我们可以从1遍历到5然后依次头插,但是其实我们还有更好的办法&#xff…

Python 如何通过 cron 或 schedule 实现爬虫的自动定时运行

Python 如何通过 cron 或 schedule 实现爬虫的自动定时运行 自动定时运行爬虫是很多数据采集项目的基本需求。例如,每天采集一次新闻数据,或每小时更新股票行情数据等。通过 Python 实现定时任务,可以保证数据采集的高效和持续性。本文将带大…

初学mongoDB

MongoDB 是一个开源的 NoSQL 数据库,由 C 语言编写。它与传统的关系型数据库不同,MongoDB 使用的是一种基于文档的存储模型,不需要定义固定的表结构,可以灵活地存储和管理大量的非结构化数据。下面是 MongoDB 的一些核心特性&…

Ubuntu 的 ROS 操作系统turtlebot3环境搭建

引言 本文介绍如何在Ubuntu系统中为TurtleBot3配置ROS环境,包括安装和配置ROS Noetic的步骤,为PC端控制TurtleBot3提供操作指南。 安装和配置的过程分为PC设置、系统安装、依赖安装等部分,并在最后进行网络配置,确保PC端能够顺利…

图像增强的100种方法

文章目录 什么是图像增强 ?一、亮度和对比度调整1.1、线性方法1.1.1、灰度反转(Gray Inversion)1.1.2、对比度拉伸(Contrast Stretching)1.1.3、对比度和亮度增强(Contrast and Brightness) 1.2…

Android Kotlin Flow 冷流 热流

在 Android 开发中,Flow 是 Kotlin 协程库的一部分,用于处理异步数据流的一个组件。本质上,Flow 是一个能够异步生产多个值的数据流,与 suspend 函数返回单个值的模式相对应。Flow 更类似于 RxJava 中的 Observable,但…

Web服务器nginx实验2修改端口、默认目录、默认文件访问web页面

修改默认目录、默认文件: 创建配置文件: 里面写:(访问的位置是/haha目录里面的haha.html) 把haha里面的index.html改名为haha.html: 重启服务: 关闭防火墙、改宽松模式: 用Windows访…

Maven最佳实践

文章目录 1.摘要 本文主要介绍Maven使用,作为Maven使用手册来记录。 2.介绍 Maven是项目管理工具,将项目开发和管理过程抽象成一个项目对象模型,使用pom.xml 文件进行依赖管理和项目构建。 Maven 中pom.xml 是根据坐标信息来定位资源的位置&a…

el-table 纵向垂直表头处理

项目中表格展示会遇到需要纵向垂直表头情况,下面,我们基于el-table组件来实现这种表格。 以下是这次需要用到的数据表格,已知左侧违章名称是固定的,而月份是不固定的,在后端返回数据格式已确定的情况下,需…

Android OpenGL ES详解——纹理:纹理过滤GL_NEAREST和GL_LINEAR的区别

目录 一、概念 1、纹理过滤 2、邻近过滤 3、线性过滤 二、邻近过滤和线性过滤的区别 三、源码下载 一、概念 1、纹理过滤 当纹理被应用到三维物体上时,随着物体表面的形状和相机视角的变化,会导致纹理在渲染过程中出现一些问题,如锯齿…

超市11-12月生鲜重点商品配置

11月份:应季商品很多,特别是与季节相对应的蔬菜大量上市。宜推荐对预防感冒等相应的特殊食谱,推荐对于常外出的人方便又省事、省时的食谱,推荐多种花样的火锅,推荐便于保存的应季食品原料。 生活特性:大众食谱宜以炖菜、红焖、火锅…

c++设计模式demo

模式设计原则 依赖倒置原则 ⾼层模块不应该依赖低层模块,⼆者都应该依赖抽象 ; 抽象不应该依赖具体实现,具体实现应该依赖于抽象; ⾃动驾驶系统公司是⾼层,汽⻋⽣产⼚商为低层,它们不应该互相依赖&#x…

【网络面试篇】其他面试题——Cookie、Session、DNS、CDN、SSL/TLS、加密概念

目录 一、HTTP 相关问题 1. Cookie 和 Session 是什么? (1)Cookie (2)Session 2. Cookie 的工作原理? 3. Session 的工作原理? 4. Cookie 和 Session 有什么区别? 二、其他问…

软件测试第二篇软件测试技术

第五章单元测试和集成测试的技术 单元静态测试主要由开发人员完成。 标准:规定什么能做,什么不能做。 规范:建议你要怎么做。 5.1.2 代码评审 代码评审是一种发现代码缺陷的另一种测试方法。 代码审查的最佳实践: 创建代码审…

QT中 update()函数无法实时调用 paintEvent

QT中 update()函数无法实时调用 paintEvent! 在QT中,update()函数用于标记一个窗口区域为“需要重绘”。当调用update()后,QT会在合适的时候调用paintEvent()来重绘这个区域。然而,update()不会立即调用paintEvent(),…