【问题标题】:Performance logging for a live test?实时测试的性能记录?
【发布时间】:2011-09-18 11:08:52
【问题描述】:

我们正在完成我们的应用程序,用 PHP/MySQL (+ memcached) 编写,我们将在下周末开始一个晚上的现场测试(这是一种“社交”应用程序)。

当然,我们会监控错误日志文件以确保一切正常。但我们也希望保留应用程序性能的日志:例如,确定脚本是否运行得太慢,以及更详细地了解函数/方法运行所需的时间,执行 MySQL 查询并进行比较使用从 memcached 中获取(和“un-jsoned”)的数据。

这是我第一次做这样的事情:但是,我认为这是根本性的,因为我们需要确保当我们的客户在 10 到 15 天内开始使用应用程序时,它能够正确扩展。 (向上)扩展不会是一个大问题,因为我们使用的是云服务器(我们将从一个具有 256 MB RAM 的单个实例开始,由一家知名公司提供),但我们希望确保使用资源高效。

您对此监控有什么建议吗?好的做法?好文章值得阅读?

另外,当测试结束后,我们是否应该继续监控现场环境中的表现?即使不是针对所有请求,而只是针对样本?

PS:将所有 MySQL 查询及其运行时间记录在一个文件中是个好主意吗?

【问题讨论】:

  • 对于 MySQL,您可以从启用 slow query log 开始。请注意,任何类型的额外监控都会在一定程度上降低性能。
  • “扩展不会是一个大问题,因为我们使用的是云服务器”---呵呵,如果它只是你想的那么简单;-)
  • 嗯,在最初的现场测试中,我想监控一切,而不仅仅是慢查询...我知道它会影响性能,但至少在开始时我希望获得所有可能的信息。
  • @zermks:我的意思是“升级”对不起 :)
  • 这是一项付费服务​​,但我听说过关于 New Relic 的精彩内容

标签: php mysql performance logging monitoring


【解决方案1】:

我通常对我的工作进行单元测试,以便确保它以令人满意的速度运行,给出正确的结果等。

一旦我完成了单元测试,我将对它进行压力测试,我通过本地机器的疯狂循环和我设置的实例来运行最常用的功能,以粗暴地测试我的应用程序,因为我的测试是用PHP 我可以记录任何我喜欢的东西;

比如表演,但我永远不会在现场使用它我只是确保我对我所写的内容充满信心

[编辑]

您使用 Zend Studio 吗? (那是我使用的 PHP IDE)因为它内置了单元测试,你可以在这里获得免费试用,当它结束时仍然非常实用,我有付费版本,所以我不确定单元测试是否仍然可行但是物有所值!

这是introduces unit testing 的链接,非常棒,您可以获取 Zend Studio 的试用版here

这里还有一些刚刚从 Google 提取的单元测试链接。

lastcraft.com
List of unit testing
Another Stack Overflow post on unit testing PHP
Google results page

【讨论】:

  • 我从来没有用 PHP 做过单元测试。可以给我链接一些文章吗?说到要使用的软件,我找到了这个:phpunit。怎么样?
  • 不,我使用 Coda(用于 OSX)。你有关于使用 PHP 进行单元测试的文章吗?
  • 我刚刚从 Google 中提取的教程/帖子的编辑中有 4 个链接。
  • 对不起,我在用手机,没注意到。谢谢!
【解决方案2】:

你可以看看在机器上安装这样的东西:

http://en.wikipedia.org/wiki/Cacti_%28software%29

获取有关系统性能(CPU\Mem\Bandwidth)的当前和历史信息总是很方便。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多