数据库专用机的配置逻辑
发布时间:2026-06-09 10:44       
更新时间:2026-06-10 01:09
数据库对服务器的要求,和网站完全是两回事。网站吃带宽,数据库吃内存和磁盘的随机读写,把两者混在一台机器上,高峰期互相抢资源,慢起来连原因都难查。稍微正式一点的业务,都值得给数据库单独一台机器。
一、内存是第一优先级
MySQL 的 InnoDB 引擎靠缓冲池把热点数据留在内存里,缓冲池越大,读盘越少。常见做法是把 innodb_buffer_pool_size 设为内存的一半到七成,8G 内存的机器配 4G 到 5G,剩余留给连接和临时表。连接数也吃内存,每个连接按几 MB 到几十 MB 预留,max_connections 别照抄网上的大数,按内存倒推着设。内存不够时数据库大量读盘,查询速度掉得非常明显。
二、磁盘看随机 IOPS
数据库读写以小块随机为主,机械盘和普通 SATA 盘撑不住,NVMe 固态盘(走 PCIe 高速通道的固态硬盘)的随机性能通常是 SATA 盘的数倍。选配置优先看 IOPS(每秒读写次数)指标,其次才看容量。判断磁盘跟不跟得上,用 iostat -x 1 看利用率,长期高于八成就是瓶颈在盘。数据量大、要求稳的库,顺云的裸金属物理机 B4 独享整块物理资源,更让人放心。
三、这台机器别跑别的
专用机的意思是"专用":不要再装缓存服务、跑编译、解压大文件,这些都是 IO 大户,会和数据库抢磁盘。crontab 里只留数据库自身的备份项,备份安排在业务低峰执行,主从复制的机器也要单独算资源。
四、系统层的小调整
Linux 默认的交换倾向对数据库不友好,建议调低:
sysctl -w vm.swappiness=1
要写入 /etc/sysctl.conf 才能在重启后生效。文件句柄数也建议放大,默认值对长连接业务偏低,改到 65535 以上再用。慢查询日志同步开起来:slow_query_log=1,把长查询先抓出来,再谈索引优化。
选型上,轻量业务用高防云服务器 S4-8G 这类内存升级款起步,数据量和连接数上来再换 B4。下单前先估半年的数据量,留足余量,比事后迁移省事得多。