提高小型办公室 MySQL 服务器的速度

提高小型办公室 MySQL 服务器的速度

我在一个小型开发团队工作 - PHP/MySQL 应用程序。

每位内部开发人员都安装了 Apache/PHP,并访问安装了 MySQL 5.1 的 Windows 7 机器。机器是 32 位、奔腾 D、4GB 内存,没有使用 my.cnf 进行任何调整。网络位于千兆交换机、千兆 NIC 上。

我很好奇为什么这个设置速度这么慢。从我的桌面访问此服务器上的空数据库非常慢。仅列出数据库就需要 5 秒钟左右。

我不指望它能像我们的生产集群@Softlayer 一样快,但是 5 秒钟显示一个空数据库似乎有点多。

有没有人做过具体的事情来加速利用数据库服务器的办公室开发设置?

答案1

这听起来可能有点奇怪,但请检查 MySQL 服务器是否能够快速正确地解析域名。某些查询浏览器会随每个命令发送身份验证,如果您的解析器速度较慢,则会降低性能。

当我们的内部 DNS 因维护而停机时,我们曾经遇到过非常类似的问题。

答案2

在my.cnf中添加:

skip_name_resolve在 [mysqld_safe] 和 [mysqld] 部分

答案3

根据您提到的配置,即使没有任何优化/调整,它也不应该这么慢。很可能还有其他问题。

尝试在同一台 Windows 7 机器上使用 mysql 客户端,看看它们是否很慢。至少这将有助于确定问题是否与网络有关。

如果问题与网络有关,那么使用 wireshark 捕获数据包来查看网络上的实际情况对于解决延迟问题非常有帮助。

如果问题与主机相关,请检查:

  1. 硬盘剩余空间有多少以及分区是否碎片太多。
  2. 是否有其他进程占用 RAM
  3. 是否有其他进程正在使用 CPU
  4. 查看 MySQL 日志,查看 MySQL 是否报告了某些问题。

答案4

日志肯定会在这里有所帮助 -

我将从一些基本的 MySQL 监控开始 - 以下一些工具可能会有所帮助:

  1. top(Linux 中的默认设置)
  2. mtop:http://mtop.sourceforge.net
  3. 创新: http://innotop.sourceforge.net

您也可以通过命令行(cli)使用 MySQL 监控工具

# mysqladmin processlist 
# mysqladmin proc

遗憾的是 - 许多人会使用 /usr/share/mysql 下提供的默认模板

我强烈建议跳过它们- 它们已经很旧并且不值得使用,原因如下:

  • 某些操作系统或 MySQL 版本的设置无效(例如,thread_concurrency 和 skip-locking)
  • 添加你可能不理解的巨大数组变量
  • 与其他设置进行测试时的性能不仅仅是值得怀疑的

运行这些并进行一些调整后,让 mysql 运行至少 24-48 小时,然后使用以下诊断工具:

  1. MySQL 调谐器(只需在 Linux 中输入 wget mysqltuner.pl 即可下载,然后 chmod755 mysqltuner.pl 并通过执行 ./mysqltuner.pl 来运行它;-)

  2. mysqlidxchk

    (通过 wget hackmysql.com/scripts/mysqlidxchk-1.1 chmod 755 mysqlidxchk* mv mysqlidxchk* mysqlidxchk 安装)然后通过执行以下操作运行:(./mysqlidxchk --general /var/lib/mysql/ general.log)

如果您在安装这些内容时也需要帮助,请告诉我

PS-其中大多数都是仅适用于Linux的脚本-但对您的mySQL服务器的调整和管理将有很大帮助。

最后,使用像 mysqlsla 和 mysqlreport 这样的好的日志解析工具来报告状态

相关内容