首页 / 高防VPS推荐 / 正文
Linux下查看服务器性能参数全攻略

Time:2025年02月22日 Read:10 评论:42 作者:y21dr45

在Linux系统中,了解如何查看服务器性能参数对于系统管理员和开发人员至关重要,这些参数可以帮助我们监控服务器的运行状态、诊断问题以及进行性能优化,本文将详细介绍在Linux下查看服务器性能参数的各种方法,包括命令行工具和一些常用的配置文件。

Linux下查看服务器性能参数全攻略

一、CPU性能参数查看

top命令

top命令是实时显示系统任务信息的工具,它可以动态地显示系统中各个进程的资源占用情况,包括CPU使用率,执行top命令后,我们可以看到类似如下的输出:

top - 12:34:56 up 10 days,  2:12,  3 users,  load average: 0.12, 0.15, 0.10
Tasks: 234 total,   2 running, 232 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.2 us,  0.8 sy,  0.0 ni, 97.9 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8192000 total,  2048000 free,  2048000 used,  4096000 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  12345678 avail Mem

%Cpu(s)行显示了CPU的使用情况。us表示用户空间占用CPU的百分比,sy表示内核空间占用CPU的百分比,ni表示改变过优先级的进程占用CPU的百分比,id表示空闲CPU的百分比,wa表示IO等待占用CPU的百分比,hi表示硬中断占用CPU的百分比,si表示软中断占用CPU的百分比。

mpstat命令

mpstat命令可以显示每个可用处理器的活动情况,常用于多核CPU的性能监控,安装sysstat包后可以使用该命令。

mpstat -P ALL 1

这将每隔1秒显示所有处理器(-P ALL)的统计信息,包括CPU使用率、上下文切换次数等,输出示例如下:

Linux 5.4.0-42-generic (hostname)   03/09/23    _x86_64_    (4 CPU)
12:34:56     CPU    %usr   %nice    %sys %iowait  %irq   %soft  %steal  %guest  %gnice   %idle
12:34:57     all    1.23    0.00    2.34    0.12    0.00    0.00    0.00    0.00    0.00   95.91

这里,%usr表示用户态CPU时间占比,%nice表示改变优先级的用户态CPU时间占比,%sys表示系统态CPU时间占比,%iowait表示IO等待时间占比,%irq表示硬中断时间占比,%soft表示软中断时间占比,%steal表示被其他虚拟机偷取的时间占比(如果有虚拟化),%guest表示运行 guest 操作系统代码的时间占比,%gnice表示让步出 CPU 时间给其他用户的 nice 进程的时间占比,%idle表示空闲时间占比。

/proc/stat文件

/proc/stat文件包含了大量关于系统统计信息的数据,其中与CPU相关的信息可以用来计算CPU使用率,文件内容示例如下:

cpu  23456789 0 123456789 456789123 0 123456 0 0 0 0

第一列cpu表示整体CPU的统计数据,从第二列开始依次为:用户态(user)运行时间、低优先级用户态(nice)运行时间、系统态(system)运行时间、空闲(idle)时间、IO等待(iowait)时间、硬中断(irq)时间、软中断(softirq)时间和剩余未使用的(steal)时间,通过读取这些数据并在一定时间间隔内再次读取,然后进行计算,可以得到CPU的使用率,可以使用以下Python脚本来简单计算CPU使用率:

import time
import os
def get_cpu_times():
    with open('/proc/stat') as f:
        lines = f.readlines()
    for line in lines:
        if line.startswith('cpu '):
            return list(map(int, line.split()[1:]))
def calculate_cpu_usage(prev_times, curr_times):
    prev_idle = prev_times[3] + prev_times[4]
    curr_idle = curr_times[3] + curr_times[4]
    prev_non_idle = sum(prev_times[:3]) + prev_times[5]
    curr_non_idle = sum(curr_times[:3]) + curr_times[5]
    delta_idle = curr_idle - prev_idle
    delta_total = curr_non_idle + curr_idle - (prev_non_idle + prev_idle)
    cpu_usage = (delta_total - delta_idle) / delta_total * 100
    return cpu_usage
prev_times = get_cpu_times()
time.sleep(1)
curr_times = get_cpu_times()
cpu_usage = calculate_cpu_usage(prev_times, curr_times)
print(f"CPU usage: {cpu_usage}%")

这个脚本先获取初始的CPU时间数据,等待1秒后再获取一次,然后通过计算两次数据之间的差异来确定CPU的使用率。

二、内存性能参数查看

free命令

free命令用于显示系统的内存使用情况,执行free -m命令将以MB为单位显示内存信息,输出示例如下:

              total        used        free      shared  buff/cache   available
Mem:           8192        2048        3072         128        3072        5120
Swap:            0           0           0

total表示总内存大小,used表示已使用的内存大小,free表示空闲内存大小,shared表示共享内存大小,buff/cache表示缓存和缓冲区占用的内存大小,available表示可用于程序运行的内存大小(考虑了缓存等因素)。

/proc/meminfo文件

/proc/meminfo文件提供了更详细的内存信息,文件内容示例如下:

MemTotal:        8192 kB
MemFree:         3072 kB
MemAvailable:    5120 kB
Buffers:          128 kB
Cached:          3072 kB
SwapCached:            0 kB
Active:           2048 kB
Inactive:         1024 kB

MemTotal表示总物理内存大小,MemFree表示空闲物理内存大小,MemAvailable表示可供应用程序使用的内存大小(比MemFree更准确,因为它考虑了缓存等因素),Buffers表示缓冲区内存大小,Cached表示缓存内存大小,SwapCached表示被交换出的内存大小,Active表示活动内存大小(包含正在使用的和最近使用的内存),Inactive表示非活动内存大小(近期未使用的内存)。

top命令中的内存信息

top命令的输出中,也包含了内存的使用情况信息,如前文所述的KiB MemKiB Swap行分别显示了物理内存和交换分区的总大小、已用大小、空闲大小和可用大小等信息,还可以通过按f键进入字段选择界面,添加或删除要显示的内存相关字段,如RES(常驻内存大小)、VIRT(虚拟内存大小)等。

三、磁盘I/O性能参数查看

iostat命令

iostat命令用于生成CPU和磁盘I/O的统计信息,安装sysstat包后可以使用该命令。

iostat -dx 1

这将每隔1秒显示设备(-d)和扩展设备(-x)的I/O统计信息,输出示例如下:

Linux 5.4.0-42

排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1