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

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

每个内部开发人员安装了Apache / PHP,并且正在访问安装了MySQL 5.1的Windows 7机器。 盒子是32位,奔腾D,4GB RAM,没有任何与my.cnf调整。 networking在千兆交换机上,千兆网卡。

我很好奇为什么这个设置显然很慢。 从我的桌面访问此服务器上的空数据库是非常慢。 5秒左右就可以列出数据库。

我不认为它和我们的产品集群@Softlayer一样快,但是显示一个空数据库5秒似乎有点多。

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

这可能听起来有点奇怪,但请检查MySQL服务器是否能够快速正确地parsing域。 一些查询浏览器发送每个命令的身份validation,如果你有缓慢的parsing器杀死性能。

当我们的内部DNS停机维护时,我们遇到了一个类似的问题。

在my.cnf中添加:

在[mysqld_safe]和[mysqld]部分中的skip_name_resolve

根据你提到的configuration,即使没有任何优化/调整,它也不应该太慢。 最可能还有一些其他问题。

尝试在相同的Windows 7机器上使用mysql客户端,看看他们是否慢。 至less这将有助于决定问题是否与networking有关。

如果问题与networking相关,那么使用wireshark捕获数据包以查看实际上在线上的数据对于排除延迟问题非常有帮助。

如果问题是主机相关检查:

  1. 有多less硬盘空间是免费的,分区是非常分散的。
  2. 还有一些进程正在吃RAM吗?
  3. 是使用CPU的其他一些进程
  4. 通过MySQL日志来查看MySQL是否报告了一些问题。

日志将在这里最有帮助 –

我将从一些基本的MySQL监控开始 – 这里可能有一些帮助的工具是:

  1. 顶部(在Linux中默认)
  2. mtop: http ://mtop.sourceforge.net
  3. innotop: http : //innotop.sourceforge.net

您也可以从命令行(cli)使用MySQL监视工具

 # mysqladmin processlist # mysqladmin proc 

可悲的是 – 很多人会使用/ usr / share / mysql下的默认模板

我强烈build议跳过他们 – 他们是旧的,不值得使用的原因如下:

  • 某些操作系统或MySQL版本的设置无效(例如thread_concurrency和skip-locking)
  • 添加巨大的数组variables,你可能不知道它们是什么
  • 从其他设置testing它们的性能不仅仅是可疑的

运行完这些之后(并进行一些调整),让MySQL运行至less24-48小时,然后使用以下诊断工具:

  1. MySQL的调谐器(只需键入wget mysqltuner.pl在Linux下载然后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服务器的调整和pipe理将有很大的帮助。

最后 – 一个好的日志parsing工具,如mysqlsla和mysqlreport状态报告