十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、做网站、泰和网络推广、小程序定制开发、泰和网络营销、泰和企业策划、泰和品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供泰和建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。
top:
主要参数 :
free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
**2.格式 **
**3.主要参数 **
uptime
vmstat
**1 观察磁盘活动情况 **
磁盘活动情况主要从以下几个指标了解:
**2 观察cpu活动情况 **
vmstat比top更能反映出cpu的使用情况:
iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
Linux查看CPU和内存使用情况:
在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。
1. /proc/meminfo
查看RAM使用情况最简单的方法是通过 /proc/meminfo 。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。 /proc/meminfo 列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过/proc/pid/statm 和 /proc/pid/status 来查看。
atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。
free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。
GNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看CPU及内存使用情况的方法。
htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。
功能同 4 中介绍的GENOME版本。
memstat是一个有效识别executable(s), process(es) and shared libraries使用虚拟内存情况的命令。给定一个进程ID,memstat可以列出这个进程相关的可执行文件、数据和共享库。
nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。
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进行排序:
smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。
top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。
vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。
Nmon是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel 分析工具(nmon analyser)进行数据的统计分析。
Nmon使用需要nmon工具和nmonanalyser分析程序两者配合使用。nmon工具生成性能数据文件,然后monanalyser以nmon生成的数据文件作为输入,输出为Excel电子表格,并自动地生成相应的图形,使用户能够直观地观察OS性能(CPU、IO和内存等)的变化过程。
1.用root用户登录系统,建立nmon日志存储目录;
2.创建nmon工具运行脚本文件;
该命令启动后,会在/home/centos/nmon/nmon_data目录下生成监控文件,并持续写入资源数据,直至所有监控点收集完成,这些操作均自动完成,无需手工干预,用户可以继续完成其他操作。如果想停止该监控,需要通过“ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。
3.为nmon.sh文件添加可执行权限;
4.启动nmon,添加crontab item;
5.如需停止nmon,可注释crontab item;
6.nmon开始运行后,每天在/home/centos/nmon/nmon_data下产生一个文件,文件名包含日期如bigdata4_190628_1828.nmon;
7.nmon数据文件定期备份定期清理;
每个标签页都展示了对某一指标如CPU、内存、网络、I/O的详细监控数据,需要重点关注的几个监控指标如下:
页面显示项主要有主机名,执行日期,系统cpu使用情况(蓝线),系统I/O情况(粉红线),其中坐标左纵轴为系统cpu(user%+sys%)使用率,横轴为运行时长(下图为一个小时),右纵轴为系统磁盘传输(Disk xfers),坐标下侧为统计信息:系统I/O情况(一个采集间隔内的平均值、最大值、出现最大值的时间),系统CPU使用情况等。
如果一个CPU被充分使用,CPU占用时间配比应为User%(65-70%),Sys%(30-35%),Idel%(0-5%)
如果Sys%占比过大说明系统进程本身占领大部分cpu资源,可考虑系统是否存在过多僵尸进程或者系统进程存在死循环等原因;
CPU Wait%占比过大说明可能IO或内存方面存在瓶颈,可能是由于内存不够而引起频繁的的数据交换。
包括主机CPU使用情况汇总以及每个CPU的运行情况。
此处重点关注CPU_ALL页面。CPU_ALL页面可以看到如下图的CPU整体上在每个监控点的数据,包括User%、Sys%、Wait%、Idle%、Steal%、CPU%以及CPUs(cpu个数)及对应图表。
参数 | 说明
CPU Total| 执行间隔时间列表
User% | 采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)
Sys% | 采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)
Wait%| 采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Avg、Max)
Idel%|采集间隔内所有CPU处于空闲Time的占比(Avg、Max),此值和User%,Sys%,Wait%,Steal%之和等于1
CPU%| CPU总体占用情况,这个值通常等于User%+Sys%
CPUs | CPU核数,即操作系统是多少核的
磁盘的读、写及I/O统计信息,系统各磁盘分区的读写情况。此处重点关注DISK_SUMM即可。
Disk total KB/s | 执行间隔时间列表
Disk Read KB/s| 采集间隔内磁盘设备的读速率
Disk Write KB/s| 采集间隔内磁盘设备的写速率
IO/sec | 采集间隔内磁盘整体平均每秒IO数
参数 | 说明
memtotal | 物理内存总大小,单位MB
swaptotal | 虚拟内存(即交换空间)的总大小
memfree | 剩余物理内存大小
swapfree | 剩余虚拟内存大小
cached | 物理内存中被cache占用的缓存大小
active | 在活跃使用中的内存大小
buffers | 文件系统缓冲区的大小
swapcached | 虚拟内存中被cache占用的缓存大小
inactive | 不常使用的内存大小
反映系统的网络运行情况,系统各个网络适配器读写的数据包数。此处重点关注NET页面。
NET页面显示系统中每个网络适配器的数据传输速率(千字节/秒)。
参数 | 说明
Network I/O | 执行间隔时间列表
Total-Read | 网络适配器每秒接收的数据包总大小(KB/s)
Total-Write(-ve) | 网络适配器每秒发送的数据包总大小(KB/s)
反映系统运行线程及等待切换的线程平均数。
记录nmon工具采集系统信息的时间点。
这方面的指令太多了,大体上整理一下12个吧。
1.
/proc/meminfo
查看ram使用情况最简单的方法是通过
/proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free
/
ps
/
top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过
/proc/
/statm
和
/proc/
/status
来查看。
2.
atop
atop命令是一个终端环境的监控命令。它显示的是各种系统资源(cpu,
memory,
network,
i/o,
kernel)的综合,并且在高负载的情况下进行了彩色标注。
3、
free
free命令是一个快速查看内存使用情况的方法,它是对
/proc/meminfo
收集到的信息的一个概述。
4.
gnome
system
monitor
gnome
system
monitor
是一个显示最近一段时间内的cpu、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看cpu及内存使用情况的方法。
$
gnome-system-monitor
5.
htop
htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。
6.
kde
system
monitor
功能同
4
中介绍的genome版本。
$
ksysguard
7.
memstat
memstat是一个有效识别
executable(s),
process(es)
and
shared
libraries使用虚拟内存情况的命令。给定一个进程id,memstat可以列出这个进程相关的可执行文件、数据和共享库。
8.
nmon
nmon是一个基于ncurses的系统基准测试工具,它可以监控cpu、内存、i/o、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示
总/剩余内存、交换空间等信息。
9.
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
10.
smem
smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。
$
sudo
smem
--pie
name
-c
"pss"
11.
top
top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。
$
top
12.
vmstat
vmstat命令显示实时的和平均的统计,覆盖cpu、内存、i/o等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。
$
vmstat
-s
用Nmon监控Linux系统性能的方法请参见下面介绍(配图):
1、安装Nmon
2、一旦安装完成,则可以通过在终端执行 nmon 命令启动它。
Nmon命令执行之后,大家可以看到如下输出:
3、从上图中大家可以看到,Nmon 命令行工具是一个用户交互的应用程序,大家可以非常方便地使用键盘快捷键来查看相关统计信息。
q : 停止并退出Nmon
h : 查看帮助信息
c : 查看 CPU 统计信息
m : 查看内存统计信息
d : 查看磁盘统计信息
k : 查看内核统计信息
n : 查看网络统计信息
N : 查看 NFS 统计信息
j : 查看文件系统统计信息
t : 查看 Top 进程统计信息
V : 查看虚拟内存统计信息
v : 详细输出模式
4、查看 CPU 统计信息
如果你想查看 CPU 性能信息,可以直接按 c 键:
5、查看 Top 进程统计信息
如果你想查看 Top 进程统计信息,可以直接按 t 键:
6、查看网络统计信息
如果你想查看网络统计信息,可以直接按 n 键:
7、磁盘I/O图
使用 d 键可以查看磁盘统计信息:
8、查看内核统计信息
如果你想查看内核统计信息,可以直接按 k 键:
9、获取系统信息
如果要查看 Linux 的系统信息,如:系统架构、操作系统版本、Linux 版本则可以使用 r 键,这对系统管理员非常有用。
以上是基础使用方法。下面再补充一些命令和方法:
1、启动
打开nmon所在的目录:cd /usr/local/nmon
修改启动文件的访问权限:chmod 755 nmon_x86_rhel52
启动nmon:./nmon_x86_rhel52
如果要采样nmon的数据保存成文件,可以
./nmon_x86_rhel52 -fT -s 30 -c 120
其中30表示每隔30秒nmon取一次系统性能数据,120表示取120次;
这样nmon将会在运行开始算起连续取得30sX120=60分钟,可根据实际需要时间调整;当运行以上命令后该目录下会生成一个.nmon文件,该文件会根据间隔时间被写入性能数据,当一段时间后再查看该文件,文件字节变大
利用nmonanalyser分析.nmon文件
当测试结束的同时ftp到服务器上将.nmon文件get下来,
打开nmon_analyser.zip 包下的nmon analyser v338.xls 文件,点击Analyse nomn data按钮,选择之前get来下的.nmon文件。
(如果报告以下宏的安全级别太高错误,则在“工具 -- 宏 --安全性”里把级别调低,然后重新打开 nmon analyser v338.xls 文件)
待分析结束后会生成性能分析结果文件(文件格式为.xls,其中包括CPU,IO,内存等性能分析报告)。
分析结果中有很多数据和图形,简要介绍主要的性能参数图像
4.1 系统汇总(对应excel标签的‘SYS_SUMM’)
蓝线为cpu占有率变化情况;
粉线为磁盘IO的变化情况;
4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)
蓝色为磁盘读的速率KB/sec
紫色为磁盘写的速率KB/sec
4.3内存情况汇总(对应excel标签的‘MEM’)
曲线表示内存剩余量(MB)
分析数据得到的报告文件(.xls)中包含很多性能分析结果数据,根据自己的需要查看。
2、nmon运行本身就消耗系统资源的;
另外如果取到.nmon文件后确定不再需要nmon继续收集信息则应kill掉nmon;
命令:
ps -A | grep nmon #得到pid
kill -9 pid
suse10 enterprise sp2:
nmon_x86_rhel3
使用对应的操作系统文件:
chmod +x nmon_x86_ubuntu810
mv nmon_x86_ubuntu810 /usr/local/bin/nmon
对于 Debian 还要做以下操作(不做也同样能运行):
apt-get install lsb-release
lsb_release -d | sed 's/Description:\t//' /etc/debian_release
然后直接运行 nmon 即可。
采集数据并生成报表:
采集数据:
nmon -s10 -c60 -f -m /home/
参数解释:
-s10 每 10 秒采集一次数据。
-c60 采集 60 次,即为采集十分钟的数据。
-f 生成的数据文件名中包含文件创建的时间。
-m 生成的数据文件的存放目录。
这样就会生成一个 nmon 文件,并每十秒更新一次,直到十分钟后。
生成的文件名如: hostname_090824_1306.nmon ,"hostname" 是这台主机的主机名。
生成报表:
下载 nmon analyser (生成性能报告的免费工具):
把之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon analyser v33C.xls 。点击 Excel 文件中的 "Analyze nmon data" 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls ,用 Excel 打开生成的文件就可以看到结果了。
如果宏不能运行,需要做以下操作:
工具 - 宏 - 安全性 - 中,然后再打开文件并允许运行宏。
自动按天采集数据:
在 crontab 中增加一条记录:
0 0 * * * root nmon -s300 -c288 -f -m /home/ /dev/null 21
300*288=86400 秒,正好是一天的数据。
采样文件越来越大:
jackxiang@172.25.39.***:~/nmon# ./nmon -s1 -c33 -f
jackxiang@172.25.39.***:~/nmon#
jackxiang@172.25.39.***:~/nmon# du -sh *
8.0K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
12K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
16K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
20K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
20K AD39_***_sles10_101207_1046.nmon
160K nmon
注:以上一些机器名称或系统名称,请根据实际情况自行调整及修改。
使用bai命令:mii-tool -v
mii:是Linux下专门设置网卡工作模式的命令,详细参数如下
1. 查看网卡的工作模式,输入命令:
#mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:aa:00, model 56 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
从以上信息中可以看出,这块网卡工作在100M全双工自适应模式下,“100BaseTx-FD”意为100M Full Duplex。
2. 更改网卡的工作模式,输入命令:
#mii-tool -F media [interface]
media可选的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。 Interface代表所选择的网卡,如eth0、eth1等,默认为eth0。
例如,设置网卡工作在10M半双工模式下,输入命令:
#mii-tool -F 10baseT-HD eth0
3. 恢复网卡的自适应工作模式,输入命令:
#mii-tool -r eth0
更详细的使用方法可以用mii-tool -h来获得。