zoukankan      html  css  js  c++  java
  • Linux系统性能优化思路和方法

    #影响Linux性能的CPU、内存、磁盘、网络等因素分析
    1.系统硬件资源:CPU,多核与超线程
    消耗CPU的业务:动态WEB服务,Mail服务器

    2.内存:物理内存与swap的取舍,64操作系统
    消耗内存的业务:内存数据库(Redis、hbase、mongodb)

    3.磁盘:RAID技术(RAID0/1/5/10),SSD
    消耗磁盘的业务:数据库服务器

    4.网络带宽:网卡/交换机/双网卡绑定
    消耗带宽的业务:hadoop平台,视频业务平台

    #影响Linux性能的操作系统相关资源分析
    1.系统安装优化
    磁盘分区,RAID设置,swap设置

    2.内核参数优化
    ulimit -n 最大打开文件数
    ulimit -u 最大用户数

    3.文件系统优化
    ext2:linux下标准文件系统,无日志记录(inode)功能
    ext3:在ext2基础上增加了日志记录功能(inode),仅支持32000个目录
    ext4: ext3的后续版本,linux2.6.28内核开始支持,无限子目录支持,快速fsck
    xfs:高性能文件系统,linux3.10内核开始默认支持

    读操作频繁首选:ext4 写操作频繁首选:xfs

    #系统性能调优之CPU性能评估工具与优化经验
    1.cpu性能评估工具
    vmstat(默认系统自带)
    vmstat 3 5    表示每3s更新一次输出信息,统计5次后停止输出
    [root@zabbix ~]# vmstat 2 3
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0      0 60072824 246332 3805844    0    0     0    25    1    1  0  0 100  0  0
     1  0      0 60072848 246332 3805844    0    0     0    24  698  729  0  0 100  0  0
     0  0      0 60073080 246332 3805844    0    0     0    28 1445 1034  0  0 100  0  0

    procs    r列表示运行和等待cpu时间片的进程数,这个如果长期大于系统cpu个数,说明cpu不足,需要增加cpu
        b列表示在等待资源的进程数,比如等待I/O,或者内存交换等

    procs标准:    r 不超过cpu进程数
    memory标准:    
    swap标准:    si,so长期不为0,说明内存不足,需要加内存
    io标准:    bi+bo超过1000,而且wa值较高,说明磁盘IO有问题,应提高磁盘读写性能
    system标准:    us长期超过50%,用户进程消耗cpu,需要考虑优化程序或算法
            sy长期超过50%,内核消耗的cpu资源很多
            us+sy长期超过80%,说明可能cpu资源部足
            id cpu空闲的百分比
            wa 参考值20%,如果超过20%,说明io等待严重
    cpu重点参考:r    cs  us  sy id  wa值的大小

    2.iostat工具(需要安装sysstat工具包)
    iostat -c 3 5   显示cpu使用情况
    iostat -d 3 5    显示磁盘使用情况

    # -r内存,-ucpu -d磁盘
    tps 表示每秒到物理磁盘的传送数,也就是每秒的I/O流量,一个传送就是一个I/O请求,多个逻辑请求可以被合并为一个物理I/O请求
    sar -r 3 5
    sar -u 3 5

    pidstat -r -p 3 5


    #系统性能调优之内存性能、磁盘性能评估工具与优化经验

     #系统性能调优之网络性能评估工具与系统性能分析标准
    mtr www.baidu.com
    tracroute www.baidu.com

    netstat -r    查看网络接口状态
    netstat -i     c查看网络路由

  • 相关阅读:
    【原创】Zend Framework 2框架之MVC
    poj3101--Astronomy(分数的最小公倍数)
    【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素
    Java中&、|、&&、||详解
    编写webpack 插件
    Babel 入门教程
    Eslint 规则说明
    npm模块之http-proxy-middleware使用教程(译)
    sass和less的几点不同
    babel的使用(关于使用async报错的问题)
  • 原文地址:https://www.cnblogs.com/sunmmi/p/6243231.html
Copyright © 2011-2022 走看看