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条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器