- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Docs: Scaling Puppet 找到了以下内容:
Are you using the default webserver?
WEBrick, the default web server used to enable Puppet’s web services connectivity, is essentially a reference implementation, and becomes unreliable beyond about ten managed nodes. In any sort of production environment serving many nodes, you should switch to a more efficient web server implementation such as Passenger or Mongrel.
最佳答案
当您开始遇到 WEBrick 问题时(或稍早一些),您应该更改为Passenger。当这种情况发生时,您将取决于您的工作量。
WEBrick 最大的问题是它是单线程和阻塞的;一旦它开始处理一个请求,它就不能处理任何其他请求,直到它完成第一个请求。因此,对您产生影响的是 Puppet 花多少时间处理请求。
每次客户要求其目录时,这就是一个请求。通过 puppet:///
URL 检索的每个单独文件也是一个请求。如果您轻率地使用 Puppet,那么生成每个目录不会花费太长时间,您不会在任何给定的 Puppet 运行中分发许多文件,并且每个客户端不会花费超过四到六秒的服务器时间每隔一小时。如果每个客户端每小时占用 4 秒的服务器时间,则 10 个客户端有 5% 的机会发生冲突 - 至少有一个客户端在处理另一个请求时必须等待。对于 20 或 30 个客户,这些机会分别为 19% 和 39%。只要每个请求都很短,您就可以忍受一些争用,但冲突的几率会迅速增加,因此如果您有超过 50 个主机(75% 的冲突几率),您真的应该通过使用Passenger,除非您正在进行积极的性能测量,表明您做得很好。
但是,如果您更努力地工作 Puppet master——需要更长的时间来生成目录、提供大量文件、提供大文件或其他任何东西——你需要尽快切换到乘客。我继承了一组大约 30 台带有 WEBrick Puppet master 的主机,一切正常,但是当我开始部署新系统时,新部署引起的所有 Puppet 流量(包括几个千兆字节的文件1)都在阻止其他主机得到他们的更新,所以那是我被迫切换到乘客的时候。
简而言之,如果您不使用 Puppet 做任何过于激烈的事情,那么您可能会接受 30 个节点,但此时您至少需要监控 Puppet master 的性能,最好也监控客户端的更新状态,所以当您开始运行超出 WEBrick 的功能时,您就会知道。
0 这是标准的 birthday paradox 计算;如果 n 是客户端的数量,s 是每个客户端每小时使用的服务器时间的平均秒数,那么在一小时内至少发生一次碰撞的机会由 1-(s/3600)!/((s/3600)^n*((s/3600)-n)!)
给出。
1 Puppet 在任何情况下都不是分发这种大小文件的好途径。我最终转而将它们放在所有主机都可以访问的 NFS 共享上。
关于scalability - Scaling Puppet - 什么时候对 WEBrick 来说太多了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16172294/
我是 Ruby 和 Rails 新手,第一次建立项目。每次我尝试启动 WEBrick 服务器时,它都会启动然后关闭。任何帮助,将不胜感激。我似乎需要提供密码,但我不知道该怎么做。 bkuethen$
尝试在这里学习 Ruby on Rails 并遵循视频教程,但似乎无法运行环境。我现在已经使用rails new project_name 创建了一个项目,但是当我去运行服务器rails 服务器时,我
WEBrick 实例方法 mount_proc 做了什么(用简单的英语)? 文档说: mount_proc(dir, proc=nil, &block) Mounts proc or block on
首先我要说的是,我不知道自己在做什么。 好吧,既然这样,我的问题是:我正在运行 Grunt 的网络服务器来提供前端文件,并且正在运行 webrick 来提供数据 api。 Grunt 使用 grunt
首先让我说我不知道自己在做什么。 好吧,不打扰了,我的问题是:我正在运行 Grunt 的网络服务器来提供前端文件,我正在为数据 api 运行 webrick。 Grunt 使用 grunt-con
您能推荐一个修复方法吗? 我根据其他 SE 问题尝试过的补救措施: 运行捆绑安装 运行 gem 清理 运行 bundle exec rails server 运行 sudo ln -s/usr/loc
我像这样启动一个 webrick 服务器: dell@dev:/var/www/ruby$ ruby -run -httpd. -p 5000 并将此代码放入abc.rb: require 'web
我有一个在不同硬件上运行的网络应用程序,其中大部分由智能电视和机顶盒组成。 我的网络应用程序包含一个 ruby 脚本来设置应用程序以进行本地调试。此脚本构建我的应用程序,监听文件更改,并使用简单的
我之前运行的是 Linux Mint 13,现在刚切换到 Fedora 17。既然我已经切换了,我就无法再阻止 Webrick。我使用 Jetbrains Rubymine,并且启动服务器工作正常,但
我有一个非常基本的 webrick 服务器,用于运行嵌入式设备的管理页面。我们刚刚向设备添加了基本身份验证并且效果很好,但是您会像这样返回通用的“未经授权”消息: Unauthorized
我有以下代码,其中 fork 了一个 WEBrick 实例,我想等到 webrick 启动,然后再继续其余代码: require 'webrick' pid = fork do server =
如何禁止将来自 webrick 的消息回显到终端?对于出现在开头的 INFO 消息,我可以通过设置 Logger 参数来禁用它: s = WEBrick::HTTPServer.new( Port
我正在运行一个简单的 WEBrick 服务器来调试 POST 数据。我想将 POST 数据输出到日志。 我的代码是: server.mount_proc '/' do |req, res| r
就生产环境而言,使用 Phusion Passenger 或仅使用 WEBrick(例如 rails s)有什么区别? 我知道 Phusion Passenger 在 Apache 或 Nginx 上
我想在我做的时候设置默认端口 rails s 到 3010,而不必说: rails s -p 3010 ...每次。有任何想法吗? 最佳答案 您可以覆盖 Port通过将以下代码添加到 config/b
我目前有: $ rails s => Booting WEBrick => Rails 3.0.9 application starting in development on http://0.0.
如何配置 Aptana 以在 Ruby On Rails 项目上启动 webrick 服务器? 我使用选项“提升到项目”来使用 aptana 打开一个现有的 Rails 项目。我不知道如何在 Apta
我正在使用 ~/.rdebugrc 的内容运行 WEBrick文件正在 set autolist set autoeval set autoreload autolist 和 autoeval 默认开
有没有一种方法可以不冗长地启动 WEBrick 服务器。我觉得它记录了太多信息。例如: rails s --verbose=false 最佳答案 您可以在 Rails 配置中更改日志级别。 confi
目前,如果我更改lib /和app / helpers /目录中的文件,则必须重新启动服务器。有没有一种方法可以配置Rails或Webrick,以便它也可以热交换那些目录中的文件? 最佳答案 在您的c
我是一名优秀的程序员,十分优秀!