首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从性能(php/mysql)的角度来看,解决脚本问题的好方法是什么?

从性能(php/mysql)的角度来看,解决脚本问题的好方法是什么?
EN

Stack Overflow用户
提问于 2009-06-23 18:21:26
回答 4查看 227关注 0票数 2

我从头开始写了一个网站CMS,现在网站开始慢慢地获得流量(30-40k/天),我看到服务器的负载比它应该的要高得多。在内存为8 8gb的四核机器上,它一直在6-9之间徘徊。我写的脚本在400-500k/天的网站上表现得很好,所以我想我不是完全无能的。

我已经通过组合查询,完全消除了一些mysql调用,并用静态TXT文件替换网站的某些部分,在必要时用php更新,从而将每个页面上执行的查询数量减少了近60%。所有这些更改都会影响页面执行时间(索引加载时间为0.3秒,而不是以前的1.7秒)。

实际上没有IOwait,mysql只有30mb。该网站运行lighttpd,php 5.2.9,mysql 5.0.77

我可以做些什么来弄清楚到底是什么导致了高负载?我真的想本地化这个问题,因为"top“只是告诉我它的mysql,它总是在50-95%的CPU使用率之间徘徊。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-23 18:37:38

你能做的最好的事情就是分析你的应用程序代码。找出哪些调用占用了您的大量资源。下面是一些选项(谷歌搜索"php profiler“的前三个关键词):

  • Xdebug
  • NuSphere PhpED
  • DBG

您可能有一些SQL查询非常慢,但是如果它们不经常运行,它们可能不是性能问题的主要原因。您可能拥有速度更快的SQL查询,但它们的运行频率太高,因此对性能的净影响也更大。分析应用程序将有助于识别这些应用程序。

就数据库使用而言,提高应用程序性能的最通用建议是识别不经常更改的数据,并将该数据放在缓存中以加快检索速度。这取决于您确定哪些数据将从中获益最多,因为它非常依赖于您的应用程序使用模式。

就缓存技术而言,APCmemcached在PHP中都有很好的支持。

您还可以仔细阅读MySQL optimization chapter,以确定与您的应用程序相关的任何改进。

其他不错的资源是MySQL Performance Blog和“High Performance MySQL”这本书。如果你真的想运行一个基于MySQL的网站,你应该经常查阅这些资源。

票数 1
EN

Stack Overflow用户

发布于 2009-06-23 18:39:34

使用EXPLAIN帮助您优化查询/排除查询故障。它将向您显示表是如何被引用的,以及正在读取多少行。它非常有用。

另外,如果你对你的MySQL configuration做了任何修改,你可能想要重新访问它。

票数 3
EN

Stack Overflow用户

发布于 2009-06-23 18:26:19

mytop是一个很好的起点。它基本上是MySQL的首选,并将为您提供一个窗口,了解数据库到底在做什么:

http://jeremy.zawodny.com/mysql/mytop/

诺亚

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1034268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档