[转帖]性能调优要根据自己的情况逐渐调整,往往结合系统监控和性能压力测试一起进行。不可不调,不可乱调。

性能,根据,自己,情况,逐渐,调整,往往,结合,系统监控,压力,测试,一起,进行,不可,不调,乱调 · 浏览次数 : 0

小编点评

**性能调优原则** 1. **从上至下原则:** 从业务逻辑到硬件,逐层优化性能。 2. **通用内核优化参数:** 设置全局参数以优化整个系统性能。

正文

 

你可以在https://www.kernel.org/doc/html/latest/admin-guide/sysctl/index.html

官方去看也有文档

性能调优有两个原则:遵从由上之下,木板补板的原则

 

性能调优遵循由上至下的原则。

业务逻辑->缓存服务器->调度器->网络容器->中间件->NOSQL->SQL->存储->网络->硬件->操作系统->内核。

 

往往在业务层、和缓存策略、网络容器、中间件的优化效果最是明显。层级越高效果越好。

通用内核优化参数

# 指示进程(例如工作进程)可同时打开的最大句柄数,直接限制并发连接的最大数量。
# 默认值:fs.file-max = 141079
fs.file-max = 655350

# 启用keepalive时,TCP发送keepalive消息的频率。默认值为2小时。将其调低一点以更快地删除无用的连接
# 默认值:net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_time = 1200

# 当服务器主动关闭链接时,套接字保持FN-WAIT-2状态的最大时间
# 默认值:net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_fin_timeout = 30

# 该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
# 默认值:net.core.netdev_max_backlog = 1000
net.core.netdev_max_backlog = 8192

# 每个套接字允许的最大辅助缓冲区大小。辅助数据是带有附加数据的结构cmsghdr结构的序列。
# 默认值:net.core.optmem_max = 20480
net.core.optmem_max = 81920

# 指定了接收套接字缓冲区大小的最大值(以字节为单位)。
# 默认值:net.core.rmem_default = 212992
net.core.rmem_default = 262144

# 允许最大数量的TIME-WAIT套接字。超过几位数,TIME-WAIT套接字将立即清除,并显示警告消息。默认值为8192,太多的TIME-WAIT套接字会减慢Web服务器的速度
# 默认值:net.ipv4.tcp_max_tw_buckets = 8192
net.ipv4.tcp_max_tw_buckets = 5000

# TCP接收/发送缓存最小值,默认值,最大值
# 默认值:net.ipv4.tcp_rmem = 4096  131072  6291456
net.ipv4.tcp_rmem = 4096  32768  262142
# 默认值:net.ipv4.tcp_wmem = 4096  16384   4194304
net.ipv4.tcp_wmem = 4096  32768  262142

# Socket接收/发送缓存最大值
# 默认值均为:212992
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304

# 启用syncookies有助于防御dos攻击,会少量增加CPU使用率,默认启用
net.ipv4.tcp_syncookies = 1

# 接受SYN同步包的最大客户端数量,即半连接上限,128M内存情况下是缺省值1024
默认值:net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_max_syn_backlog = 8192

# 服务端所能accept即处理数据的最大客户端数量,即完成连接上限
默认值:net.core.somaxconn = 1024
net.core.somaxconn = 10240

与[转帖]性能调优要根据自己的情况逐渐调整,往往结合系统监控和性能压力测试一起进行。不可不调,不可乱调。相似的内容:

[转帖]性能调优要根据自己的情况逐渐调整,往往结合系统监控和性能压力测试一起进行。不可不调,不可乱调。

你可以在https://www.kernel.org/doc/html/latest/admin-guide/sysctl/index.html 官方去看也有文档 性能调优有两个原则:遵从由上之下,木板补板的原则。 性能调优遵循由上至下的原则。 业务逻辑->缓存服务器->调度器->网络容器->中间件

[转帖]记一次压测引起的nginx负载均衡性能调优

https://xiaorui.cc/archives/3495 这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” 起头进行压力测试,但当我看到那压力测试的结果时,我也是逗乐了。 现象是,直接访问Golang

[转帖]专注于GOLANG、PYTHON、DB、CLUSTER 记一次压测引起的nginx负载均衡性能调优

https://xiaorui.cc/archives/3495 rfyiamcool2016年6月26日 0 Comments 这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” 起头进行压力测试,但当我看到

[转帖]高性能网络实战:借助 eBPF 来优化负载均衡的性能

https://zhuanlan.zhihu.com/p/592981662 网络性能优化,eBPF 是如何发挥作用的呢? 本篇文章,我就以最常用的负载均衡器为例,带你一起来看看如何借助 eBPF 来优化网络的性能。 1 Nginx 负载均衡器 既然要优化负载均衡器的网络性能,那么首先就需要有一个优

[转帖]性能调优——小小的log大大的坑

https://segmentfault.com/a/1190000042434642 引言 “只有被线上服务问题毒打过的人才明白日志有多重要!”我先说结论,谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:) 日志对程序的重要性不言而喻,轻巧、简单、无需费脑,程序代码中随处可见,帮助我们排查定

[转帖]Redis性能调优万字总结,面试必问!

https://zhuanlan.zhihu.com/p/541745804 于哥你好,最近面试挺多的,尤其是在问到java面试题,Redis被问的特别多,比如 Redis的内存模型? Redis的底层数据结构是怎么的? Redis的多线程模型 Redis的集群原理 Redis的雪崩,击穿,穿透怎么

[转帖]JVM性能调优监控工具

原文 https://www.cnblogs.com/haiyang1985/p/7654654.html 摘要: JDK自己提供了不少方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本

[转帖]Nginx性能调优实战

https://cloud.tencent.com/developer/article/1513125?from=article.detail.1860295 1、Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1

[转帖]Linux性能调优,看这一篇就够了

调优是一件因地制宜的事情,生搬硬套可能适得其反。互联网企业,生产环境大多数都是linux操作系统,Linux服务器性能调优,是一个重要的课题。linux有成百上千的参数可以调整,对这些参数的理解,可以帮助我们更好的理解服务器工作的原理,帮助更快的找到瓶颈和解决问题。 为了帮助理解,先上一个Linux

[转帖]Nginx性能调优实战

https://cloud.tencent.com/developer/article/1513125?from=article.detail.1860295 1、Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1