kilik52 2012-06-29 08:10
浏览 333
已采纳

rails服务器明明cache hit,但是DB用了很多时间为什么?

最近我服务器相应变得非常慢,以下是log:

Processing HomepageController#iphone to xml (for 123.150.158.147 at 2012-06-29 07:59:37) [GET]
User Columns (12.6ms) SHOW FIELDS FROM users
User Load (4758.7ms) SELECT * FROM users WHERE (users.id IS NULL) LIMIT 1
Cached fragment hit: views/www.xxx.com/homepage/iphone.xml (26.4ms)
Filter chain halted as [#nil, :only=>#, :if=>nil}, @identifier=nil, @method=#Proc:0xb7aa8bf8@/usr/local/rvm/gems/ruby-1.8.7-p352/gems/actionpack-2.3.4/lib/action_controller/caching/actions.rb:64>] did_not_yield.
Completed in 4870ms (View: 9, DB: 4777) | 200 OK [http://www.xxxcom/homepage/iphone.xml]

我不知道为什么DB用了4777ms。。。。请问这个怎么查为什么?并不是所有请求都是这样的,就是有些请求会特别长。

另外:有些log是这样的:
Processing ProductsController#index to xml (for 222.134.168.129 at 2012-06-29 08:05:53) [GET]
Parameters: {"page"=>"1", "page_size"=>"15"}
User Load (0.7ms) SELECT * FROM users WHERE (users.id IS NULL) LIMIT 1
Cached fragment hit: views/www.xxx.com/products.xml?page=1&page_size=15.xml (3.8ms)
Filter chain halted as [#nil, :only=>#, :if=>nil}, @identifier=nil, @method=#Proc:0xb7aa8bf8@/usr/local/rvm/gems/ruby-1.8.7-p352/gems/actionpack-2.3.4/lib/action_controller/caching/actions.rb:64>] did_not_yield.
Completed in 35ms (View: 1, DB: 1) | 200 OK [http://www.xxx.com/products.xml?page=1&page_size=15]

请问这35ms占用了啥?我看出来cache hit用了3.8,view和DB都用了1?,那怎么会要35ms?

谢谢!

  • 写回答

2条回答 默认 最新

  • Hooopo 2012-06-29 09:38
    关注

    [quote]User Load (4758.7ms) SELECT * FROM users WHERE (users.id IS NULL) LIMIT 1[/quote]
    是这句的时间过长。你的片段缓存命中和controller里的查询没关系。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?