高并发低延迟运行环境下的程序优化策略
需积分: 0 13 浏览量
更新于2024-08-04
收藏 22KB DOCX 举报
针对高并发低延迟运行环境低配的程序优化建议
在高并发场景下,程序优化是非常重要的,否则可能会导致连接数无法达到、延迟高或抖动、内存激增、服务部署困难等问题。本文将从语言选择、连接数限制、TCP协议栈网络参数等方面提供优化建议。
一、语言选择
在高并发场景下,语言选择是非常重要的。主要限制为系统连接数限制,每个连接消耗的系统性能主要表现为内存增加。当需要对大量数据进行处理时,CPU会有一个激增。数据缓存以及永久化存储时大量IO读写,包括网络IO和文件操作IO。在这种情况下,建议选用静态同时不使用虚拟机的语言,如C、C++、Golang。主要原因为虚拟机会损耗一部分性能,同时动态语言没有强类型定义会在运行时消耗大量资源进行消耗,通常计算能力会比静态语言差一个量级,即使进行过解释器优化也会比静态语言差很多。
二、连接数限制
连接数限制是高并发场景下的一大痛点。Linux系统限制了系统全局允许分配的最大文件句柄数,可以通过sysctl命令来设置:
sysctl -w fs.file-max=2097152
sysctl -w fs.nr_open=2097152
echo 2097152 > /proc/sys/fs/nr_open
持久化‘fs.file-max’设置到/etc/sysctl.conf文件:
fs.file-max=1048576
/etc/systemd/system.conf设置服务最大文件句柄数:
DefaultLimitNOFILE=1048576
/etc/security/limits.conf持久化设置允许用户/进程打开文件句柄数:
* soft nofile 1048576
* hard nofile 1048576
三、TCP协议栈网络参数
TCP协议栈网络参数也是高并发场景下的一大痛点。可以通过sysctl命令来设置:
sysctl -w net.core.somaxconn=32768
sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sysctl -w net.core.netdev_max_backlog=16384
可用知名端口范围:
sysctl -w net.ipv4.ip_local_port_range='100065535'
TCPSocket读写Buffer设置:
sysctl -w net.core.rmem_default=262144
sysctl -w net.core.wmem_default=262144
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
四、结论
高并发场景下,程序优化是非常重要的。通过选择合适的语言、调整连接数限制、设置TCP协议栈网络参数等,可以提高系统的性能和稳定性。
2019-09-24 上传
2019-08-06 上传
2023-02-08 上传
2021-01-09 上传
2023-02-14 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
黄涵奕
- 粉丝: 880
- 资源: 327
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查