优化基于mysql / PHP的网站| 300 qps

时间:2011-05-07 20:52:53

标签: php mysql web-traffic

嘿 我目前在我的mysql上有 300+ qps 。在相当重的PHP网站上,每天大约 12000 UIP / no cron。我知道很难判断如果没有看到网站是否可以,但你认为它是总矫枉过正吗? 你有什么经历?如果我优化脚本,你认为我能够大大降低qps吗?我的意思是,如果我达到200 qps对我没有多大帮助。感谢

4 个答案:

答案 0 :(得分:5)

  

我的mysql目前有超过300多个qps

您的网站可以在Via C3上运行,对您有用!

  你认为这是一个完全矫枉过正吗?

这取决于它是否

  • 1页/秒做300个查询,是的,你有问题。
  • 30-60页/秒,每个5-10个查询,然后你没有问题。
  

每天12000 UIP

我们有一个50-60.000的网站,它运行在Via C3(你的烤面包机是一个数据中心与那个垃圾邮件服务器相比)但是torrent跟踪器使用了大约50%的cpu,所以只有一半的小cpu可以访问该网站,无论如何它似乎从未使用过任何重要部分。

  

你的经历是什么?

如果您想知道是否要杀死您的服务器,或者您的网站是否已经过优化,则以下信息内容接近于零:

  • UIP(除非你得到类似facebook的数字)
  • 查询/ s(除非你超过10.000)(我看过使用postgres便宜的双核爆炸20.000 qps)

但以下内容非常重要:

  • 动态页面/第二次服务
  • 每页查询次数
  • 每个查询的持续时间(ALL OF THEM)
  • 服务器架构
  • vmstat,iostat输出
  • 数据库日志
  • 网络服务器日志
  • 数据库自己的slow_query,lock和IO日志和统计信息

您没有关注正确的指标......

答案 1 :(得分:3)

我认为你在这里忽略了这一点。如果300+ qps过多依赖于网站本身,访问网站的每秒用户数,同时运行的后台脚本等等。您应该能够测试和/或计算服务器的平均查询吞吐量,以了解300+ qps是否合理。而且,顺便说一句,这取决于这些查询要求的内容(几个字段,或大量的二进制数据?)。

当然,如果您优化脚本和/或减少查询数量,您可以降低数据库的负载,但如果没有特定数据,我们就无法正确回答您的问题。要将300+ qps的负载降低到200 qps以下,平均应将总查询次数降低至少1/3。

答案 2 :(得分:1)

优化脚本可以创造奇迹。我只是通过优化调用服务器的方式,花了3分钟到0.5秒的脚本。当然,这是一种极端情况。如果可能的话,我将主要关注通过组合它们来最小化查询的数量。也许您可以通过查询获得创意,以便在每次点击中包含更多信息。

从300到200 qps实际上是一个巨大的进步。这对您的服务器的流量下降了33%......这很重要。

答案 3 :(得分:0)

您不应该专注于脚本,专注于服务器。

你并不是说这300多个查询是否会引起问题。如果您的服务器没有死机,没有理由降低数量。如果您已经完成了优化,那么您应该专注于服务器。升级或购买更多服务器。