Ruby on rails Rails应用程序+Apache乘客+Postgres:CPU消耗
我有一个Rails 3.0应用程序在CPU消耗方面有问题 该应用程序在Debian机器上的Apache+passenger mod上以生产模式工作。这是一个具有6GB内存和2CPU 1核3GHz的虚拟机。这是一个邮件应用程序,只需单击链接即可阅读邮件,需要在服务器上执行一系列操作来呈现页面。这个简单的点击需要大约50%的CPU在2到3秒内,我用top命令看到它 问题是我在系统上有大约150个用户,Postgresql数据库安装在同一台机器上。当多个用户同时进行操作时,CPU的使用率为100%,Postgresql有足够的资源来接受请求 是否有任何配置,我可以使Apache?乘客轨道?防止CPU增加和Postgresql崩溃?我可以在两个CPU上分配作业吗?我不知道是否已经这样了 先谢谢你 雷米 编辑: ruby进程似乎为作业分配内存。但是当作业完成时,分配的内存似乎没有被释放。postgreSQL真的崩溃了吗?那将是非常奇怪的;我希望它会很慢,但不会崩溃。你可能还有其他问题Ruby on rails Rails应用程序+Apache乘客+Postgres:CPU消耗,ruby-on-rails,apache,passenger,cpu,rails-postgresql,Ruby On Rails,Apache,Passenger,Cpu,Rails Postgresql,我有一个Rails 3.0应用程序在CPU消耗方面有问题 该应用程序在Debian机器上的Apache+passenger mod上以生产模式工作。这是一个具有6GB内存和2CPU 1核3GHz的虚拟机。这是一个邮件应用程序,只需单击链接即可阅读邮件,需要在服务器上执行一系列操作来呈现页面。这个简单的点击需要大约50%的CPU在2到3秒内,我用top命令看到它 问题是我在系统上有大约150个用户,Postgresql数据库安装在同一台机器上。当多个用户同时进行操作时,CPU的使用率为100%,P
您应该能够提高postgresql守护进程的优先级,或者降低rails应用程序的优先级:在Unix/Linux中,就像root应该允许您提高postgresql服务器的优先级,以便它获得所需的CPU,而不是rails应用程序 我忘了提到CPU使用的内存也在增加 在我的Rails日志中,我发现了如下错误: ActiveRecord::StatementInvalid PG::Error:FATAL:arrêt des connexions suite a la demande de l'administrator致命:arrêt des connexions suite a la demande de l'administrator 信号异常信号项 所以请求选择、插入,。。。被Postgresql拒绝。
我想,在出现问题期间,Postgresql的日志是空的,因为如果没有资源,Postgresql无法写入日志。根据您的说法,您最好的选择可能是使用连接池并尽可能减少同时连接的数量。这将减少PostgreSQL内存,但更重要的是,它将提高吞吐量,因为信号量和磁盘I/O的等待时间更少。毕竟,处理器和硬盘驱动器一次只能完成这么多任务。一个好的起点是CPU核心数的两倍加上磁盘轴数 在Ruby方面,这听起来像是一个垃圾收集问题。如果没有更多的信息很难说,但我会先删除您的并发PostgreSQL连接数,因为这是一个web应用程序,因此连接不太可能长时间处于空闲状态