我想知道在 Linux 服务器上通过 my.cnf 或其他方法、库和工具对 MySQL 性能进行微调的所有关键点。也欢迎提供技巧和窍门以及一些不为人知的东西。
由于目标服务器体系结构很重要,您可以围绕这个示例目标体系结构来回答问题:
1 GB RAM(非 ecc)
2.2GHz 双至强
文件系统 ext3 或 reiserfs (欢迎提出建议)
7200 RPM 硬盘
安装几个 Wordpress 程序,每秒至少有 5-10 个请求。
如果你问我,这是一个相当常见的设置,没什么特别的。
因此,我想听听您的意见,如何调整这样的目标服务器上的 MySQL 安装,直到您从 MySQL 服务器的角度无法真正做太多事情来提高性能。
答案1
你仍然可以在 MySQL 中做很多事情来提高此设置的性能,我在我的服务器上使用 MySQL primer 来微调所有与内存相关的参数(你可以从这里)。
文件系统对于 MySQL 来说也很重要但并不关键,我一直在 reiserfs 和 ext3 中使用它(如果使用 ext3 则尝试添加noatime,nodiratime
)/etc/fstab
,结果几乎相同。
同样非常重要的是您有多少可用内存,当然越多越好!
我的建议是,坚持使用您熟悉的服务器场景,然后启动 mysql 并开始使用入门进行微调,您的 5-10 查询/秒场景看起来相当轻松,并且会给您很大的改进空间。
答案2
答案3
这个问题不可能在这里回答。要学的东西实在太多了。你可以先详细阅读 MySQL 手册。然后去买一两本书Mysql 调优以及Linux 性能调优。这些不会(不能)为您提供您正在寻找的答案 - 它们会向您展示设置如何影响行为以及如何衡量对应用程序的最终影响。这个问题没有通用的解决方案 - 尽管 Linux 和 MySQL 都有很好的默认设置。
一旦你完全理解了这些书中的所有内容,你就可以开始对系统进行更改。你需要收集统计数据并审查每项更改以衡量其有效性 - 但你还需要了解目标搜索中的局部最小值问题。
您可能会发现 mysqltuner 很有用 - 但您需要能够判断其建议的影响(特别是对于振荡建议)并衡量其对您的系统的影响。