• 在Linux操作系统的性能调优


    主要从三个方面着手:

    1、文件描述符的限制

    2、进程/线程数量的限制

    3、TCP内核参数

    1、文件描述符的限制

    2、进程线程数的限制

    进程数限制: 

    ①使用 ulimit -u 命令 ,查看、或修改单个用户能够打开的最大线程数

    ②/etc/security/limits.conf文件中的noproc是系统最大进程数

    进程数的限制:

    ①使用 ulimit -s 查看或修改线程栈的大小,即开启每一个新的线程需要分配给此线程的一部分内存

    ②可以通过/proc/sys/kernel/threads- max查看系统总共可以打开的最大线程数。

    3、TCP内核参数:

    在一台服务器CPU和内存资源有限的情况下,最大程度地压榨服务器的性能,是最终
    目的。在节省成本的情况下,可以考虑修改Linux的内核TCP/IP参数,来最大程度地压榨
    服务器的性能。如果通过修改内核参数也无法解决负载问题,那么只能考虑升级服务器了。
    如下:
    netstat -n | awk ' /^tcp/ {++S[$NF]} END {for(a in S) print a, S[a] }'
    使用上面的命令,可以得到当前系统的各个状态的网络连接数目。如下:
    LAST ACK 13
    SYN RECV 468
    ESTABLISHED 90
    FIN WAIT1 259
    FIN WAIT2 40
    CLOSING 34
    TIME WAIT 28322
    这里,TIME_ _WAIT的连接数需要注意。此值过高会占用大量连接,影响系统的负载能
    力。这时需要调整参数,以尽快地释放TIME_ _WAIT连接。
    一般TCP相关的内核参数在/etc/sysctl.conf文件中。为了能够尽快释放TIME_ WAIT状
    态的连接,可以做以下配置。

    4、系统常用诊断工具:

    uptime:快速查看服务器的负载情况

    dmesg | tail :输出系统日志的最后10行。常见的OOM kill和TCP丢包在这里都会有记录

    vmstat 1 : vmstat是一-个实时性能检测工具,可以展现给定时间间隔服务器的状态值,包括服务

    器的CPU使用率、内存使用、虚拟内存交换情况、I/O 读写情况等系统核心指标。

    mpstat -P ALL 1:  该命令用来显示每个CPU的使用情况。如果有一个CPU占用率特别高,说明有可能是一个单线程应用程序引起的。

    free -m :用于查看系统内存的使用情况,-m 参数标识按照兆字节展示

    sar -n DEV 1:这个命令主要查看网络设备的吞吐率

    top :top命令包含了系统全局的很多指标信息,包括系统负载情况、系统内存使用情况、系

    统CPU使用情况等,基本涵盖了,上述几条命令的功能。如下:

    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/gslgb/p/14565253.html
Copyright © 2020-2023  润新知