实战目标与适用场景
基线准备与系统加固
sudo dnf update -y && sudo dnf install epel-release -ysudo useradd -m -s /bin/bash ops && sudo usermod -aG wheel opssudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config 与 sudo sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config,随后 sudo systemctl restart sshdsudo systemctl enable --now firewalld,按需放行业务端口(见下一节 MQTT 示例)。sudo dnf install chrony -y && sudo systemctl enable --now chronyd(或安装 ntp/ntpd 并启用)。内核与网络优化
fs.file-max = 2097152、fs.nr_open = 2097152net.core.somaxconn = 65535、net.core.netdev_max_backlog = 65536、net.ipv4.tcp_max_syn_backlog = 65536net.ipv4.tcp_keepalive_time = 600、net.ipv4.tcp_keepalive_probes = 3、net.ipv4.tcp_keepalive_intvl = 15echo 'fs.file-max=2097152' | sudo tee -a /etc/sysctl.conf && echo 'net.core.somaxconn=65535' | sudo tee -a /etc/sysctl.conf && sudo sysctl -pvm.dirty_ratio = 50、vm.dirty_background_ratio = 10cat /sys/block/sda/queue/scheduler 与 echo deadline | sudo tee /sys/block/sda/queue/schedulernet.ipv4.tcp_tw_recycle;如需缓解 TIME_WAIT,优先使用 tcp_tw_reuse 与合理的连接复用/超时策略。存储与文件系统优化
/etc/fstab 中为数据盘增加 noatime,nodiratime,减少元数据写入;示例:/dev/sdb1 /data ext4 defaults,noatime,nodiratime 0 0cache=none 并配合 OSD/客户端调优,降低额外缓存层带来的不一致与抖动。fio 进行 4K/16K 随机读写与不同 iodepth 的压测,验证调度器、队列深度与缓存策略的组合效果。实战案例一 物联网 MQTT 高并发接入
sudo dnf install epel-release -y && sudo dnf install emqx-enterprise -ysudo firewall-cmd --permanent --add-port=1883/tcp && sudo firewall-cmd --permanent --add-port=8883/tcp && sudo firewall-cmd --reloadsudo certbot certonly --standalone -d mqtt.example.com/etc/emqx/certs/,配置 listeners.ssl.default 的 keyfile 与 certfile。listeners.ssl.default { bind = "0.0.0.0:8883"; max_connections = 100000; ssl_options { keyfile = "/etc/emqx/certs/privkey.pem"; certfile = "/etc/emqx/certs/fullchain.pem"; } }emqx_ctl users add device_001 $6$rounds=10000$somesalt$hashed_password{allow, {user, "device_001"}, publish, ["sensors/001/#"]}、{allow, {user, "backend"}, subscribe, ["sensors/#"]}、{deny, all}实战案例二 Web 与 PHP 应用加速
/etc/php.d/10-opcache.ini:opcache.enable=1、opcache.memory_consumption=128、opcache.max_accelerated_files=10000、opcache.validate_timestamps=0(生产建议关闭时间戳验证,配合部署流程刷新)。/etc/php-fpm.d/www.conf:pm = ondemand(或 dynamic),pm.max_children = 50、pm.start_servers = 4、pm.min_spare_servers = 2、pm.max_spare_servers = 6sudo systemctl reload php-fpmopcache.jit_buffer_size=256M、opcache.jit=1235php -r "echo json_encode(opcache_get_status());" | grep jitted_functions_count验证与回滚
ss -s、netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'、sar -n TCP,ETCP 1 60cat /proc/sys/fs/file-nriostat -x 1 60、vmstat 1 60emqx_ctl listeners、emqx_ctl status;PHP 用 ab/wrk 与业务关键路径 P95/P99。/etc/sysctl.conf、/etc/fstab、sshd_config)修改前先备份;异常时按备份快速恢复并降级参数。