【问题标题】:QNAP - MySQL server SLOW response time / PHPQNAP - MySQL 服务器响应时间慢 / PHP
【发布时间】:2012-08-10 18:26:29
【问题描述】:

我们将使用 QNAP 作为 Web 开发服务器。

我们有以下内容:

  1. TS-EC1279U-RP(四核 Intel Xeon E3-1225 3.1GHz 处理器,4GB 内存和 12 个 RAID 6 硬盘)
  2. PHP 版本 5.3.9
  3. MYSQL 服务器版本:5.1.36

我们已经安装了 Drupal 和 Joomla,但是响应时间似乎很慢。我们等待大约 5 - 6 秒才能得到响应。我们已经为我的 sql 编辑了 my.cnf(见下文)

[client]
#password   = your_password
port = 3306
socket      = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket      = /tmp/mysql.sock
skip-locking
skip-networking
skip-name-resolve

max_connections=500
key_buffer_size=384M
max_allowed_packet=16M
table_cache=256
sort_buffer_size=2M
read_buffer_size=2M
join_buffer_size=2M

thread_cache=256

query_cache_type=1
query_cache_limit=1M
query_cache_size=32M

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer=128M
sort_buffer_size=128M
read_buffer=2M
write_buffer=2M

[myisamchk]
key_buffer=128M
sort_buffer_size=128M
read_buffer=2M
write_buffer=2M

[mysqlhotcopy]
interactive-timeout

但是,即使根据不同站点推荐的上述更改,性能也有所提高,但只是一点点。

我们的测试站点位于 QNAP 和一家托管公司。托管公司服务器上的响应要快得多。我知道他们有更好的硬件,但是 QNAP 上的 CPU 图表甚至没有超过 3%。

谢谢

更新:

我添加了日志慢查询。我已经使用了该网站大约 30 分钟:到目前为止的结果:

/usr/local/mysql/libexec/mysqld, Version: 5.1.36-log (Source distribution). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
/usr/local/mysql/libexec/mysqld, Version: 5.1.36-log (Source distribution). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument

没有迹象表明 SQL 查询的时间超过 1 秒。所以我不确定是 PHP.ini 还是 my.cnf 设置。

谢谢

【问题讨论】:

  • 也许您的查询没有优化?
  • 查看dev.mysql.com/doc/refman/5.1/en/slow-query-log.html 以识别您的慢查询并尝试优化它们。
  • @matt 我不这么认为。我尝试过全新安装 joomla、drupal 和 word press。它们似乎都在 5-6 秒左右,我还复制了一个生产站点。结果相同。现场直播约 0.8 秒(实时),qnap 约 5-6 秒。我会试试你提供的链接。谢谢
  • 根据我的经验,大多数情况下我从数据库中得到缓慢的响应是因为查询没有优化。确保在记录任何慢速查询后正确索引您的表,您会看到性能大幅提升(当然,如果索引是问题的话)。
  • 大多数 GUI 都有一种点击式的方式来为您的列添加索引。要确定哪些列需要索引,请在查询上执行EXPLAIN(只需在SELECT 之前输入EXPLAIN 并执行查询)。基本上,它会告诉您在尝试执行查询时每个表中命中了多少行。高命中表需要比较列上的索引。

标签: php mysql apache


【解决方案1】:

在玩弄了 MYSQL 和 PHP 之后。问题被发现了。

首先我将 PHP 内存增加到 512M,我知道这有点过头了,但差别很小。

关键是网站。

应用程序加载后:0.000 秒,0.35 MB 初始化后的应用程序:0.020 秒,1.17 MB 应用后路由:0.029 秒,1.36 MB 调度后的应用程序:0.064 秒,2.03 MB 应用程序渲染后:6.15 秒,2.72 MB

问题是网站页面上的 RSS 提要。但是禁用它后,速度快得要命。

应用程序渲染后:0.126 秒,2.83 MB

感谢 matt 的想法和支持。

【讨论】:

    猜你喜欢
    • 2017-01-06
    • 2018-11-16
    • 2011-05-18
    • 1970-01-01
    • 2013-10-18
    • 2014-09-10
    • 2016-05-09
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多