【问题标题】:Too many connections mysql on magento?magento上的mysql连接太多?
【发布时间】:2013-01-31 08:18:09
【问题描述】:

我在hostgator.com上有以下服务器

Intel Xeon E3-1265L 2.5GHz
100 mbps Uplink
4 GB DDR3 Memory
500 GB RAID-1 Drives
10 TB Bandwidth
Up to 5 Dedicated IPs

在过去的 2 个月中,我们多次收到过多连接错误。 我们每天的访问量不到 1000 次,所以我认为这对服务器来说不算太多。

上周再次发生这种情况,我们与支持团队一起清理了 magento 日志表。 我还将 magento 日志保留时间从 180 天减少到仅 5 天。

今天又发生了,whm, cpanel or the domain 本身完全无法访问。

我想知道这是否是由于搜索引擎抓取了我们的网站?上周我在谷歌网站管理员工具中降低了抓取速度。

今天在遇到 mysql 连接问题的同时,我们还多次在 spamd 服务和 chkservd 上挂起。

问题是:

If I increase max connections to 400, is that too much for my server?

Do you think I need more server processor or ram?
Or do you think it might be a denial of service attack?

请帮忙。

提前致谢。

更新

top - 05:41:25 up 12 days, 17:57, 1 user, load average: 33.40, 38.14, 54.62 
Tasks: 267 total, 12 running, 247 sleeping, 4 stopped, 4 zombie 
Cpu(s): 11.1%us, 0.9%sy, 0.1%ni, 83.7%id, 3.9%wa, 0.1%hi, 0.1%si, 0.0%st 
Mem: 2917444k total, 2281856k used, 635588k free, 56324k buffers 
Swap: 4194296k total, 290924k used, 3903372k free, 343860k cached 

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
26327 theprint 16 0 57088 42m 6640 R 94.0 1.5 0:58.97 php 
26316 theprint 16 0 58592 44m 6640 R 86.2 1.6 1:04.44 php 
26308 theprint 16 0 58592 44m 6644 R 74.4 1.5 1:05.23 php 
26383 theprint 16 0 59500 45m 6640 R 74.4 1.6 0:56.33 php 
26278 theprint 16 0 58596 44m 6640 R 72.5 1.5 1:05.95 php 
1253 theprint 16 0 54224 39m 6640 R 66.6 1.4 0:07.85 php 
26280 theprint 16 0 58336 44m 6640 R 64.6 1.5 1:00.90 php 
26653 theprint 16 0 59784 45m 6640 R 52.9 1.6 0:44.99 php 
26421 theprint 15 0 56280 41m 6640 S 29.4 1.5 0:36.84 php 

【问题讨论】:

  • 这个配置太慢了。我建议您在美国使用 magemojo 或在 UE 中使用 NBS 系统。如果您希望您的服务器不会因为每天 1000 人而变慢,您将需要 8 到 12GB RAM(如果您想将 /var 挂载为 RAM 以提高性能,则需要 12GB)。 Hostgator 用于开发平台而不是实时站点
  • 为什么 hostgator 用于开发而不是实时站点?我不明白
  • 和 magemojo 有什么区别?服务器看起来更好,但他们有所有的网络基础设施吗?
  • 查看更新,所有进程都在访问 index.php,这显然是在杀死服务器,他们告诉我可能是 4gb 的内存。
  • 每天 1000 人 == 每 86 秒 1 个人。即使有人疯狂地浏览,你仍然没有得到太多的并发。一个 VM 可以同时运行 40 个 PHP 工作进程,而只有 1 GB 的 RAM。你应该优化你的应用程序,它有一些非常错误的地方。或者聘请开发商。顺便说一句,您的问题属于 serverfault,而不是 stackoverflow。

标签: mysql apache magento cpanel whm


【解决方案1】:

如果我将最大连接数增加到 400,这对我的服务器来说太多了吗?

我们不知道:您没有提供有关您的服务器的性能或容量可能是多少的详细信息。即使你有,你也不太可能to get a sensible answer

我想知道这是否是由于搜索引擎抓取了我们的网站?

也许,你为什么不调查一下。即使提供的用于配置服务器的玩具不起作用,也应该可以从您的日志中获得数据。

去阅读一些关于 MySQL 性能调优的好书(this 是一个好的开始)和调优你的堆栈的其余部分。

【讨论】:

  • ee 更新,所有进程都在访问 index.php,这显然是杀死服务器的原因,他们告诉我 4gb 的内存可能是问题
  • 解决性能问题需要大量调查和知识 - 您的更新并没有真正的帮助。
  • 这确实表明您有一些非常明显的问题应该与您的服务提供商讨论。
【解决方案2】:

您需要研究您的服务器负载处理能力以及它一次可以处理多少并发连接。

如果同时有太多的 MySQL 连接和请求,就会出现这种情况。因为服务器无法一次处理这样的批量请求。因此,在这种情况下,您可以将服务器正在处理的并发进程数增加到最大值,也可以增加服务器容量。

但是在继续之前,请确保并发请求是真实的。您将需要监视正在运行的连续 MySQL 进程。你可以通过'mysql -pr'来检查它。一旦你得到消耗最大资源的用户,然后继续检查它为什么占用资源。如果您发现没有合法进程,则可以暂停此类用户以避免产生问题。

【讨论】:

    【解决方案3】:

    如果您的网站有大多数静态页面?

    更好地使用缓存

    有很多选项可以降低 CPU 使用率

    • Mysql 或 mysqli 缓存
    • 在 PHP 中运行?您可以制作一个简单的缓存脚本,可以对其进行修改以缓存部分页面或整页。 使用性能优于 Zend 之类的 Opcache..
    • 如果您有更多 RAM?并且该网站以完整的 SQL 运行?使用 Memcached。

    我注意到您正在使用 cpanel?您需要调整您的服务取消不需要的监控服务并将 cron 添加到清除旧日志..

    如果您从 Bot 获得点击数或从垃圾邮件域获得引用?阻止htaccess中的引用者.. 或者为 cpanel 使用 nginxcp

    这些是根据我的经验提供的指导。希望这将有助于降低您的 CPU 使用率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2013-11-12
      相关资源
      最近更新 更多