linux 性能查看
Linux命令行查看内存
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...
还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。
top:
主要参数 :
d
:指定更新的间隔,以秒计算。
q
:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c
:显示进程完整的路径与名称。
S
:累积模式,会将己完成或消失的子行程的
时间累积起来。
s
:安全模式。
i
:不显示任何闲置
或无用
的行程。
n
:显示更新的次数,完成后将会退出to
显示参数
:
(
):进程标示号。
:进程所有者的用户名。
:进程的优先级别。
:进程的优先级别数值。
:进程占用的虚拟内存值。
:进程占用的物理内存值。
:进程使用的共享内存值。
表示该进程优先值是负数。
:该进程占用的
使用率。
:该进程占用的物理内存和总内存的百分比。
+:该进程启动后占用的总的
时间。
:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top
命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
空格
:立刻刷新。
P
:根据
使用大小进行排序。
T
:根据时间、累计时间排序。
q
:退出top命令。
m
:切换显示内存信息。
t
:切换显示进程和
状态信息。
c
:切换显示命令名称和完整命令行。
M
:根据使用内存大小进行排序。
W
:将当前设置写入
toprc
文件中。这是写top配置文件的推荐方法。
free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
**2.格式 **
free [
-b-k-m] [-o] [-s delay] [-t] [-V]
**3.主要参数 **
-b -k -m -g:分别以字节(KB、MB、GB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
uptime
18
59
15 up 25 min
2 users
load
1.23
1.32
1.21
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
vmstat
procs
memory
swap
io
system
cpu
r b swpd free buff cache si so bi bo in cs us sy id wa
**1 观察磁盘活动情况 **
磁盘活动情况主要从以下几个指标了解:
bi
:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo
:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa
:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。
**2 观察cpu活动情况 **
vmstat比top更能反映出cpu的使用情况:
us
:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy
: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id
:cpu空闲的时间比例。
wa
:cpu等待未决的磁盘IO的时间比例。
iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数
c
只显示
行
d
显示磁盘行
k
以千字节为单位显示磁盘输出
t
在输出中包括时间戳
x
在输出中包括扩展的磁盘指标
avg
cpu
user
nice
sys
iowait
idle
iowait
等待本地I
O
时
空闲时间的百分比
idle
未等待本地I
O
时
空闲时间的百分比
tps
s
s
hda
每秒传输数(tps)、每秒
字节块读取数(
s
)、每秒
字节块写入数(
s
)和
字节块读取(
)的总数量。
**
系统**
# uname -a #
查看内核/操作系统/CPU信息
# head -n 1 /etc/issue #
查看操作系统版本
# cat /proc/cpuinfo #
查看CPU信息
# hostname #
查看计算机名
# lspci -tv #
列出所有PCI设备
# lsusb -tv #
列出所有USB设备
# lsmod #
列出加载的内核模块
# env #
查看环境变量
**
资源**
# free -m #
查看内存使用量和交换区使用量
# df -h #
查看各分区使用情况
# du -sh #
查看指定目录的大小
# grep MemTotal /proc/meminfo #
查看内存总量
# grep MemFree /proc/meminfo #
查看空闲内存量
# uptime #
查看系统运行时间、用户数、负载
# cat /proc/loadavg #
查看系统负载
**
磁盘和分区**
# mount | column -t #
查看挂接的分区状态
# fdisk -l #
查看所有分区
# swapon -s #
查看所有交换分区
# hdparm -i /dev/hda #
查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE #
查看启动时IDE设备检测状况
**
网络**
# ifconfig #
查看所有网络接口的属性
# iptables -L #
查看防火墙设置
# route -n #
查看路由表
# netstat -lntp #
查看所有监听端口
# netstat -antp #
查看所有已经建立的连接
# netstat -s #
查看网络统计信息
**
进程**
# ps -ef #
查看所有进程
# top #
实时显示进程状态
**
用户**
# w #
查看活动用户
# id #
查看指定用户信息
# last #
查看用户登录日志
# cut -d: -f1 /etc/passwd #
查看系统所有用户
# cut -d: -f1 /etc/group #
查看系统所有组
# crontab -l #
查看当前用户的计划任务
**
服务**
# chkconfig --list #
列出所有系统服务
# chkconfig --list | grep on #
列出所有启动的系统服务
**
程序**
# rpm -qa #
查看所有安装的软件包
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。
1. /proc/meminfo
查看RAM使用情况最简单的方法是通过/proc/meminfo
。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo
列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过/proc/<pid>/statm 和 /proc/<pid>/status 来查看。
$ cat
proc
meminfo
- atop
atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。
$ sudo atop
- free
free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。
$ free
h
- GNOME System Monitor
GNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看CPU及内存使用情况的方法。
$ gnome
system
monitor
- htop
htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。
$ htop
- KDE System Monitor
功能同 4 中介绍的GENOME版本。
$ ksysguard
- memstat
memstat是一个有效识别executable(s), process(es) and shared libraries使用虚拟内存情况的命令。给定一个进程ID,memstat可以列出这个进程相关的可执行文件、数据和共享库。
$ memstat
p
- nmon
nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。
$ nmon
- ps
ps命令可以实时的显示各个进程的内存使用情况。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:
$ ps aux
sort
rss
- smem
smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。
$ sudo smem
pie name
c
- top
top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。
$ top
- vmstat
vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。
$ vmstat
s
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix