想看看rails实际的性能
用rails写了一个简单的查询用户的action,controller中show方法如下:
def show
@user = User.find_by_id(params[:id])
respond_to do |format|
format.xml
end
end
部署采用 ruby 1.8.7 rails 2.3.2 , lighttpd + fastcgi 和 nginx + mongrel 两种方式实验, 操作系统是debian 5.0,数据库是mysql 5.0.51a, 服务器硬件配置是 两个4核cpu, 2G内存, rails的实例数10-15之间
使用另外一台机器多次执行 ab -n 10000 -c 20 http://[server_ip]/users/1.xml 进行简单的性能测试,两种部署方式的压力测试结果比较接近,下面是其中某次测试的结果
Requests per second: 1124.64 [#/sec] (mean)
Time per request: 17.783 [ms] (mean)
Time per request: 0.889 [ms] (mean, across all concurrent requests)
从 production.log的日志上来看,大部分的请求的处理时长都在1-2ms, qps的值还算可以接受
但是比较奇怪的是,整个压力测试期间,所有cpu的资源占用 几乎都是接近100%,使用htop观察都是rails进程占用,内存占用几乎维持在585M以内,使用vmstat观察,没有swap in 和 out的操作, vmstat在性能测试期间的输出
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 949500 109752 413004 0 0 0 3 12 25 0 0 100 0
14 0 0 947656 109752 413184 0 0 0 0 4742 10677 62 6 32 0
14 0 0 948152 109752 413504 0 0 0 0 6198 13899 91 9 0 0
16 0 0 947164 109752 413876 0 0 0 0 6106 13828 91 9 0 0
15 0 0 947664 109752 414316 0 0 0 0 6035 14070 92 8 0 0
15 0 0 947128 109752 414664 0 0 0 0 6338 14701 92 8 0 0
15 0 0 946780 109752 415072 0 0 0 2016 5815 13463 91 8 1 0
16 0 0 946740 109752 415420 0 0 0 0 6045 13756 90 10 0 0
15 0 0 945656 109752 415900 0 0 0 0 6153 14314 90 10 0 0
为什么cpu的资源占用会这么高呢?
分享到:
- 2009-05-17 22:55
- 浏览 730
- 评论(0)
- 论坛回复 / 浏览 (0 / 1814)
- 查看更多
相关推荐
本书的内容从计划(Plan)、编程(Program)、扩展(Extend)三个方面对Ruby on Rails企业级应用开发进行了全面的介绍。它详细地指导读者从零开始构建一个完整的Ruby on Rails商业应用程序。从如何设计和规划应用...
一些专业咨询公司提供 Ruby 和 Rails 方面的技术咨询和服务。他们可以帮助企业评估现有系统的状态,并提供改进方案。 #### 实施工具 开发过程中会用到多种工具,如版本控制系统 Git、持续集成/持续部署工具 ...
这个毕业设计项目不仅涵盖了软件工程的多个方面,还体现了法律服务行业的信息化趋势,为用户提供便捷的法律咨询服务。通过这个项目,开发者可以提升综合技术能力,了解实际开发流程,同时也能对法律咨询服务的业务...
4. **工单管理**:非实时问题可以通过工单系统处理,确保每个问题得到跟踪和解决。 5. **客服绩效监控**:通过数据分析,评估客服工作效率和服务质量。 6. **客户信息管理**:收集并管理客户信息,提供个性化的服务...
网上书店建站策划书 在当今数字化的时代,建立...总结,建立一个成功的网上书店,需要综合考虑市场需求、功能设计、技术实现、运营策略等多个方面。通过周详的策划,结合高效的执行,有望在竞争激烈的市场中脱颖而出。
后端方面,可能采用了像Node.js、Django、Flask或Ruby on Rails这样的服务器端技术,它们负责处理用户请求、数据验证、业务逻辑以及与数据库的交互。数据库系统,如MySQL、PostgreSQL或MongoDB,会用来存储用户的...
在维护和更新方面,SCRAM系统可能采用敏捷开发方法,定期发布更新以修复问题、添加新功能和优化性能。版本控制工具如Git用于版本管理和协同开发,持续集成/持续部署(CI/CD)工具如Jenkins或GitHub Actions则帮助...
在制定一份全面的网站建设方案时,需要考虑多个方面,包括市场分析、商业运作模式、技术实施以及后期维护等。以下是对这些关键点的详细说明: **一、市场分析** 在开始网站建设之前,进行市场分析至关重要。这涉及...
- Starter Toolkit for DB2 on Rails:专为 Ruby on Rails 应用程序设计的工具包。 - Web 2.0 Starter Toolkit for DB2:包含一系列 Web 2.0 应用程序开发工具。 - WebSphere Application Server – Community ...
这涉及到服务器架构、协议、安全性、性能优化等多个方面。 基于“HCL”这个标签,我们可以推断讨论可能与HCL Technologies有限公司有关。HCL Technologies是一家全球性的IT服务和咨询公司,它们提供了一系列的产品...
JavaScript是互联网上最常用的编程语言之一,尤其在构建动态和交互式的Web应用方面扮演着至关重要的角色。在这个项目中,JavaScript可能被用于处理用户输入、动态更新页面内容、实现异步数据通信(如Ajax)以及创建...
这个票务系统允许用户创建、跟踪和支持各种请求,如问题报告、建议或者服务咨询,从而提升社区内的沟通效率和组织管理水平。 描述中提到的"官方Discourse Meta主题"是指在Discourse的Meta论坛上,开发者或维护者会...