性能优化中的服务器与操作系统优化

我们常说:让专业的人做专业的事情,对于服务器来说也有其擅长的方面。例如,运行,AI算法时,我们会选择使用具有CPU的机器,数据库服务器我们会选择磁盘效率高,CPU强劲,内存较大的服务器。

所以服务要与业务匹配,要有侧重点。

即使你选对了服务器,能不能发挥好服务器的性能也是一个问题。服务器硬件资源的调动是由操作系统来控制的,操作系统为了满足复杂的资源调度需求,也会有很多可选,可配的操作。

例如,我们在使用kubernetes时,会要求关闭swap内存。由于kubernetes会管理很多pod,打开的文件句柄自然会很多,调整可打开的文件数很有必要;反之,服务器的硬件资源的利用率可能很低。为了提高pod间服务的互访效率,我们理所当然地会想到在同一主机上的pod的互动是否可以在内核中完成通信,所以就有了ipvs的方案。

因此,服务器被不同的服务使用时,配置有侧重,操作系统的配置也有侧重。在进行性能压测时,我们定位到了限制,就去修改相应的配置,直到硬件资源利用率达到极致。通常我们要关注的优化包含以下几个方面。

1> 内核能够开启的任务数(kernel.pid_max),针对性能强劲的服务器,例如64核256GB内存。

2>系统级别的能够打开的文件句柄数量(fs.file-max),针对性能强劲的服务器。

3>用户级别的能够打开的文件句柄的数量(soft nofile /hard nofile).

4>进程可以拥有的VMA(虚拟内存区域)的数量(max_map_count),例如使用JVM运行JAVA应用,要支持大量连接,这个值就可以适当扩大。

例如ElasticSearch的使用中就有一个需要注意的地方,报错类似max virtual memory areas vm.max_map_count [65530] is too low ,increase to at least [232144]

5>Tcp 优化,例如:

复制代码
#减保持在Fin-wait-2状态的时间,对于短连接多的服务器可以考虑设置net.ipv4.tcp_fin_timeout=30#重用TIME_WAIT资源net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_recycle=1

6>是否关闭了Swap,例如在使用kubernetes时就建议关闭Swap。

7>是否设置CPU的"亲和性"

性能优化是确保服务器和操作系统能够高效运行的关键步骤。这包括从硬件层面到软件层面的多个方面,旨在提高系统的响应速度、吞吐量以及资源利用率。

以下是关于服务器与操作系统优化的一些核心策略:

服务器硬件优化

CPU优化:选择适合应用负载的处理器类型,并考虑使用多核或多路处理器来处理并发请求。对于需要大量计算的应用,可以考虑采用更高效的CPU架构。

内存管理:增加物理内存容量以减少对交换空间(swap)的依赖,同时优化内存分配算法。使用内存数据库或缓存技术(如Redis或Memcached)来加速数据访问。

存储系统:升级到更快的存储设备,比如固态硬盘(SSD),并调整文件系统的参数以匹配特定的工作负载需求。

网络优化:改进网络配置,例如调整TCP/IP参数,使用高速网络接口卡(NICs),以及实现负载均衡和冗余连接。

操作系统优化

内核参数调优:根据应用的需求调整操作系统的内核参数,如调整电梯算法以优化磁盘I/O性能,或者修改TCP缓冲区大小以适应高带宽环境下的长距离传输。

服务管理:关闭不必要的服务和守护进程,释放宝贵的系统资源。例如,在Linux中禁用不需要的守护进程可以显著降低CPU和内存的占用。

进程与线程管理:优化进程调度算法,减少进程间的竞争,提高系统的并发能力。合理设置线程池大小,避免创建过多线程导致上下文切换开销过大。

文件系统优化:选择合适的文件系统,并进行适当的挂载选项配置,如使用noatime选项减少文件访问时的时间戳更新次数,从而提高性能。

安全性和稳定性:通过合理的权限设置和安全策略增强系统的安全性;定期更新操作系统和应用程序的安全补丁,防止潜在的安全威胁。

日志管理:适当配置日志级别,避免产生过多的日志信息占据磁盘空间或影响系统性能。

监控与分析

实施有效的监控机制,利用工具如vmstat, top, iostat, 和 netstat等监控系统资源的使用情况。

分析系统瓶颈,识别出限制系统性能的关键因素,并采取针对性措施加以解决。

在进行服务器与操作系统优化时,重要的是要基于实际的工作负载来进行定制化配置。没有一种通用的解决方案适用于所有场景,因此需要持续地评估和调整优化策略。此外,随着技术和业务需求的变化,优化工作也是一个不断迭代的过程。通过综合运用上述提到的各种方法和技术,可以有效地提升服务器和操作系统的性能,满足日益增长的服务需求。

阅读后若有收获,不吝关注,分享,在看等操作!!!

相关推荐
运维成长记2 分钟前
linux 100个问答81~101 主要是k8s相关
linux·运维·服务器
旺小仔.18 分钟前
Linux--线程
linux·运维·服务器
Mr. Cao code40 分钟前
探索OpenResty:高性能Web开发利器
linux·运维·服务器·前端·nginx·ubuntu·openresty
北岛三生42 分钟前
ISP(图像信号处理器)
图像处理·数码相机·测试工具·计算机视觉·测试用例·模块测试
厦门辰迈智慧科技有限公司1 小时前
水闸自动化监控系统解决方案
运维·服务器·物联网·安全·自动化·监测
Nuyoah11klay2 小时前
华清远见25072班网络编程day1
linux·服务器·网络·网络编程
努力学习的小廉2 小时前
深入了解linux系统—— 日志
linux·运维·服务器
qinyia4 小时前
Wisdom SSH 是一款创新性工具,通过集成 AI 助手,为服务器性能优化带来极大便利。
服务器·人工智能·ssh
谢尔登7 小时前
性能优化——首屏优化
性能优化
晓衣8 小时前
2025“獬豸杯”全国电子数据取证竞赛-k8s服务器取证wp
服务器·经验分享·程序人生·网络安全·容器·kubernetes·学习方法