Nginx worker_connections“设置了一个工作进程可以打开的最大并发连接数。这个数字包括所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接。另一个考虑因素是实际的同时连接数不能超过当前最大打开文件数限制”。我对此有几个疑问:
我们即将在一些新服务器上部署一堆站点。我有以下关于应用程序池的问题:
每个网站有一个应用程序池似乎是可取的。这种方法有什么注意事项吗?一个应用程序池是否会占用所有 CPU、内存等...?
什么时候应该在应用程序池中允许多个工作进程?什么时候不应该?
是否可以使用私有内存限制来防止一个应用程序池干扰另一个应用程序池?将它设置得太低会导致有效请求在没有得到有效响应的情况下回收应用程序池吗?
私有和虚拟内存限制有什么区别?
是否有令人信服的理由不让每个站点运行一个应用程序池?
我一直在使用 ASP.NET v 4.0 应用程序遇到非常间歇性的问题,可能每 4 天就会发生一次,发生的情况是 CPU 会飙升至 75%,有时会运行良好,直到一天结束有时它会稳步增长到 100 %
然后我必须重新启动服务器。
我遵循了“当工作进程处于 100% CPU 时该怎么办”的每一个指南,我知道它是哪个工作进程,它是哪个应用程序池。我所能做的就是找到该进程并杀死它或回收应用程序池,这有时会有所帮助。
我不知道的是在 CPU 达到 75% 的那一刻系统上发生了什么。
我想知道有没有一种方法可以在 CPU 达到 50% 时启动 procmon 并运行 2 分钟,然后关闭并保存数据?
由于我们架构的重大更新,我们现在在 IIS 下有一些未使用的应用程序池(没有映射到它们的网站)。
我明白删除它们只是为了提高可读性是一个好主意,但我的问题更多是关于性能影响:拥有这些未使用的应用程序池在内存、CPU、IIS 请求处理速度或任何其他性能指标方面是否重要?
据我所知,没有网站的应用程序池不会创建工作进程,所以我怀疑性能没有区别,但我想确保我没有遗漏任何东西。
我有一个工作进程,它一次处理 1 条 RabbitMq 消息。现在,一旦 worker 退出,supervisord 就会重新启动它(它将处理下一条消息)。
我想设置一个 X 秒的间隔,这样 supervisord 就不会立即重新启动,但它会在启动另一个工人之前等待给定的时间。
这可能吗?如何?
Apache忙碌的工人和空闲的工人是什么意思?它们的统计信息如何帮助我找出服务器的性能问题?
我制作了一个 AWS Beanstalk 和 RDS 实例。我正在测试一个同步 FTP 和 S3 文件的项目。
我如何在 AWS Beanstalk 中制作典型php artisan queue:work或php artisan queue:listen工作?
我知道 Redis、ElastiCache 等。我还没有测试过它们。但我试图让它database只与驱动程序一起工作。
我也知道只访问 SSH,但是有没有办法在不使用 SSH 的情况下处理排队的作业?也许喜欢使用 .ebconfig?
出于某种原因,我们其中一个应用程序池中的请求今天开始“挂断”。CPU 使用率很低,内存消耗也很低,但工作人员中的请求正在进入并排队;它们都停留在“ExecuteRequestHandler”状态。
我们可以回收池,事情可以工作一分钟,但是东西又开始排队了。当您访问一个页面时,您永远不会遇到任何错误,浏览器加载图标只是不停地旋转而没有任何反应(无限期)。
应用程序池设置为“无托管代码”并处于“经典”模式。我们使用诸如 IIS 重写工具之类的东西,但我们不运行任何 ASP.NET;我们所有的网站都是静态 HTML 或 Coldfusion 9。
只是想知道是否有其他人遇到过类似的问题,请求在 IIS 工作器中像这样排队......
我的工人进程上限为 70mB。我如何提高这个限制?我在 Windows 2003 IIS6 上有 4Gb。谢谢!
iis windows-server-2003 iis-6 application-pools worker-process
iis ×3
iis-7.5 ×2
queue ×2
amazon-ec2 ×1
apache-2.2 ×1
coldfusion ×1
connection ×1
cpu-usage ×1
iis-6 ×1
iis-7 ×1
nginx ×1
performance ×1
scalability ×1
supervisord ×1
threads ×1
windows ×1