Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1021648
  • 博文数量: 584
  • 博客积分: 2293
  • 博客等级: 大尉
  • 技术积分: 3045
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-28 11:15
文章分类

全部博文(584)

文章存档

2012年(532)

2011年(47)

2009年(5)

我的朋友

分类:

2012-02-19 01:17:02




寻求对solaris系统性能问题感兴趣的朋友(下面的文章是抛砖引玉,希望大家多指教)

日常运行中服务器性能不好,究其原因是一件很复杂的事情,一种情况可能是目前的服务器配置不能满足业务增长的需要;另一种情况可能是应用软件结构的不合理,数据文件和数据库存放的不合理,网络结构不合理。
       系统管理员的主要任务是使用各种工具和命令诊断出问题所在,明确出什么应用程序在大量消耗系统资源(CPU、内存、磁盘IO、网络带宽等),然后应用开发人员去优化应用程序降低对系统资源的占用率来提高响应速度。
        性能调优主要关注的是系统资源的利用,系统资源分为物理的和逻辑的,物理的如:CPU、内存、输入输出设备(包括磁盘设备、IO总线、通讯线和各种控制卡等),逻辑的资源如:LVM(逻辑卷管理器)、VMM(虚存管理器)、文件系统、Page space (缓存)和队列等。这些资源对系统性能的影响轻重缓急不同,合理利用这些资源有许多途径,如果条件允许可首先通过优化程序代码和数据结构降低对资源的要求;尽量使用合理的资源;以及合理控制分配资源。另外,可以通过扩充新的硬件设备来提升处理速度。
      系统在不同时间内的平均负荷(Last mimute、Last 5 minutes、Last 15 minutes)是用来评估系统是否超负荷运行较方便、较常用的一种方法。
       系统性能分析的标准工具:
        CPU :
                     vmstat       sar           ps
       内存:
                     vmstat       ps        
       磁盘:
                     iostat         vmstat
       网络:
                     netstat         nfsstat
性能调优一般步骤
性能调优的主要目的是使系统能够有效的利用各种资源,但衡量系统资源利用率好坏的标准是什么,针对不同的系统和应用没有严格的定义,一般参照以下条件来判定主要资源使用状况:
好                 坏                              糟糕
CPU     user% + sys%< 70% user% + sys%= 85%user% + sys% =90%+
磁盘    iowait % < 30%iowait % =40%iowait % = 50%+
内存   无pagein pageout每个CPU 达到10 page/秒更多的pageinpageout
网络   < 30% 网络带宽
运行队列(Run Queue) < 2 * CPU个数

通过以下步骤,发现影响整体性能的关键资源,进行性能优化,必要时需要添加或升级某种硬件设备。
1.用iostat、sar、 tprof检测是否是CPU原因
2.用vmstat、svmon检测是否是内存原因
3.用filemon、iostat检测是否是硬盘原因
4.用netstat 、nfsstat检测是否是网络原因
以上步骤是一个交互的过程,当某个瓶颈被去掉后,有可能另外的资源又变为新的瓶颈,需要重新从步骤1开始反复再观察。
·sar             统计单CPU系统的系统活动状况
·cpusar       统计多处理器中单个处理器的活动状况
·mpsar      统计多处理器中处理器的总体活动状况
1、sar  -u显示项的含义(检查CPU的使用率)
·%usr   cpu执行用户进程的时间
·%sys  cpu执行系统进程的时间
·%wio cpu等待完成I/O的时间
·%idel  cpu 的空闲时间
显示结果分析说明
·一般情况下%usr和%sys的值基本相等
·在一般的多用户系统中,%idel的值通常大于40%
·若 %wio经常>15%意味着硬盘可能存在着瓶颈
·若%idel经常小于30%,意味着处理器的处理能力较弱
·若%idel经常小于10%,表明处理器负担较重,或者存在逃逸进程。
·若%idel接近于0,而且%sys远高于% usr,则可能是内存短缺引起了大量的swaping和paging
2、sar  -p 检查系统中是否有较多的等待进程
·Sar -p:检查系统中是否有过多的等待进程
此命令有四个相关字段:
runq-sz:内存(memory)中可以运行的进程数
%runocc:进程进入内存等待的概率
swpq-sz:对换区(swap)中等待运行的进程数
%swpocc:进程进入swap等待的概率
显示结果分析汇总如下:
1) 若runq-sz经常大于2并且%runocc经常大于90%,意味着处理器负载过重
2) 若%swpocc不为0,表示系统已经置换出了进程。可以采用增加内存或减少缓冲的方法来减少swap和paging。
netstat
网络问题是影响系统性能的问题之一,诊断网络问题最简单的工具是netstat  -i, 命令结果显示了在每一个接口发送和接收数据包的情况,其中的3项:ierrs、oerrs and collis与网络性能问题有关:
1.ierrs,是指主机从网络接收数据包中包含有多少不正确的数据包,如果ierrs很大,通常表明硬件接口存在问题或硬件驱动器接受数据包较慢,此时应该在不同时间多次采集数据进行比较来决定采取什么措施。正常情况下,ierrs/opkts< 0.025%.
2.oerrs,是指主机从网络送出的数据包中包含有多少不正确的数据包。正常情况下oerrs/ipkts< 0.025%.
3.collis,碰撞是在局域网中有两面三刀个或以上系统同时发送数据时产生的,如果碰撞率(collis/opkts)大于 5%,说明网络负荷过大。此时应该调整网络结构,减少网络流量。
Uptime
是用来衡量一个机器开机长短的。Uptime 显示的时间越大,说明机器越稳定。
点此查看:
SUN Solaris 9/10系统管理员学习指南(全球唯一中文版免费在线阅读)



阅读(355) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~