Linux 系统优化参考


一:应用程序类型:
    1:IO消耗型
        --  对系统memory和IO使用率高
        --  关注CPU等待IO的时间
        --  常见的IO型消耗型系统为:数据库系统,文件服务器系统,视频服务器等
        
    2:CPU消耗型
        --  对CPU使用率高
        --  关注CPU中断和上下文切换
        --  常见的CPU消耗型系统为:web服务器系统,复杂计算系统等

二:Linux系统性能分析,调优步骤
    1、使用性能监控工具分析系统,找出系统性能瓶颈
    2、针对瓶颈部件,进行调优,通常升级该部件能获取较好的性能提升
    3、监控调优后的系统性能指标,和之前记录的指标做比较
    4、经过对比,确认系统性能是否有提升
    
三:收集系统遇到的性能问题
    通过调查下列问题熟悉并了解系统的性能状况:
        1:系统硬件平台
        2:系统配置怎么样
        3:系统有哪些外围设备
        4:系统内核版本
        
四:熟悉,调查系统碰到的性能问题
    1、系统问题描述
    2、系统表现的现象是什么,有没有出息什么错误的信息
    3、比如:系统拷贝大文件很慢,那么这个暗示着系统瓶颈可能出现的网络,或者磁盘系统上面
    4、谁碰到了这个性能问题?
    5、是一个人碰到了性能问题,还是一部分人,还是所有人碰到这个问题,这个有助于定位是用户自己的问题,还是网络,部分应用出现了问题
    6、找到问题是解决问题的前提
    7、问题是发生在特定的时间,还是全天都出现?
    8、问题是什么时候开始出现的,是逐渐出现的,还是突然出现的?
    9、在问题出现之前,是否对系统进行了什么改动,如果改动,做了什么改动?
    10、有没有相关的错误日志信息?
    11、该问题的严重程度怎么样?是否必须修复?
    12、问题如果修复,影响有多大,代价有多大?
    
五:CPU性能指标(可以通过top命令查看)
    1、CPU utilization            #CPU使用率,当超过百分之80,可能是瓶颈
    2、user time                #系统执行用户进程花费CPU时间的比例,说明系统用在处理用户任何事件的负载情况
    3、system time                #系统CPU用在处理内核操作上的时间,这个比例应该很少,如果过大,说明系统都在处理内核任务了,那么处理用户真正的任何事件就要少了 --一般少于百分之五
    4、waiting            #用户用在等待磁盘操作的时间,系统不应该花费很多时间在等待磁盘操作上面,否则,磁盘可能是系统的瓶颈,一般为百分之0
    5、idle time        #CPU的空闲时间比例,一般大于百分之20
    6、load average        #CPU运行队列的平均负载,一般少于1
    7、runable processes    #准备执行的进程数量,一般是:1-1(一个CPU就一个进程数量),2-2,3-3
    ----每个核心正常在1到3个左右
    8、blocked        #等待磁盘操作的进程数量,可以用来判断磁盘是有时瓶颈
    9、context swich        #进程切换的次数,过高,说明系统存在大量的中断,考虑磁盘或者网络的瓶颈问题(vmstat命令查看)
    10、CPU高负载的时候,常见指标
        1、65%-70%        user time
        2、30%-35%        system time
        3、0%-5%        idle time
        
六:CPU性能瓶颈定位
    1、当一个系统的CPU空闲时间或者等待时间小于5%时,我们就认为系统的CPU资源耗尽,我们应该对CPU进行性能调整
    2、uptime命令显示出load average长期大于1,说明在队列中等待执行的进程数目多,说明CPU可能存在处理能力不足的问题
    3、vmstat 命令r列表示运行和等待CPU时间片的进程数如果长期大于1,说明CPU不足,需要增加CPU,us列比较高,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化用户程序,如果us+sy大于80%,说明可能存在cpu不足,wa列显示了磁盘等待占用的cpu时间,如果wa长期大于30%,说明I/O等待严重,磁盘可能存在瓶颈。
    
七:CPU性能调优参考
    1:关闭不必要的进程
        1、关闭不必要的进程,对于一些非常紧急任务,可以使用cron安排在系统负荷较轻的时候运行
        2、使用命令ps -df查看系统进程信息,找到不需要的进程,把它关闭。
    
    2:调整进程的运行级别(这个方法一般很少使用,除非你需要的进程运行需要很高的优先级)
        1、调整非紧急进程的运行级别
        2、nice -n -5 abc        #启动abc程序,并把运行级别调整到-5(数字越小,优先级越高,区间为-20到19,默认级别是0)
        3、renice -5 12345         #重新调整进程号为12345的进程运行级别为-5
    
    3:把进程绑定到特定的CPU
        1、把关键进程绑定到特定的CPU,减少CPU中进程切换的频率
        2、在进程目录/proc/irq/pid/目录下面,修改文件smp_affinity文件,把进程绑定到特定的CPU
八:推荐两本书
    1、Unix高级环境编程
    2、socket网络编程
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值