活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Rocky Linux企业级服务器性能优化指南从系统配置到资源调优提升服务器运行效率与稳定性的实用技巧

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-22 10:20:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Rocky Linux作为CentOS的替代品,已经成为企业级服务器操作系统的热门选择。它提供了稳定、安全且高性能的平台,适合各种企业应用场景。然而,默认安装的Rocky Linux系统往往没有针对特定工作负载进行优化,这就需要系统管理员进行一系列的性能调优,以充分发挥硬件潜力,提升服务器的运行效率和稳定性。

服务器性能优化是一个系统工程,涉及从硬件到软件的多个层面。本文将详细介绍Rocky Linux企业级服务器的性能优化方法,从系统基础配置到资源调优,提供一系列实用技巧,帮助管理员打造高效稳定的服务环境。

系统基础配置优化

内核参数调整

内核是Linux系统的核心,通过调整内核参数可以显著提升系统性能。Rocky Linux使用sysctl工具来管理内核参数,这些参数可以在/etc/sysctl.conf文件或/etc/sysctl.d/目录下的配置文件中设置。

以下是一些重要的内核参数优化:
  1. # 编辑sysctl配置文件
  2. vi /etc/sysctl.d/99-performance.conf
  3. # 添加以下内容
  4. # 增加文件句柄限制
  5. fs.file-max = 1000000
  6. # 增加inode数量限制
  7. fs.inotify.max_user_instances = 8192
  8. # 优化网络栈
  9. net.core.rmem_max = 16777216
  10. net.core.wmem_max = 16777216
  11. net.ipv4.tcp_rmem = 4096 87380 16777216
  12. net.ipv4.tcp_wmem = 4096 65536 16777216
  13. net.ipv4.tcp_fin_timeout = 30
  14. net.ipv4.tcp_keepalive_time = 1200
  15. net.ipv4.tcp_max_syn_backlog = 8192
  16. net.ipv4.tcp_max_tw_buckets = 5000
  17. net.ipv4.tcp_tw_reuse = 1
  18. net.ipv4.tcp_tw_recycle = 0
  19. net.ipv4.ip_local_port_range = 10000 65000
  20. # 优化虚拟内存管理
  21. vm.swappiness = 10
  22. vm.dirty_ratio = 60
  23. vm.dirty_background_ratio = 2
  24. # 优化内核调度
  25. kernel.sched_min_granularity_ns = 10000000
  26. kernel.sched_wakeup_granularity_ns = 15000000
复制代码

应用这些设置:
  1. # 使配置立即生效
  2. sysctl -p /etc/sysctl.d/99-performance.conf
复制代码

文件系统优化

文件系统的选择和配置对服务器性能有重大影响。Rocky Linux支持多种文件系统,如XFS、ext4等,每种文件系统都有其特点和适用场景。

对于XFS文件系统(Rocky Linux的默认文件系统)的优化:
  1. # 格式化XFS文件系统时指定合适的参数
  2. mkfs.xfs -f -l size=128m -d agcount=16 /dev/sdb1
  3. # 挂载选项优化
  4. vi /etc/fstab
  5. # 添加以下挂载选项
  6. /dev/sdb1 /data xfs defaults,noatime,nodiratime,largeio,inode64,swalloc,logbufs=8,logbsize=256k 0 0
  7. # 重新挂载文件系统
  8. mount -o remount /data
复制代码

对于ext4文件系统的优化:
  1. # 格式化ext4文件系统
  2. mkfs.ext4 -F -m 1 -E stride=128,stripe-width=256 /dev/sdb1
  3. # 挂载选项优化
  4. vi /etc/fstab
  5. # 添加以下挂载选项
  6. /dev/sdb1 /data ext4 defaults,noatime,nodiratime,data=writeback,barrier=0,nobh 0 0
  7. # 重新挂载文件系统
  8. mount -o remount /data
复制代码

网络配置优化

网络性能对于服务器至关重要,特别是对于Web服务器、数据库服务器等网络密集型应用。
  1. # 编辑网络配置文件
  2. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  3. # 添加或修改以下参数
  4. DEVICE=eth0
  5. BOOTPROTO=static
  6. ONBOOT=yes
  7. IPADDR=192.168.1.100
  8. NETMASK=255.255.255.0
  9. GATEWAY=192.168.1.1
  10. DNS1=8.8.8.8
  11. DNS2=8.8.4.4
  12. # 启用网络多队列
  13. ethtool -L eth0 combined 8
  14. # 关闭IPv6(如果不需要)
  15. echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/99-performance.conf
  16. echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/99-performance.conf
  17. # 优化网络中断亲和性
  18. # 安装irqbalance
  19. dnf install -y irqbalance
  20. systemctl enable --now irqbalance
  21. # 配置网络中断亲和性
  22. #!/bin/bash
  23. # 将以下脚本保存为set_irq_affinity.sh并执行
  24. NIC="eth0"
  25. CPU_COUNT=$(lscpu | grep "^CPU(s):" | awk '{print $2}')
  26. IRQS=$(cat /proc/interrupts | grep $NIC | awk '{print $1}' | sed 's/://')
  27. for IRQ in $IRQS; do
  28.     CPU=$((IRQ % CPU_COUNT))
  29.     echo $CPU > /proc/irq/$IRQ/smp_affinity_list
  30. done
复制代码

硬件资源监控与管理

CPU资源管理

CPU是服务器最关键的资源之一,合理管理和优化CPU资源可以显著提升服务器性能。

首先,安装必要的监控工具:
  1. dnf install -y epel-release
  2. dnf install -y htop sysstat perf
复制代码

使用top或htop命令监控CPU使用情况:
  1. htop
复制代码

使用mpstat命令监控每个CPU核心的使用情况:
  1. mpstat -P ALL 1
复制代码

使用perf工具进行更深入的性能分析:
  1. # 记录CPU性能数据
  2. perf record -a
  3. # 分析性能数据
  4. perf report
复制代码

CPU亲和性设置可以提高缓存命中率,减少进程迁移开销:
  1. # 安装taskset工具
  2. dnf install -y util-linux
  3. # 将进程绑定到特定CPU核心
  4. taskset -cp 0,1,2,3 <PID>
  5. # 启动时绑定进程到CPU核心
  6. taskset -c 0,1,2,3 <command>
复制代码

CPU频率调整可以根据负载情况动态调整CPU频率,平衡性能和能耗:
  1. # 安装cpufreq工具
  2. dnf install -y cpupowerutils
  3. # 查看当前CPU频率策略
  4. cpupower frequency-info
  5. # 设置CPU频率调节器为performance
  6. cpupower frequency-set -g performance
  7. # 或者设置为ondemand,根据负载动态调整
  8. cpupower frequency-set -g ondemand
复制代码

内存管理

内存管理是服务器性能优化的关键环节,合理的内存配置可以减少swap使用,提高系统响应速度。

使用free命令查看内存使用情况:
  1. free -h
复制代码

使用vmstat命令监控内存使用情况:
  1. vmstat 1
复制代码

优化内存使用,减少swap:
  1. # 调整swappiness参数,减少swap使用
  2. echo "vm.swappiness = 10" >> /etc/sysctl.d/99-performance.conf
  3. sysctl -p /etc/sysctl.d/99-performance.conf
  4. # 清理页面缓存
  5. echo 1 > /proc/sys/vm/drop_caches
  6. # 清理目录项和inode
  7. echo 2 > /proc/sys/vm/drop_caches
  8. # 清理页面缓存、目录项和inode
  9. echo 3 > /proc/sys/vm/drop_caches
复制代码

使用透明大页(Transparent Huge Pages)可以提高内存访问效率:
  1. # 查看当前透明大页状态
  2. cat /sys/kernel/mm/transparent_hugepage/enabled
  3. cat /sys/kernel/mm/transparent_hugepage/defrag
  4. # 临时禁用透明大页
  5. echo never > /sys/kernel/mm/transparent_hugepage/enabled
  6. echo never > /sys/kernel/mm/transparent_hugepage/defrag
  7. # 永久禁用透明大页(在GRUB配置中添加)
  8. vi /etc/default/grub
  9. # 在GRUB_CMDLINE_LINUX行中添加 transparent_hugepage=never
  10. GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
  11. # 更新GRUB配置
  12. grub2-mkconfig -o /boot/grub2/grub.cfg
  13. # 如果是UEFI系统,使用以下命令
  14. grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
  15. # 重启系统
  16. reboot
复制代码

存储I/O优化

存储I/O性能往往是服务器性能的瓶颈,优化存储I/O可以显著提升服务器整体性能。

使用iostat命令监控磁盘I/O:
  1. iostat -xz 1
复制代码

使用iotop命令监控进程I/O使用情况:
  1. dnf install -y iotop
  2. iotop -o
复制代码

I/O调度器选择对磁盘性能有重要影响:
  1. # 查看当前I/O调度器
  2. cat /sys/block/sda/queue/scheduler
  3. # 临时设置I/O调度器为deadline
  4. echo deadline > /sys/block/sda/queue/scheduler
  5. # 永久设置I/O调度器(在GRUB配置中添加)
  6. vi /etc/default/grub
  7. # 在GRUB_CMDLINE_LINUX行中添加 elevator=deadline
  8. GRUB_CMDLINE_LINUX="... elevator=deadline"
  9. # 更新GRUB配置
  10. grub2-mkconfig -o /boot/grub2/grub.cfg
  11. # 如果是UEFI系统,使用以下命令
  12. grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
  13. # 重启系统
  14. reboot
复制代码

对于SSD存储,可以启用TRIM支持以维持长期性能:
  1. # 检查SSD是否支持TRIM
  2. hdparm -I /dev/sda | grep "TRIM supported"
  3. # 启用TRIM
  4. fstrim -av
  5. # 设置定时TRIM任务
  6. systemctl enable fstrim.timer
  7. systemctl start fstrim.timer
复制代码

使用RAID配置可以提高存储性能和可靠性:
  1. # 安装mdadm工具
  2. dnf install -y mdadm
  3. # 创建RAID 0阵列(提高性能)
  4. mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
  5. # 创建RAID 1阵列(提高可靠性)
  6. mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
  7. # 创建RAID 10阵列(平衡性能和可靠性)
  8. mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  9. # 格式化RAID设备
  10. mkfs.xfs -f /dev/md0
  11. # 挂载RAID设备
  12. mkdir /data
  13. mount /dev/md0 /data
  14. # 更新/etc/fstab
  15. echo "/dev/md0 /data xfs defaults 0 0" >> /etc/fstab
复制代码

服务与应用优化

Web服务器优化

Web服务器是企业中最常见的服务之一,优化Web服务器可以显著提高网站响应速度和并发处理能力。
  1. # 安装Nginx
  2. dnf install -y nginx
  3. # 编辑Nginx主配置文件
  4. vi /etc/nginx/nginx.conf
  5. # 优化Nginx配置
  6. user nginx;
  7. worker_processes auto;
  8. worker_cpu_affinity auto;
  9. worker_rlimit_nofile 100000;
  10. error_log /var/log/nginx/error.log crit;
  11. pid /run/nginx.pid;
  12. events {
  13.     worker_connections 4096;
  14.     multi_accept on;
  15.     use epoll;
  16. }
  17. http {
  18.     include /etc/nginx/mime.types;
  19.     default_type application/octet-stream;
  20.    
  21.     log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  22.                     '$status $body_bytes_sent "$http_referer" '
  23.                     '"$http_user_agent" "$http_x_forwarded_for"';
  24.    
  25.     access_log off;
  26.    
  27.     sendfile on;
  28.     tcp_nopush on;
  29.     tcp_nodelay on;
  30.     keepalive_timeout 30;
  31.     keepalive_requests 100000;
  32.     reset_timedout_connection on;
  33.     client_body_timeout 10;
  34.     send_timeout 2;
  35.    
  36.     # Gzip压缩
  37.     gzip on;
  38.     gzip_disable "msie6";
  39.     gzip_vary on;
  40.     gzip_proxied any;
  41.     gzip_comp_level 6;
  42.     gzip_min_length 1000;
  43.     gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
  44.    
  45.     # 缓存设置
  46.     open_file_cache max=200000 inactive=20s;
  47.     open_file_cache_valid 30s;
  48.     open_file_cache_min_uses 2;
  49.     open_file_cache_errors on;
  50.    
  51.     include /etc/nginx/conf.d/*.conf;
  52. }
  53. # 启动Nginx并设置开机自启
  54. systemctl enable --now nginx
复制代码
  1. # 安装Apache
  2. dnf install -y httpd
  3. # 编辑Apache主配置文件
  4. vi /etc/httpd/conf/httpd.conf
  5. # 优化Apache配置
  6. KeepAlive On
  7. KeepAliveTimeout 5
  8. MaxKeepAliveRequests 100
  9. <IfModule prefork.c>
  10.     StartServers 5
  11.     MinSpareServers 5
  12.     MaxSpareServers 10
  13.     MaxClients 150
  14.     MaxRequestsPerChild 0
  15. </IfModule>
  16. <IfModule worker.c>
  17.     StartServers 2
  18.     MaxClients 150
  19.     MinSpareThreads 25
  20.     MaxSpareThreads 75
  21.     ThreadsPerChild 25
  22.     MaxRequestsPerChild 0
  23. </IfModule>
  24. # 启用HTTP/2支持
  25. vi /etc/httpd/conf.d/ssl.conf
  26. # 添加以下行
  27. Protocols h2 http/1.1
  28. # 启动Apache并设置开机自启
  29. systemctl enable --now httpd
复制代码

数据库优化

数据库是企业应用的核心组件,优化数据库性能对整个系统的响应速度至关重要。
  1. # 安装MariaDB
  2. dnf install -y mariadb-server
  3. # 编辑MariaDB配置文件
  4. vi /etc/my.cnf.d/mariadb-server.cnf
  5. # 添加以下配置
  6. [mysqld]
  7. # 基本设置
  8. character-set-server = utf8mb4
  9. collation-server = utf8mb4_unicode_ci
  10. default-storage-engine = InnoDB
  11. # 内存设置
  12. innodb_buffer_pool_size = 4G  # 设置为系统内存的50-70%
  13. innodb_buffer_pool_instances = 4
  14. innodb_log_file_size = 512M
  15. innodb_log_buffer_size = 64M
  16. innodb_flush_log_at_trx_commit = 2
  17. innodb_flush_method = O_DIRECT
  18. innodb_file_per_table = 1
  19. innodb_read_io_threads = 8
  20. innodb_write_io_threads = 8
  21. innodb_thread_concurrency = 0
  22. # 连接设置
  23. max_connections = 500
  24. max_connect_errors = 100000
  25. back_log = 512
  26. max_allowed_packet = 64M
  27. interactive_timeout = 28800
  28. wait_timeout = 28800
  29. # 查询缓存
  30. query_cache_type = 1
  31. query_cache_size = 256M
  32. query_cache_limit = 4M
  33. # 其他设置
  34. tmp_table_size = 256M
  35. max_heap_table_size = 256M
  36. sort_buffer_size = 4M
  37. read_buffer_size = 3M
  38. read_rnd_buffer_size = 4M
  39. join_buffer_size = 4M
  40. thread_cache_size = 16
  41. table_open_cache = 2048
  42. table_definition_cache = 2048
  43. # 日志设置
  44. slow_query_log = 1
  45. slow_query_log_file = /var/log/mariadb/slow.log
  46. long_query_time = 2
  47. log_queries_not_using_indexes = 1
  48. # 启动MariaDB并设置开机自启
  49. systemctl enable --now mariadb
  50. # 安全初始化
  51. mysql_secure_installation
复制代码
  1. # 安装PostgreSQL
  2. dnf install -y postgresql-server postgresql-contrib
  3. # 初始化数据库
  4. postgresql-setup --initdb
  5. # 编辑PostgreSQL配置文件
  6. vi /var/lib/pgsql/data/postgresql.conf
  7. # 优化PostgreSQL配置
  8. # 连接设置
  9. max_connections = 200
  10. superuser_reserved_connections = 10
  11. # 内存设置
  12. shared_buffers = 1GB  # 设置为系统内存的25%
  13. effective_cache_size = 3GB  # 设置为系统内存的50-75%
  14. work_mem = 16MB
  15. maintenance_work_mem = 256MB
  16. wal_buffers = 16MB
  17. checkpoint_segments = 32
  18. checkpoint_completion_target = 0.9
  19. checkpoint_timeout = 15min
  20. # 查询优化
  21. random_page_cost = 2.0
  22. effective_io_concurrency = 200
  23. default_statistics_target = 100
  24. # 日志设置
  25. log_destination = 'stderr'
  26. logging_collector = on
  27. log_directory = 'pg_log'
  28. log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
  29. log_statement = 'none'
  30. log_min_duration_statement = 1000
  31. log_checkpoints = on
  32. log_connections = on
  33. log_disconnections = on
  34. log_lock_waits = on
  35. # 启动PostgreSQL并设置开机自启
  36. systemctl enable --now postgresql
复制代码

其他常见服务优化
  1. # 安装Redis
  2. dnf install -y redis
  3. # 编辑Redis配置文件
  4. vi /etc/redis.conf
  5. # 优化Redis配置
  6. # 内存设置
  7. maxmemory 1gb
  8. maxmemory-policy allkeys-lru
  9. # 持久化设置
  10. save 900 1
  11. save 300 10
  12. save 60 10000
  13. stop-writes-on-bgsave-error yes
  14. rdbcompression yes
  15. rdbchecksum yes
  16. # 日志设置
  17. loglevel notice
  18. logfile /var/log/redis/redis.log
  19. # 网络设置
  20. tcp-backlog 511
  21. timeout 0
  22. tcp-keepalive 300
  23. # 启动Redis并设置开机自启
  24. systemctl enable --now redis
复制代码
  1. # 安装Memcached
  2. dnf install -y memcached
  3. # 编辑Memcached配置文件
  4. vi /etc/sysconfig/memcached
  5. # 优化Memcached配置
  6. PORT="11211"
  7. USER="memcached"
  8. MAXCONN="1024"
  9. CACHESIZE="1024"
  10. OPTIONS="-l 127.0.0.1,::1 -t 8 -c 2048 -m 2048"
  11. # 启动Memcached并设置开机自启
  12. systemctl enable --now memcached
复制代码

安全性与性能平衡

在优化服务器性能的同时,不能忽视安全性。安全配置往往会对性能产生一定影响,需要在安全性和性能之间找到平衡点。

防火墙优化
  1. # 安装Firewalld
  2. dnf install -y firewalld
  3. # 启动Firewalld并设置开机自启
  4. systemctl enable --now firewalld
  5. # 配置防火墙规则
  6. firewall-cmd --permanent --add-service=http
  7. firewall-cmd --permanent --add-service=https
  8. firewall-cmd --permanent --add-service=ssh
  9. firewall-cmd --permanent --add-port=3306/tcp  # MySQL端口
  10. firewall-cmd --permanent --add-port=6379/tcp  # Redis端口
  11. # 重新加载防火墙规则
  12. firewall-cmd --reload
  13. # 优化防火墙性能
  14. # 增加连接跟踪表大小
  15. echo "net.netfilter.nf_conntrack_max = 1000000" >> /etc/sysctl.d/99-performance.conf
  16. echo "net.netfilter.nf_conntrack_tcp_timeout_established = 3600" >> /etc/sysctl.d/99-performance.conf
  17. sysctl -p /etc/sysctl.d/99-performance.conf
复制代码

SELinux优化

SELinux提供了强大的安全保护,但可能对性能产生一定影响。可以根据实际需求调整SELinux策略。
  1. # 检查SELinux状态
  2. sestatus
  3. # 临时设置为宽松模式
  4. setenforce 0
  5. # 永久设置为宽松模式
  6. vi /etc/selinux/config
  7. # 修改SELINUX=permissive
  8. # 优化SELinux性能
  9. # 安装setroubleshoot工具
  10. dnf install -y setroubleshoot-server
  11. # 查看SELinux拒绝日志
  12. sealert -a /var/log/audit/audit.log
  13. # 为特定服务创建SELinux策略模块
  14. # 例如,为Nginx创建策略
  15. ausearch -c 'nginx' --raw | audit2allow -M my-nginx
  16. semodule -i my-nginx.pp
复制代码

SSH安全与性能优化
  1. # 编辑SSH配置文件
  2. vi /etc/ssh/sshd_config
  3. # 优化SSH配置
  4. # 禁用DNS反向解析
  5. UseDNS no
  6. # 启用压缩
  7. Compression yes
  8. # 使用更高性能的加密算法
  9. Ciphers chacha20-poly1305@openssl.com,aes256-gcm@openssl.com,aes128-gcm@openssl.com,aes256-ctr,aes192-ctr,aes128-ctr
  10. MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256
  11. # 禁用不安全的认证方式
  12. PasswordAuthentication no
  13. ChallengeResponseAuthentication no
  14. UsePAM no
  15. # 重启SSH服务
  16. systemctl restart sshd
复制代码

性能监控与故障排除

持续的性能监控和及时的故障排除是保证服务器稳定运行的关键。

系统监控工具
  1. # 安装Prometheus
  2. dnf install -y prometheus node_exporter
  3. # 配置Prometheus
  4. vi /etc/prometheus/prometheus.yml
  5. # 添加以下配置
  6. global:
  7.   scrape_interval: 15s
  8. scrape_configs:
  9.   - job_name: 'prometheus'
  10.     static_configs:
  11.       - targets: ['localhost:9090']
  12.   - job_name: 'node'
  13.     static_configs:
  14.       - targets: ['localhost:9100']
  15. # 启动Prometheus和Node Exporter
  16. systemctl enable --now prometheus
  17. systemctl enable --now node_exporter
  18. # 安装Grafana
  19. dnf install -y grafana
  20. # 启动Grafana
  21. systemctl enable --now grafana
  22. # 访问Grafana Web界面(http://your-server-ip:3000)并配置数据源
复制代码
  1. # 安装Zabbix仓库
  2. rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
  3. dnf clean all
  4. # 安装Zabbix Server
  5. dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
  6. # 安装MariaDB并创建数据库
  7. dnf install -y mariadb-server
  8. systemctl enable --now mariadb
  9. mysql -u root -p
  10. CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
  11. CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
  12. GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
  13. FLUSH PRIVILEGES;
  14. EXIT;
  15. # 导入Zabbix数据库架构
  16. zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
  17. # 配置Zabbix Server
  18. vi /etc/zabbix/zabbix_server.conf
  19. # 修改以下参数
  20. DBPassword=password
  21. # 配置PHP时区
  22. vi /etc/php-fpm.d/zabbix.conf
  23. # 修改以下参数
  24. php_value[date.timezone] = Asia/Shanghai
  25. # 启动Zabbix Server和Agent
  26. systemctl enable --now zabbix-server zabbix-agent httpd php-fpm
  27. # 访问Zabbix Web界面(http://your-server-ip/zabbix)并完成安装
复制代码

性能分析工具
  1. # 安装perf
  2. dnf install -y perf
  3. # 记录CPU性能数据
  4. perf record -a -g
  5. # 分析性能数据
  6. perf report
  7. # 生成火焰图
  8. # 安装必要的工具
  9. dnf install -y git perl cpan
  10. cpan App::cpanminus
  11. cpanm JSON::MaybeXS
  12. # 克隆FlameGraph仓库
  13. git clone https://github.com/brendangregg/FlameGraph.git
  14. # 生成火焰图
  15. perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > flamegraph.svg
复制代码
  1. # 安装sysstat
  2. dnf install -y sysstat
  3. # 启用sysstat数据收集
  4. vi /etc/default/sysstat
  5. # 修改ENABLED="true"
  6. # 启动sysstat服务
  7. systemctl enable --now sysstat
  8. # 使用sar命令查看CPU使用情况
  9. sar -u 1 5
  10. # 使用sar命令查看内存使用情况
  11. sar -r 1 5
  12. # 使用sar命令查看磁盘I/O情况
  13. sar -b 1 5
  14. # 使用sar命令查看网络使用情况
  15. sar -n DEV 1 5
复制代码

常见性能问题及解决方案
  1. # 查找CPU使用率高的进程
  2. top -o %CPU
  3. # 查找CPU使用率高的线程
  4. top -H -p <PID>
  5. # 使用perf分析CPU使用情况
  6. perf top -p <PID>
  7. # 解决方案:
  8. # 1. 优化应用程序代码
  9. # 2. 增加CPU资源
  10. # 3. 调整进程优先级
  11. renice -n 10 -p <PID>
  12. # 4. 限制进程CPU使用率
  13. dnf install -y cpulimit
  14. cpulimit -p <PID> -l 50
复制代码
  1. # 查找内存使用率高的进程
  2. top -o %MEM
  3. # 查看进程内存映射
  4. cat /proc/<PID>/maps
  5. # 使用smem分析内存使用情况
  6. dnf install -y smem
  7. smem -t -k -p
  8. # 解决方案:
  9. # 1. 优化应用程序内存使用
  10. # 2. 增加物理内存
  11. # 3. 调整内核参数减少swap使用
  12. echo "vm.swappiness = 10" >> /etc/sysctl.d/99-performance.conf
  13. sysctl -p /etc/sysctl.d/99-performance.conf
  14. # 4. 清理页面缓存
  15. echo 1 > /proc/sys/vm/drop_caches
复制代码
  1. # 监控磁盘I/O
  2. iostat -xz 1
  3. # 查找I/O使用率高的进程
  4. iotop -o
  5. # 解决方案:
  6. # 1. 优化应用程序I/O模式
  7. # 2. 使用更快的存储设备
  8. # 3. 调整I/O调度器
  9. echo deadline > /sys/block/sda/queue/scheduler
  10. # 4. 增加文件系统缓存
  11. echo "vm.dirty_ratio = 60" >> /etc/sysctl.d/99-performance.conf
  12. echo "vm.dirty_background_ratio = 2" >> /etc/sysctl.d/99-performance.conf
  13. sysctl -p /etc/sysctl.d/99-performance.conf
复制代码
  1. # 监控网络使用情况
  2. sar -n DEV 1 5
  3. # 查看网络连接状态
  4. ss -tuln
  5. # 查看网络连接数
  6. ss -s
  7. # 解决方案:
  8. # 1. 优化网络配置
  9. echo "net.core.rmem_max = 16777216" >> /etc/sysctl.d/99-performance.conf
  10. echo "net.core.wmem_max = 16777216" >> /etc/sysctl.d/99-performance.conf
  11. echo "net.ipv4.tcp_rmem = 4096 87380 16777216" >> /etc/sysctl.d/99-performance.conf
  12. echo "net.ipv4.tcp_wmem = 4096 65536 16777216" >> /etc/sysctl.d/99-performance.conf
  13. sysctl -p /etc/sysctl.d/99-performance.conf
  14. # 2. 使用负载均衡
  15. # 3. 优化应用程序网络使用
  16. # 4. 增加网络带宽
复制代码

最佳实践与案例分析

Web服务器性能优化案例

某电子商务网站在促销活动期间面临高并发访问,导致网站响应缓慢,甚至出现服务不可用的情况。通过以下优化措施,成功提升了网站性能:

1. 硬件升级:将服务器内存从16GB增加到64GB使用SSD替换传统HDD增加CPU核心数
2. 将服务器内存从16GB增加到64GB
3. 使用SSD替换传统HDD
4. 增加CPU核心数
5.
  1. Nginx优化:
  2. “`nginx
  3. worker_processes auto;
  4. worker_cpu_affinity auto;
  5. worker_rlimit_nofile 100000;
复制代码

硬件升级:

• 将服务器内存从16GB增加到64GB
• 使用SSD替换传统HDD
• 增加CPU核心数

Nginx优化:
“`nginx
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 100000;

events {
  1. worker_connections 4096;
  2.    multi_accept on;
  3.    use epoll;
复制代码

}

http {
  1. sendfile on;
  2.    tcp_nopush on;
  3.    tcp_nodelay on;
  4.    keepalive_timeout 30;
  5.    keepalive_requests 100000;
  6.    reset_timedout_connection on;
  7.    gzip on;
  8.    gzip_comp_level 6;
  9.    gzip_min_length 1000;
  10.    open_file_cache max=200000 inactive=20s;
  11.    open_file_cache_valid 30s;
  12.    open_file_cache_min_uses 2;
  13.    open_file_cache_errors on;
  14.    # 启用缓存
  15.    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
  16.    server {
  17.        listen 80;
  18.        server_name example.com;
  19.        location / {
  20.            proxy_pass http://backend;
  21.            proxy_cache my_cache;
  22.            proxy_cache_valid 200 302 10m;
  23.            proxy_cache_valid 404 1m;
  24.        }
  25.    }
复制代码

}
  1. 3. **PHP-FPM优化**:
  2.    ```ini
  3.    [www]
  4.    pm = dynamic
  5.    pm.max_children = 100
  6.    pm.start_servers = 20
  7.    pm.min_spare_servers = 10
  8.    pm.max_spare_servers = 30
  9.    pm.max_requests = 1000
复制代码

1.
  1. 数据库优化:[mysqld]
  2. innodb_buffer_pool_size = 32G
  3. innodb_buffer_pool_instances = 8
  4. innodb_log_file_size = 2G
  5. innodb_flush_log_at_trx_commit = 2
  6. innodb_flush_method = O_DIRECT
  7. max_connections = 500
  8. query_cache_size = 512M
复制代码
2. Redis缓存优化:maxmemory 16gb
maxmemory-policy allkeys-lru
save 900 1
save 300 10
save 60 10000

数据库优化:
  1. [mysqld]
  2. innodb_buffer_pool_size = 32G
  3. innodb_buffer_pool_instances = 8
  4. innodb_log_file_size = 2G
  5. innodb_flush_log_at_trx_commit = 2
  6. innodb_flush_method = O_DIRECT
  7. max_connections = 500
  8. query_cache_size = 512M
复制代码

Redis缓存优化:
  1. maxmemory 16gb
  2. maxmemory-policy allkeys-lru
  3. save 900 1
  4. save 300 10
  5. save 60 10000
复制代码

通过以上优化措施,网站在促销活动期间能够稳定运行,页面加载时间从平均3秒减少到800毫秒,并发处理能力从每秒500请求提升到每秒5000请求。

数据库服务器性能优化案例

某大型企业的数据库服务器面临查询性能问题,特别是在高峰期,响应时间明显增加。通过以下优化措施,成功提升了数据库性能:

1. 硬件升级:将服务器内存从32GB增加到128GB使用高性能SSD阵列增加CPU核心数
2. 将服务器内存从32GB增加到128GB
3. 使用高性能SSD阵列
4. 增加CPU核心数
5.
  1. MySQL/MariaDB优化:[mysqld]
  2. innodb_buffer_pool_size = 96G
  3. innodb_buffer_pool_instances = 16
  4. innodb_log_file_size = 4G
  5. innodb_log_buffer_size = 256M
  6. innodb_flush_log_at_trx_commit = 2
  7. innodb_flush_method = O_DIRECT
  8. innodb_file_per_table = 1
  9. innodb_read_io_threads = 16
  10. innodb_write_io_threads = 16
  11. innodb_thread_concurrency = 0
  12. max_connections = 1000
  13. max_connect_errors = 100000
  14. back_log = 1024
  15. max_allowed_packet = 128M
  16. query_cache_type = 1
  17. query_cache_size = 1G
  18. query_cache_limit = 8M
  19. tmp_table_size = 512M
  20. max_heap_table_size = 512M
  21. sort_buffer_size = 8M
  22. read_buffer_size = 4M
  23. read_rnd_buffer_size = 8M
  24. join_buffer_size = 8M
  25. thread_cache_size = 32
  26. table_open_cache = 4096
  27. table_definition_cache = 4096
复制代码
6. 查询优化:使用EXPLAIN分析慢查询为常用查询字段添加索引优化复杂查询,分解为多个简单查询使用存储过程减少网络往返
7. 使用EXPLAIN分析慢查询
8. 为常用查询字段添加索引
9. 优化复杂查询,分解为多个简单查询
10. 使用存储过程减少网络往返
11.
  1. 主从复制优化:
  2. “`ini主服务器配置[mysqld]
  3. server-id = 1
  4. log-bin = mysql-bin
  5. binlog_format = ROW
  6. binlog_row_image = MINIMAL
  7. sync_binlog = 0
  8. innodb_flush_log_at_trx_commit = 2
复制代码

硬件升级:

• 将服务器内存从32GB增加到128GB
• 使用高性能SSD阵列
• 增加CPU核心数

MySQL/MariaDB优化:
  1. [mysqld]
  2. innodb_buffer_pool_size = 96G
  3. innodb_buffer_pool_instances = 16
  4. innodb_log_file_size = 4G
  5. innodb_log_buffer_size = 256M
  6. innodb_flush_log_at_trx_commit = 2
  7. innodb_flush_method = O_DIRECT
  8. innodb_file_per_table = 1
  9. innodb_read_io_threads = 16
  10. innodb_write_io_threads = 16
  11. innodb_thread_concurrency = 0
  12. max_connections = 1000
  13. max_connect_errors = 100000
  14. back_log = 1024
  15. max_allowed_packet = 128M
  16. query_cache_type = 1
  17. query_cache_size = 1G
  18. query_cache_limit = 8M
  19. tmp_table_size = 512M
  20. max_heap_table_size = 512M
  21. sort_buffer_size = 8M
  22. read_buffer_size = 4M
  23. read_rnd_buffer_size = 8M
  24. join_buffer_size = 8M
  25. thread_cache_size = 32
  26. table_open_cache = 4096
  27. table_definition_cache = 4096
复制代码

查询优化:

• 使用EXPLAIN分析慢查询
• 为常用查询字段添加索引
• 优化复杂查询,分解为多个简单查询
• 使用存储过程减少网络往返

主从复制优化:
“`ini

[mysqld]
server-id = 1
log-bin = mysql-bin
binlog_format = ROW
binlog_row_image = MINIMAL
sync_binlog = 0
innodb_flush_log_at_trx_commit = 2

# 从服务器配置
   [mysqld]
   server-id = 2
   relay-log = relay-bin
   read_only = 1
   slave_parallel_workers = 8
   slave_pending_jobs_size_max = 128M
   “`

1. 分库分表策略:按业务模块分库按时间范围分表使用中间件实现分库分表路由
2. 按业务模块分库
3. 按时间范围分表
4. 使用中间件实现分库分表路由

• 按业务模块分库
• 按时间范围分表
• 使用中间件实现分库分表路由

通过以上优化措施,数据库查询响应时间从平均2秒减少到200毫秒,并发处理能力从每秒1000查询提升到每秒10000查询,系统稳定性显著提高。

总结

Rocky Linux企业级服务器性能优化是一个系统工程,涉及从硬件到软件的多个层面。本文详细介绍了系统基础配置优化、硬件资源监控与管理、服务与应用优化、安全性与性能平衡、性能监控与故障排除等方面的内容,并提供了实际案例分析。

在实际优化过程中,需要根据服务器的具体用途和工作负载特点,有针对性地进行优化。同时,性能优化是一个持续的过程,需要不断监控、分析和调整。通过合理的性能优化,可以充分发挥硬件潜力,提升服务器的运行效率和稳定性,为企业提供更优质的服务。

希望本文提供的Rocky Linux企业级服务器性能优化指南能够帮助系统管理员更好地管理和优化服务器,为企业创造更大的价值。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则