- 浏览: 957208 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (189)
- 方案流程图及架构 (5)
- j2ee (5)
- ajax (2)
- oracle (1)
- pl/sql (0)
- designpattern (0)
- searchengine (2)
- mysql (28)
- sso (3)
- jvm (3)
- uml (0)
- oo (1)
- dboptimize (3)
- web2.0 (2)
- unix/linux (1)
- hadoop (4)
- mahout (0)
- android (2)
- html5 (0)
- solr (0)
- 分词 (0)
- 机器学习 (0)
- 育儿 (2)
- linux (5)
- im (1)
- hive (1)
- nginx (1)
- mysql复合索引的使用场景 (0)
- hadoop搭建报错 (1)
- qps (1)
- 架构 (1)
- nosql (1)
- 推荐引擎 (5)
- 云存储 (1)
- 职业生涯 (1)
- 破解 instsall4j (1)
- 数字教育 微课程 (1)
- khan 可汗学院 (1)
- socket (2)
- 消息队列 (0)
- java (0)
- 视频流媒体 (1)
- memcache (1)
- 开源 (1)
- reactor (1)
- spi (1)
- 持续构建 ci (1)
- zookeeper (3)
- tomcat (1)
- mycat (1)
- mysql mycat sysbench (1)
- mycat mysql (1)
- svn (1)
- id发号器 (1)
- 多机房 (2)
- 分布式事务 (3)
- 电商 (1)
- 库存 (1)
最新评论
-
baichoufei90:
hadoop权威指南说ZK的zab协议不是用的paxos算法。 ...
zookeeper原理(转) -
shin1355:
看了一小部分,看不下去了,
zookeeper原理(转) -
b_l_east:
表示没看懂楼主关于选举算法的描述,顿时没了读下去的兴致
zookeeper原理(转) -
prince4426:
好前沿的技术呀
hive选型讨论 -
zk519720303:
zookeeper原理(转)
简述
本节介绍了一些查看系统信息和监测系统资源与性能的工具,使用性能监测工具对当前系统有一个基本的了解,并根据收集到的信息选择其他相应的工具,进一步分离出性能瓶颈和寻找解决办法。本节根据查看系统信息、磁盘使用和I/O监测、CPU和内存监测、网络监测进行分类,介绍几种性能监测工具和监测手段,供大家在日常工作中选择参考。
目录
一、系统信息查看
1、查看系统版本号的几个命令
2、如何在Solaris下获取内存大小
3、如何在Solaris下获取CPU速率
二、磁盘使用和I/O监测
1、检查磁盘使用状况工具df、du
2、iostat 监视磁盘命令
三、CPU和内存使用监测
1、用vmstat监测CPU和内存,vmstat列出的属性详解
2、prstat给出CPU和内存使用情况的动态注解
3、mpstat命令报告每个处理器的统计信息
4、proc工具报告某单独进程属性
5、pmap命令报告单独进程的内存空间布局情况
6、使用ps命令获取进程的内存、CPU利用状况及排序
7、uptime和w命令查看过去15分钟内系统的负载情况
8、使用top工具监测性能
9、如何增加交换空间
四、检查网络性能工具
1、snoop诊断网络报文工具
2、nfsstat监测NFS系统
3、netstat监测网络接口
4、Solaris下如何知道哪个进程使用了哪个端口
5、ping 诊断网络连接和阻塞问题
6、ipcs显示与内部进程通信有关的统计信息
7、traceroute显示路由到目的地主机的报文,诊断网络拥堵
8、route get ip获取通过的网关
内容
一、系统信息查看
========================================================================
1、查看系统版本号的几个命令
1)看版本号
# uname -a
SunOS sunserver1 5.8 Generic_108528-13 sun4u sparc SUNW,Sun-Fire-280R
2)看kernel版本号
# showrev
Hostname: sunserver1
Hostid: 8318005d
Release: 5.8
Kernel architecture: sun4u
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain:
Kernel version: SunOS 5.8 Generic 108528-19 January 2003
相关命令:
#hostid
#hostname
3)看安装的补丁id
#showrev –p
4)看是否安装了某个补丁
#pkginfo |grep XXXXX
========================================================================
2、如何在Solaris下获取内存大小
有以下几个命令供参考:
/usr/platform/`uname -m`/sbin/prtdiag -v | grep Memory
prtconf -v | grep Memory
如果装了GNU top,也可以直接用top命令看到。
========================================================================
3、如何在Solaris下获取CPU速率
有以下几个命令供参考:
# psrinfo -v
# psrinfo | grep on-line | wc -l 简单给出CPU数目
# /usr/platform/`uname -i`/sbin/prtdiag -v
# /usr/platform/`uname -m`/sbin/prtdiag -v
# /usr/bin/netstat -k cpu_info0
========================================================================
二、磁盘使用和I/O监测
========================================================================
1、检查磁盘使用状况工具df、du
df列出文件系统的块大小,及使用情况
# df
/ (/dev/dsk/c0t0d0s0 ): 745246 块 667064 文件
/proc (/proc ): 0 块 7816 文件
/dev/fd (fd ): 0 块 0 文件
/etc/mnttab (mnttab ): 0 块 0 文件
/var/run (swap ): 1227264 块 54271 文件
/tmp (swap ): 1227264 块 54271 文件
/space (/dev/dsk/c0t0d0s3 ): 2023574 块 1470851 文件
df –k以字节列出系统使用情况
# df -k
文件系统 千字节 用了 可用 容量 挂接在
/dev/dsk/c0t0d0s0 6191949 5819326 310704 95% /
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
swap 488768 0 488768 0% /var/run
swap 490240 1472 488768 1% /tmp
/dev/dsk/c0t0d0s3 12530787 11518984 886496 93% /space
列出某一目录所在的设备使用情况
# df -k /slli
文件系统 千字节 用了 可用 容量 挂接在
/dev/dsk/c0t0d0s0 6191949 5819326 310704 95% /
du列出某一目录的使用大小
# du -s /export/home
852690 /export/home
# du -ks /export/home
426345 /export/home
列出某一目录下所有子目录及文件的大小
# du /opt
8 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf/windo
10 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf
12 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing
14 /opt/SUNWebnfs/JFileChooser-patch/com/sun/java
16 /opt/SUNWebnfs/JFileChooser-patch/com/sun
18 /opt/SUNWebnfs/JFileChooser-patch/com
… …
========================================================================
2、iostat 监视磁盘命令
iostat命令报告磁盘的使用情况。表格中的每一行代表一个磁盘的活动信息。常用的选项有这些:
参数n 按cXtYdZ格式指定磁盘。
# iostat -n 2
tty c0t0d0 fd0 c0t2d0 cpu
tin tout kps tps serv kps tps serv kps tps serv us sy wt id
0 16 476 23 7 0 0 0 0 0 0 2 2 10 86
0 97 170 22 11 0 0 0 0 0 0 0 3 0 97
0 33 24 3 1 0 0 0 0 0 0 0 0 0 100
0 34 12 2 1 0 0 0 0 0 0 0 0 0 100
0 34 0 0 0 0 0 0 0 0 0 0 0 0 100
参数x 报告扩展统计信息。
# iostat -x
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
dad0 21.2 1.4 465.4 10.9 0.0 0.1 6.5 0 12
fd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
sd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
参数z 这个选项在Solaris 8操作环境中是新的。它使得在采样间隔中没有磁盘活动的那些行被省略掉,这样可以让输出简短一些并且突出那些有活动的磁盘。
# iostat -z 2
tty dad0 fd0 sd0 cpu
tin tout kps tps serv kps tps serv kps tps serv us sy wt id
0 16 476 23 7 0 0 0 0 0 0 2 2 10 86
0 97 12 1 7 0 0 0 0 0 0 0 0 0 100
参数p和P 报告分区前(per-partition)的I/O统计信息,当察看内存交换设备的时候有用。
# iostat -p 2
tty dad0 dad0,a dad0,b dad0,c cpu
tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id
0 16 476 23 7 1 0 28 0 0 27 0 0 0 2 2 10 86
0 117 12 1 1 0 0 0 0 0 0 0 0 0 0 0 0 100
参数E 对于找出产生错误的磁盘有用。
# iostat -nE
c0t0d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: ST320011A Revision: 3.19 Serial No: 3HT3XQ9X
Size: 20.02GB <20019879936 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c0t2d0 Soft Errors: 0 Hard Errors: 2 Transport Errors: 0
Vendor: LG Product: CD-ROM CRD-8483B Revision: 1.02 Serial No:
Size: 18446744073.71GB <-1 bytes>
Media Error: 0 Device Not Ready: 2 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0
此外,对于磁盘镜像,可能也会影响到一些I/O性能。
========================================================================
三、CPU和内存使用监测
========================================================================
1、用vmstat监测CPU和内存,vmstat列出的是些什么属性?
# vmstat 2
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr 1m 1m 1m 2m in sy cs us sy id
0 0 0 5235888 387408 20 135 10 2 1 0 0 0 0 0 0 170 599 286 0 2 98
0 0 0 5192424 506360 2 4 0 0 0 0 0 0 0 0 0 152 67 173 0 0 100
0 0 0 5192424 506360 0 0 0 0 0 0 0 0 0 0 0 149 138 175 0 0 99
0 0 0 5192424 506360 0 0 0 0 0 0 0 0 0 0 0 131 36 146 0 0 100
0 0 0 5192424 506360 0 0 0 0 0 0 0 0 0 0 0 156 45 161 0 0 100
0 0 0 5192424 506360 0 0 0 0 0 0 0 0 0 0 0 157 101 172 0 0 100
vmstat各项:
procs:
r-->在运行队列中等待的进程数
b-->在等待io的进程数
w-->可以进入运行队列但被替换的进程
memoy
swap-->现时可用的交换内存(k表示)
free-->空闲的内存(k表示)
pages
re--》回收的页面
mf--》非严重错误的页面
pi--》进入页面数(k表示)
po--》出页面数(k表示)
fr--》空余的页面数(k表示)
de--》提前读入的页面中的未命中数
sr--》通过时钟算法扫描的页面
disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号
fault 显示每秒的中断数
in--》设备中断
sy--》系统中断
cy--》cpu交换
cpu 表示cpu的使用状态
cs--》用户进程使用的时间
sy--》系统进程使用的时间
id--》cpu空闲的时间
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
CPU能力不足的例子。
# vmstat 15
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id
45 0 0 2887216 182104 3 707 449 6 455 0 80 2 6 1 0 1531 5797 983 61 30 9
58 0 0 2831312 46408 5 983 582 56 3211 0 492 0 0 0 0 1413 4797 1027 69 31 0
55 0 0 2830944 56064 2 649 656 3 806 0 121 0 0 0 0 1441 4627 989 69 31 0
57 0 0 2827704 48760 4 818 723 6 800 0 121 0 0 1 0 1606 4316 1160 66 34 0
56 0 0 2824712 47512 6 857 604 56 1736 0 261 0 0 1 0 1584 4939 1086 68 32 0
58 0 0 2813400 47056 7 856 673 33 2374 0 355 0 0 0 0 1676 5112 1114 70 30 0
60 1 0 2816712 49464 7 861 720 6 731 0 110 7 0 3 0 2329 6131 1067 64 36 0
58 0 0 2817552 48392 4 585 521 0 996 0 146 0 0 0 0 1357 6724 1059 71 29 0
在"procs"下面标着"r"的一列是等待获得CPU的进程运行队列中的进程数。"id"列是CPU空闲时间。这台机器没有足够的CPU资源以满足进程运行的需要,这可以从它的大部分CPU时间花在用户空间里看出来(看"us"列)。
这种情况解决办法,增加更多的CPU,或者,配合使用其他相关工具查出资源耗费较多的进程,对应用程序的代码作性能分析,看是否可以优化。
vmstat中的"fr"列确实反映了空闲并且没有被页面缓存所使用的内存。使用-p选项,给出更准确的页面调度行为细节。
为了确定是否有内存不足的情况存在,同时检查 ("sr",也就是扫描率)和交换分区的磁盘I/O流量(用iostat -P)。如果大量的I/O活动由文件系统产生并且需要运行页面扫描程序为I/O释放页面,"sr"列会有比较大的数值。
保存如何正常运转的样例。这样可以很容易地收集和保存每月的性能数据进行比较,如 vmstat, mpstat, iostat
========================================================================
2、prstat给出CPU和内存使用情况的一个动态注解
示例:
#prstat -cvm的输出结果非常有用。
========================================================================
3、mpstat命令报告每个处理器的统计信息
mpstat命令报告每个处理器的统计信息,表格中的每一行代表一个处理器的活动情况。
# mpstat 5
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 3 19 0 451 327 300 11 0 0 0 322 2 2 10 86
0 1 0 0 405 303 258 3 0 0 0 176 0 0 0 100
0 0 134 0 711 456 559 21 0 0 0 622 9 8 34 49
0 2 28 0 644 434 703 143 0 0 0 1392 28 12 15 45
0 0 23 0 624 412 478 35 0 0 0 941 10 18 14 57
mpstat可以确定每一个CPU都在花时间做什么:比如,分配给系统、用户、等待、空闲时间、系统调用、锁竞争、中断、错误、交叉调用。
mpstat的"wt"列表明等待时间过多。 用户任务花时间太长。 作为你积极的维护计划的一部分,检查/var/adm/messages中有没有比如磁盘重试之类的硬件问题或者有没有额外的消息产生也是很有价值的。
大百科CPU 100%案例:
大百科SUN系统经常报CPU 100%,CPU占用最高的进程有时竟然是一些僵尸进程,杀掉后CPU立刻降下来,在/var/adm/messages中疯狂报如下信息:
Mar 3 16:45:15 dbksvr unix: [ID 340762 kern.notice]
from Memory Module 1901
Mar 3 16:45:15 dbksvr unix: [ID 221138 kern.notice]
CONSIDER REPLACING THE MEMORY MODULE.
Mar 3 16:45:15 dbksvr unix: [ID
547813 kern.notice] Multiple Softerrors:
Mar 3 16:45:15 dbksvr unix: [ID
356634 kern.notice] 256 Intermittent, 0 Persistent, and 0 Sticky Softerrors
accumulated
怀疑时硬件内存条问题,当事务量小时,内存用不到这条有问题的,当事务量大时,开始使用此有问题的内存造成死锁,CPU高居100%.
========================================================================
4、proc工具报告进程属性
proc是一个利用/proc的特性来报告比如这样一些进程属性的实用工具:
1)pstack -调用栈
2)pfiles -打开的文件描述符列表
3)pldd -正在运行中的进程使用的动态链接库的列表
示例:
#ps -ef
root 1838 1 0 3月 03 ? 0:00 /usr/sbin/syslogd
root 1479 1 0 3月 03 ? 0:01 ocfserv
… …
# pstack 1838
1838: /usr/sbin/syslogd
----------------- lwp# 1 / thread# 12 --------------------
ff217ac8 poll (ff03bd0c, 1, ffffffff)
ff15b35c poll (c, ff174780, 1, 2a8c8, 2b164, fe401000) + 34
ff15bc08 _thread_start (0, 0, 0, 0, 0, 0) + 40
----------------- lwp# 2 / thread# 2 --------------------
… …
# ptree 1838
1933 /usr/dt/bin/dtlogin -daemon
6359 /usr/dt/bin/dtlogin -daemon
6380 /bin/ksh /usr/dt/bin/Xsession
6390 /usr/openwin/bin/fbconsole
… …
# pfiles 1838
1838: /usr/sbin/syslogd
Current rlimit: 1024 file descriptors
0: S_IFCHR mode:0600 dev:136,0 ino:749016 uid:0 gid:3 rdev:97,0
O_WRONLY|O_APPEND
1: S_IFCHR mode:0666 dev:136,0 ino:749009 uid:0 gid:3 rdev:13,2
O_RDONLY|O_LARGEFILE
… …
# pldd 1838
1838: /usr/sbin/syslogd
/usr/lib/libnsl.so.1
/usr/lib/libpthread.so.1
/usr/lib/libdoor.so.1
/usr/lib/libc.so.1
… …
========================================================================
5、pmap命令报告单独进程的内存空间布局情况
对于单独的进程,pmap命令报告单独进程的内存空间布局情况(-x选项比较有用)。
示例:
#ps –ef|grep httpd
root 1158 1 0 3月 03 ? 0:00 /opt/IBMHTTPD/bin/httpd
daemon 1064 1063 0 3月 03 ? 0:00 /usr/lib/ab2/dweb/sunos5
tpd /usr/lib/ab2/dweb/data
nobody 1704 1158 0 3月 03 ? 0:00 /opt/IBMHTTPD/bin/httpd
nobody 1705 1158 0 3月 03 ? 0:00 /opt/IBMHTTPD/bin/httpd
… …
#pmap –x 1710
1710: /opt/IBMHTTPD/bin/httpd
00010000 584K read/exec /opt/IBMHTTPD/bin/httpd
000B0000 40K read/write/exec /opt/IBMHTTPD/bin/httpd
000BA000 208K read/write/exec [ heap ]
FECA0000 24K read/exec /usr/lib/nss_files.so.1
FECB6000 8K read/write/exec /usr/lib/nss_files.so.1
FECC0000 368K read/write/shared [ anon ]
FED20000 136K read/exec /opt/WebSphere/AppServer/bin/libascommon.so
… …
========================================================================
6、使用ps命令获取进程的内存、CPU利用状况及排序
ps命令显示正在运行进程某一时刻的相关数据,使用ps命令获取进程的内存、CPU利用状况。用这些命令可以看到使用CPU和内存最多的进程:
1)# ps -eo pid,pcpu,args | sort +1n
CPU百分比
2)# ps -eo pid,vsz,args | sort +1n
K字节的虚拟内存
3)# /usr/ucb/ps -aux |more
# /usr/ucb/ps -aux | head
输出被排序,使用CPU和内存最多的进程排在上面。
注意:/usr/bin/ps和/usr/ucb/ps时两个不同的工具。
/usr/ucb/ps中,stat列显示了各进程的状态:
R 进程可运行
s 睡眠,不可中断
S 睡眠
I 空闲
T 停挂
H 挂起
W 被换出到磁盘上
font-f
发表评论
相关推荐
《Unix实用命令》.doc文件则可能是对UNIX系统下常用命令的详细解释和示例,包括文件和目录管理、文本处理、进程控制、系统信息查询等方面的命令。例如,`ls`用于列出目录内容,`cd`用于切换当前工作目录,`grep`用于...
### UNIX 常用命令简介 #### 一、概述 UNIX 是一款强大的多用户多任务操作系统,被广泛应用于服务器、工作站等高性能计算环境。在 UNIX 系统中,用户可以通过命令行工具完成各种复杂的操作。本文将详细介绍 UNIX 中...
EBS性能检查和控制,Unix平台下的常用命令技巧之资源与性能
Linux操作系统作为开源技术的重要组成部分,它的学习和应用是IT专业人士必备的技能之一。首先,Linux的发展和起源需要了解,它是基于UNIX操作系统发展起来的,采用了类UNIX的操作系统架构,具有开放源代码的特性。...
HP-UX常用命令总结 HP-UX 是 Hewlett-Packard 公司开发的一种Unix操作系统,在服务器和大型机市场中具有广泛的应用。本文总结了 HP-UX 平台上常用的命令和技巧,涵盖了目录管理、文件操作、系统配置、网络管理、...
在本文档中,我们将深入探讨UNIX基础命令,这是学习UNIX操作系统不可或缺的部分。...随着经验的积累,你还可以探索更高级的命令和系统管理技巧,如进程管理、文件权限设置、脚本编写等,进一步深化对UNIX的理解和应用。
- **常用命令实操**:通过具体案例演示命令的使用场景与技巧。 - **FTP与文件传输**:介绍FTP客户端的安装与使用,进行文件的远程传输。 综上所述,华为UNIX系统不仅承袭了UNIX系统的经典特质,更结合了现代企业...
#### 五、其他常用命令 - **grep**: 在文件中搜索指定模式的行。 - **find**: 在文件系统中查找文件。 - **sed**: 流编辑器,用于文本处理。 - **awk**: 强大的文本分析工具。 ### 总结 通过本文档的介绍,我们了解...
8. **脚本编程**:Perl、Python和Awk是UNIX下常用的脚本语言,用于处理文本数据和系统管理任务。 9. **系统管理**:包括安装和更新软件、管理用户账户、日志监控、性能调优等,是UNIX系统管理员的日常工作。 10. *...
根据提供的标题“Unix编程艺术中文版(非加密,带目录)”及描述“Unix编程艺术中文版”,可以推测这是一本介绍Unix系统编程原理、技巧和最佳实践的书籍。本书可能涵盖Unix系统的背景知识、核心概念、编程工具和技术...
Unix的命令行界面是其一大特色,课件将详细介绍各种常用命令,如ls、cd、pwd、mkdir、rm、cp、mv等,以及管道符(|)、重定向(>和<)和通配符等操作技巧。此外,还将教授如何编写shell脚本,实现自动化任务处理。 ...
在Unix环境下,C语言是最常用的编程语言之一,这得益于Unix系统本身的源代码就是用C语言编写的。Unix提供了丰富的标准库支持,如stdio.h、string.h、unistd.h等,这些库包含了大量函数,可用于文件操作、字符串处理...
- **重定向与管道**:重定向允许将命令的输出重定向到文件或另一个命令的输入,而管道则用于将一个命令的输出直接作为下一个命令的输入,实现数据流的无缝传递。 #### 第4章 UNIX文件系统常用工具 - **vi编辑器**...
二、Unix常用命令 1. `ls`:列出目录内容。 2. `cd`:切换当前工作目录。 3. `pwd`:显示当前工作目录。 4. `mkdir`:创建新目录。 5. `rm`:删除文件或目录。 6. `cp`:复制文件或目录。 7. `mv`:移动或重命名文件...
3. **Shell与命令行界面**:讲解Bash Shell,它是Unix系统的主要交互界面,以及常用的基本命令如ls、cd、mkdir、rm等,帮助用户熟悉Unix环境。 4. **文件与目录管理**:详细阐述Unix中的文件系统,包括文件权限、...
本书以简洁、高效的方式,介绍了Unix操作系统的核心概念、常用命令以及系统管理的基本技巧。Unix,作为一款历史悠久且功能强大的操作系统,对于软件开发、系统管理等领域具有广泛的应用。Linux作为其开源版本,更是...