`
stevep
  • 浏览: 730 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

咨询个rails性能方面的问题

阅读更多
想看看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的资源占用会这么高呢?

分享到:
评论

相关推荐

    Ruby on Rails Enterprise Application Development.pdf

    本书的内容从计划(Plan)、编程(Program)、扩展(Extend)三个方面对Ruby on Rails企业级应用开发进行了全面的介绍。它详细地指导读者从零开始构建一个完整的Ruby on Rails商业应用程序。从如何设计和规划应用...

    rubyrails生态系统

    一些专业咨询公司提供 Ruby 和 Rails 方面的技术咨询和服务。他们可以帮助企业评估现有系统的状态,并提供改进方案。 #### 实施工具 开发过程中会用到多种工具,如版本控制系统 Git、持续集成/持续部署工具 ...

    律师帮帮法律咨询毕业设计—(包含完整源码可运行).zip

    这个毕业设计项目不仅涵盖了软件工程的多个方面,还体现了法律服务行业的信息化趋势,为用户提供便捷的法律咨询服务。通过这个项目,开发者可以提升综合技术能力,了解实际开发流程,同时也能对法律咨询服务的业务...

    在线客服系统

    4. **工单管理**:非实时问题可以通过工单系统处理,确保每个问题得到跟踪和解决。 5. **客服绩效监控**:通过数据分析,评估客服工作效率和服务质量。 6. **客户信息管理**:收集并管理客户信息,提供个性化的服务...

    关于网上书店建站策划书模板.rar

    网上书店建站策划书 在当今数字化的时代,建立...总结,建立一个成功的网上书店,需要综合考虑市场需求、功能设计、技术实现、运营策略等多个方面。通过周详的策划,结合高效的执行,有望在竞争激烈的市场中脱颖而出。

    emergency-leave-app:适用于公民咨询兰开夏郡西部的应用程序,用于管理紧急请假请求

    后端方面,可能采用了像Node.js、Django、Flask或Ruby on Rails这样的服务器端技术,它们负责处理用户请求、数据验证、业务逻辑以及与数据库的交互。数据库系统,如MySQL、PostgreSQL或MongoDB,会用来存储用户的...

    scram:-妇女援助参考中心系统-

    在维护和更新方面,SCRAM系统可能采用敏捷开发方法,定期发布更新以修复问题、添加新功能和优化性能。版本控制工具如Git用于版本管理和协同开发,持续集成/持续部署(CI/CD)工具如Jenkins或GitHub Actions则帮助...

    网站建设方案,网站建设方案

    在制定一份全面的网站建设方案时,需要考虑多个方面,包括市场分析、商业运作模式、技术实施以及后期维护等。以下是对这些关键点的详细说明: **一、市场分析** 在开始网站建设之前,进行市场分析至关重要。这涉及...

    快速上手ibmDB2数据库教程书籍pdf版

    - 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服务和咨询公司,它们提供了一系列的产品...

    micasa:房地产网络应用

    JavaScript是互联网上最常用的编程语言之一,尤其在构建动态和交互式的Web应用方面扮演着至关重要的角色。在这个项目中,JavaScript可能被用于处理用户输入、动态更新页面内容、实现异步数据通信(如Ajax)以及创建...

    discourse-tickets:话语票务系统

    这个票务系统允许用户创建、跟踪和支持各种请求,如问题报告、建议或者服务咨询,从而提升社区内的沟通效率和组织管理水平。 描述中提到的"官方Discourse Meta主题"是指在Discourse的Meta论坛上,开发者或维护者会...

Global site tag (gtag.js) - Google Analytics