在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使用情况等,基本涵盖了,上述几条命令的功能。如下:

[ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
原文地址:https://www.cnblogs.com/gslgb/p/14565253.html