服务器调优

  1. Linux服务器优化:打开文件数限制 (open files)

    open files (-n) 1024

问题 :对于生产服务器/高并发应用,1024太小。
建议调整

  • 普通服务器:65535

  • 高并发服务器:100000 或更高

    复制代码
    # 临时调整
    ulimit -n 65535
    
    # 永久调整(在 /etc/security/limits.conf 添加)
    * soft nofile 65535
    * hard nofile 65535

2.最大锁定内存 (max locked memory)

复制代码
max locked memory (-l) 8192

问题 :8MB 对于使用大量内存锁定的应用(如数据库、缓存系统)可能不足。
建议

复制代码
# 调整到内存的合理比例,如512MB或1GB
ulimit -l unlimited  # 或具体值如 524288 (512MB)

3. 栈大小 (stack size)

复制代码
stack size (-s) 8192

问题 :8MB 对于某些需要深度递归或大型栈的应用可能不够。
建议

复制代码
ulimit -s unlimited  # 或调整到 32768 (32MB)

应用场景建议

1. Web服务器(Nginx/Apache)

复制代码
ulimit -n 65535
ulimit -l unlimited

2. 数据库(MySQL/PostgreSQL)

复制代码
ulimit -n 65535
ulimit -l unlimited
ulimit -s unlimited

3. Java应用

复制代码
# 在启动脚本中添加
ulimit -n 65535
ulimit -u 65535

4. 高并发服务器

复制代码
# 在 /etc/sysctl.conf 中调整系统级别限制
fs.file-max = 2097152
fs.nr_open = 2097152

⚠️ 注意事项

  1. root用户不受 limits.conf 限制,需要单独配置

  2. 修改后需要重新登录或重启服务

  3. 不要盲目设置为 unlimited,根据实际需求调整

  4. 使用 cat /proc/<PID>/limits 查看进程的实际限制

📝 检查建议

调整后运行:

复制代码
# 查看当前shell限制
ulimit -a

# 查看系统全局限制
cat /proc/sys/fs/file-max

建议根据您的具体应用类型选择合适的优化值。

相关推荐
杨云龙UP32 分钟前
MySQL 数据库常用备份工具对比:mysqldump、mydumper 与 XtraBackup
linux·运维·服务器·数据库·mysql·dba·备份恢复
PC2005-cloud1 小时前
从零上手 openGauss:Docker 部署 + 全场景连接教程
运维·docker·容器
独隅1 小时前
Cursor+GitOps 自动化运维实战:智能编写 Ansible 与 Terraform
运维·自动化·ansible
happymagic2 小时前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
星空你好2 小时前
AI辅助运维:开源一个内网日志监控工具
运维
风曦Kisaki2 小时前
Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
linux·运维·笔记·云原生·容器·kubernetes
Dr.kangder2 小时前
嵌入式处理器仿真技术——Hypervisor 原理与实践
服务器·嵌入式硬件·架构·嵌入式
星蓝_starblue4 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
回眸&啤酒鸭5 小时前
【回眸】搞钱灵感——自动化敏捷开发项目管理系统落地设计
运维·自动化·敏捷流程
Crazy________7 小时前
k8s部署若依微服务架构流程,v3.6.6
运维·云原生·容器·kubernetes·状态模式