系统调优问题:系统调优参数设置不当,影响系统性能

1. 调整文件描述符限制

文件描述符限制会影响系统能够同时打开的文件数量。可以通过修改 /etc/security/limits.conf 文件来调整:

# /etc/security/limits.conf 
* soft nofile 65535
* hard nofile 65535

2. 调整内核参数

内核参数可以通过修改 /etc/sysctl.conf 文件来调整。以下是一些常见的内核参数:

  • 网络参数
    • net.core.somaxconn :最大监听队列长度。
    • net.ipv4.tcp_max_syn_backlog :SYN队列的最大长度。
    • net.ipv4.tcp_tw_reuse :允许重用TIME-WAIT状态的套接字。
    • net.ipv4.tcp_tw_recycle :允许快速回收TIME-WAIT状态的套接字(注意:此参数在较新的内核版本中已弃用)。
    • net.ipv4.tcp_fin_timeout :FIN_WAIT_2状态的超时时间。
# /etc/sysctl.conf 
net.core.somaxconn  = 65535
net.ipv4.tcp_max_syn_backlog  = 65535
net.ipv4.tcp_tw_reuse  = 1 
net.ipv4.tcp_fin_timeout  = 15

应用这些内核参数:

sysctl -p

3. 调整进程调度策略

对于高优先级的进程,可以使用 nice 和 renice 命令来调整其优先级:

# 设置进程启动时的优先级
nice -n -10 /path/to/your/application
 
# 调整正在运行的进程的优先级 
renice -n -10 -p <PID>

4. 调整磁盘 I/O 性能

  • I/O 调度器:选择合适的 I/O 调度器可以提高磁盘 I/O 性能。常见的 I/O 调度器有 cfq(完全公平队列)、deadline(截止时间)、noop(无操作)和 bfq(预算公平队列)。

    查看当前 I/O 调度器:

    cat /sys/block/sda/queue/scheduler
    

    设置 I/O 调度器:

    echo deadline > /sys/block/sda/queue/scheduler 
    
  • 预读取大小:调整文件系统的预读取大小可以提高读取性能。

    修改 /etc/fstab 文件中的 noatime 和 nodiratime 选项:

    # /etc/fstab
    UUID=xxxx-xxxx-xxxx-xxxx / ext4 defaults,noatime,nodiratime 0 1 
    

5. 调整内存管理

  • 交换分区:合理配置交换分区可以避免系统因内存不足而崩溃。

    查看当前交换分区:

    swapon -s 
    

    添加新的交换分区:

    fallocate -l 4G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile 
    swapon /swapfile
    

    修改 /etc/fstab 文件,使交换分区在系统重启后仍然生效:

    # /etc/fstab
    /swapfile none swap sw 0 0
    
  • 透明大页:禁用透明大页可以减少内存碎片,提高内存管理效率。

    修改 /etc/default/grub 文件:

    GRUB_CMDLINE_LINUX="transparent_hugepage=never"
    

    更新 GRUB 配置并重启系统:

    grub2-mkconfig -o /boot/grub2/grub.cfg 
    reboot
    

6. 使用性能监控工具

使用性能监控工具如 tophtopiostatvmstat 和 netstat 来监控系统资源使用情况,及时发现性能瓶颈。

  • CPU 和内存

    top
    htop
    
  • 磁盘 I/O

    iostat -x 1 10 
    
  • 网络

    netstat -an | grep ESTABLISHED | wc -l
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容