Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
@birbird
会员
第 6279 位会员 / 2013-03-22

22 篇帖子 / 40 条回帖
0 关注者
0 正在关注
0 收藏
未设置 GitHub 信息。
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月28日

    #14 楼 @xiaoronglv 谢谢啊 4 × 16 还是处理不过来呢,还是要换编程方式

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月28日

    #13 楼 @azhao 谢谢 ulimit -n 是 1000000 netstat -nap | grep tcp |wc -l 是 9051 这应该就是没问题吧

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月27日

    #3 楼 @xiaoronglv 我换 puma 试了一下,感觉更慢啊,日志都翻得很慢,像跑不动的样子。

    第一次用,就配了最简单的几项,puma.rb 是这样的

    environment 'production'
    threads 256, 256
    port 8080
    

    bundle exec puma 启动的,启动的输出是正常的,资源占用是下去了,但效果还没有 Passenger 好。 请问我哪里配错了么?

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月26日

    总结,从 passenger-status 的输出其实是可以看出问题来的,我之前没有搞清楚每个数据的含义,Sessions 这个数据可以说明进程忙闲程度。详见 https://www.phusionpassenger.com/library/admin/standalone/overall_status_report.html#dealing-with-common-request-related-problems

    简单来说,我这问题就是处理一个请求的时间可长可短,当意外发生时,进程被占住的时间太长(比如一分钟),进程就会不够用了,就会出现大部分时候没问题,偶尔出问题的情况。

    这种 IO 密集的应用应该用事件驱动的方式编程,我打算换 https://github.com/eventmachine/eventmachine 了。 谢谢各位。

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月26日

    #9 楼 @rei 刚才又来了一下,不过一会他就自己恢复了,见后图。 我觉得你这分析靠谱,也许我那 24 个进程被废了好多,实际就几个进程有用,那就能解释这个现象了,十分感谢!

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月26日

    #3 楼 @xiaoronglv #6 楼 @rei 麻烦请问,我是这么理解的,你们看有问题么 我这 ruby 程序不同之处就是处理一个请求时间略长,那我们简化一下,就是一个请求进来等十秒,然后返回。 然后假设我机器够好,开 60 个 ruby 进程,60 个客户端,每个都能分到一个进程。60 个并发对 nginx 来说毛毛雨,随便搞。 这样每一个进来的请求都应该能立即得到处理,不应该堵在队列里。

    请问我这个理解有问题么?

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月26日

    #3 楼 @xiaoronglv #4 楼 @sevk 我也怀疑过是不是被远端 block 了。 但如果是这样,现象不应该是 24 个 ruby 进程被占满么。但实际情况是,没有用尽 24 个进程,明明有空闲的进程,就是不往里面派,堵在 Requests in queue 里。 而且还有一个现象,就是我这个服务里还有一些不依赖远端服务的接口,这些接口就是简单做个数据库查询就返回了,在服务器响应慢的时候,这些接口也慢。

    所有的远端请求都有日志,从日志来看,没有明显的慢,所以我觉得不像是远端问题,或者,如果要确定是远端慢,应该从哪儿分析呢?

  • [已解决] 服务器各项资源都空闲但还是有请求拥塞 at 2015年10月26日

    #1 楼 @cicero 十分感谢你这么详细的指导哈,可能是我没说清楚,我这应用全在 http 上的,不是 socket server,进来出去的都是 http request。

  • 请问 Grape 怎么能返回不带引号的字符串 at 2015年09月25日

    The answer is

    class API < Grape::API
      get '/' do
        content_type 'text/plain'
        body 'Hello World'
        # return value ignored
      end
    end
    
  • 请教更简洁的写法 at 2015年08月23日

    #9 楼 @rei 忘了说了,我这是 Mongoid,不是 ActiveRecord,Mongoid 没有 through 的

  • 如何只返回 belongs_to Model 的部分 field at 2015年08月15日

    方法真多啊,感谢你们!@hz_qiuyuanxin @mueven @fresh_fish

  • 请问怎么能覆盖 Gem 里的方法 at 2015年08月08日

    #3 楼 @zhang_soledad 我就是放在 config/initializers/ 里面的

  • 请问怎么能覆盖 Gem 里的方法 at 2015年08月08日

    #1 楼 @serco 谢谢回复,去 model 里直接覆盖确实能调到,但这样所有 model 里就都要加这种重复的代码了。mount_uploader 本来就是用来解决这个问题的,他给 model 加上了一堆方法。请问还有其他方法么,改变 mount_uploader 的行为的。

    还有,我不明白你说的「问题他在你重写前已经调用完了」,我这代码是放在 config\initializers 里的,他肯定先于调用 mount_uploader 的地方,为啥不生效呢?

  • Devise 是怎么做到只输出部分字段的 at 2015年08月04日

    #1 楼 @reyesyang 这么多天了,终于被你答了,非常感谢。

  • grape 做 api 的时候能不能定制 json 数据格式 at 2015年08月01日

    https://github.com/milkcocoa/grape-jbuilder

  • Grape 返回 JSON 格式太不灵活 at 2015年08月01日

    https://github.com/milkcocoa/grape-jbuilder

  • Grape 的 before 没有 except 怎么解 at 2015年07月17日

    #2 楼 @justin 在根 API 类的 helper 里定义 authenticate_required? 为 true,在不需要鉴权的 API 类的 helper 里定义 authenticate_required? 为 false,是这样么

  • Grape 的 before 没有 except 怎么解 at 2015年07月17日

    #1 楼 @xxqfamous 那就要写很多个 namespace 了,也不爽

  • Grape 和 MongoId 一起用 ForbiddenAttributesError 的问题 at 2015年07月12日

    给 params[:user] 加一个 to_h 可以解决,见 https://github.com/intridea/grape/issues/553 https://github.com/intridea/hashie/pull/125

  • Rails 有什么好的生成 API Doc 的工具么 at 2015年07月11日

    非常感谢楼上的各位,分享了很多好东西。 Lina 是最符合我最初的问题描述的,值得试用。 恕我愚钝,不太搞得懂 https://github.com/r7kamura/autodoc 就没管了。

    另外三个东西,swagger,BulePrint,RAML 正好是目前最有影响力的三个 API design tool,都被朋友们提到了。 在了解他们的过程中,我也接受了单独写一份 API 文档的思路,而不是觉得一定要自动生成文档。 因为在最开始设计讨论的时候,总要有个记录方式,应该是先设计好了再来实现,后端的实现还不存在,生成文档就是无根之水。

    如果先写 API Spec,那较量的的就是这种描述方式是不是亲近人类思维,同时配套的工具是不是强大(比如编辑 API Spec 的工具,生成前后端代码的工具)。初步印象,觉得 RAML 最对胃口,那就先试试他了。

    这里,也提供几个对比测评,以享后来者 http://www.mikestowe.com/2014/07/raml-vs-swagger-vs-api-blueprint.php http://apievangelist.com/2014/03/08/hello-world-product-api-with-blueprint-raml-and-swagger/

    再次感谢各位。

  • 请问如何禁止以 query string 的形式访问接口 at 2014年12月05日

    #3 楼 @libuchao 多谢提示,我刚才糊涂了,这就不应该是个问题。

  • 请问如何禁止以 query string 的形式访问接口 at 2014年12月05日

    #1 楼 @ywjno 谢谢提醒,不过我这是个查询,GET 合适一些,最好还是不要 POST

  • 请问怎么把 Hash 通过 jbuilder 变成 json at 2014年08月07日

    自问自答一下,这样可以,不知道是不是最好的写法

    json.positions do
      @place.positions_.each do |k, v| 
        json.set! k do
          json.array! v
        end
      end
    end
    
  • 请问怎么往 ActiveModel 的 json 里加 hash 或者 array at 2014年08月06日

    #8 楼 @Rei 多谢您的建议 #9 楼 @HungYuHei 多谢指路,知道要看啥了

  • 请问怎么往 ActiveModel 的 json 里加 hash 或者 array at 2014年08月06日

    请问楼上二位,json serializer 是个啥东西,一个库?一个类?Google 了一下还是不知所措啊。 http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html

  • rails 中 as_json 的一些技巧 at 2014年08月06日

    我用 group_by 以后的 hash 去 as_json 怎么就报错了呢 undefined method `key?' for #JSON::Ext::Generator::State:0x37e7db8

  • 请问怎么往 ActiveModel 的 json 里加 hash 或者 array at 2014年08月06日

    #3 楼 @hammer 多谢提示。我就是用的 group_by,但卡在 undefined method `key?' for #JSON::Ext::Generator::State:0x37e7db8 问题描述里我就说了,我可以得到这个 hash,但无法把这个 hash 放到 json 里,这样写是不行的

    def positions_
      self.positions.group_by{|p| p.name[0]}
    end
    
    def as_json_options
      @options={}
      ...
      @options[:methods] ||= [:positions_]
      ...
    end
    
    def as_json(options={})
      super(as_json_options)
    end
    

    关键是怎么放到输出的 json 里呢

  • 请问怎么往 ActiveModel 的 json 里加 hash 或者 array at 2014年08月05日

    #1 楼 @hammer 其实我也是用的覆盖 as_json 的方法,关键是 Place 的 as_json 应该怎么写啊

  • 请问怎么让命令行里的日志有颜色 at 2013年10月25日

    这是有颜色的截图,我 gem list 了一下,也没发现什么 win32console,而在另外一台机器上,就是没颜色

  • 请问怎么让命令行里的日志有颜色 at 2013年10月25日

    #1 楼 @kikyous 这个可以有,我现在不在那台机器上,回去了可以截图

  • 1
  • 2
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English