在Linux系统中,了解如何查看服务器性能参数对于系统管理员和开发人员至关重要,这些参数可以帮助我们监控服务器的运行状态、诊断问题以及进行性能优化,本文将详细介绍在Linux下查看服务器性能参数的各种方法,包括命令行工具和一些常用的配置文件。
一、CPU性能参数查看
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
命令可以显示每个可用处理器的活动情况,常用于多核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
文件包含了大量关于系统统计信息的数据,其中与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 -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
文件提供了更详细的内存信息,文件内容示例如下:
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
命令的输出中,也包含了内存的使用情况信息,如前文所述的KiB Mem
和KiB Swap
行分别显示了物理内存和交换分区的总大小、已用大小、空闲大小和可用大小等信息,还可以通过按f
键进入字段选择界面,添加或删除要显示的内存相关字段,如RES
(常驻内存大小)、VIRT
(虚拟内存大小)等。
三、磁盘I/O性能参数查看
iostat
命令用于生成CPU和磁盘I/O的统计信息,安装sysstat
包后可以使用该命令。
iostat -dx 1
这将每隔1秒显示设备(-d
)和扩展设备(-x
)的I/O统计信息,输出示例如下:
Linux 5.4.0-42
随着互联网的普及和信息技术的飞速发展台湾vps云服务器邮件,电子邮件已经成为企业和个人日常沟通的重要工具。然而,传统的邮件服务在安全性、稳定性和可扩展性方面存在一定的局限性。为台湾vps云服务器邮件了满足用户对高效、安全、稳定的邮件服务的需求,台湾VPS云服务器邮件服务应运而生。本文将对台湾VPS云服务器邮件服务进行详细介绍,分析其优势和应用案例,并为用户提供如何选择合适的台湾VPS云服务器邮件服务的参考建议。
工作时间:8:00-18:00
电子邮件
1968656499@qq.com
扫码二维码
获取最新动态