我在 PHP/Apache/Mysql、Python/Ngix/Postgresql 和 Erlang/Yaws/Mnesia 中开发了 3 个简单的博客系统。
对于这 3 种不同的配置,我如何测量我的服务器上的性能?
我在 PHP/Apache/Mysql、Python/Ngix/Postgresql 和 Erlang/Yaws/Mnesia 中开发了 3 个简单的博客系统。
对于这 3 种不同的配置,我如何测量我的服务器上的性能?
我建议你看看Tsung。
从他们的主页阅读:
它可用于强调 HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP 和 Jabber/XMPP 服务器。Tsung(以前称为 IDX-Tsunami)是在 GPLv2 许可下发布的免费软件。
Tsung 的目的是模拟用户,以测试基于 IP 的客户端/服务器应用程序的可扩展性和性能。您可以使用它对服务器进行负载和压力测试。许多协议已经实现和测试,并且可以很容易地扩展。最近添加了 WebDAV、LDAP 和 MySQL 支持(实验性)。
它可以分布在多台客户端机器上,并且能够同时模拟数十万虚拟用户(如果你有足够的硬件,甚至可以模拟数百万......)。
Tsung 是用 Erlang 开发的,Erlang 是爱立信开发的一种开源语言,用于构建健壮的容错分布式应用程序。
当您说要测量性能时,我假设您的意思是负载测试、响应时间之类的东西。
如果是这样,您可以使用 ab(apache bench)。它是一个通常在 linux 上可用的小程序,我相信在 macs 上可用。你给它一个 url,告诉它请求它的次数,并可选地给它一些其他参数。它发送 http 请求,因此服务器代码的实现方式无关紧要,因此您可以使用它来测试所有 3 个系统。
ab 可以让您很好地了解每个系统每秒可以处理多少个请求。如果您想要一个指标来比较您的 3 个系统,这是一个非常好的指标。
要发现服务器的哪些元素限制了性能(cpu、数据库访问、带宽),您需要查看服务器上而不是客户端计算机上的工具。您在那里使用的工具取决于操作系统,并且可能会根据您用于实现服务器代码的语言/工具而有所不同。
您也可以尝试使用 httperf ( http://www.hpl.hp.com/research/linux/httperf/ )。