Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 乘客实例变为空闲,开始占用CPU_Ruby On Rails_Ruby_Ruby On Rails 3_Passenger_Cpu - Fatal编程技术网

Ruby on rails 乘客实例变为空闲,开始占用CPU

Ruby on rails 乘客实例变为空闲,开始占用CPU,ruby-on-rails,ruby,ruby-on-rails-3,passenger,cpu,Ruby On Rails,Ruby,Ruby On Rails 3,Passenger,Cpu,以下是一个受影响的生产实例的乘客状态输出: Version : 4.0.53 Date : 2015-01-07 00:59:55 +0000 Instance: 6919 ----------- General information ----------- Max pool size : 8 Processes : 8 Requests in top-level queue : 0 ----------- Application groups ----------- /hom

以下是一个受影响的生产实例的
乘客状态
输出:

Version : 4.0.53
Date    : 2015-01-07 00:59:55 +0000
Instance: 6919
----------- General information -----------
Max pool size : 8
Processes     : 8
Requests in top-level queue : 0

----------- Application groups -----------
/home/app/web#default:
  App root: /home/app/web
  Requests in queue: 0
  * PID: 7009    Sessions: 1       Processed: 1607    Uptime: 53m 19s
    CPU: 7%      Memory  : 217M    Last used: 2m 51s ago
  * PID: 7021    Sessions: 1       Processed: 1823    Uptime: 53m 19s
    CPU: 6%      Memory  : 217M    Last used: 2s ago
  * PID: 7032    Sessions: 0       Processed: 2241    Uptime: 53m 19s
    CPU: 7%      Memory  : 218M    Last used: 2s ago
  * PID: 7044    Sessions: 1       Processed: 1539    Uptime: 53m 19s
    CPU: 15%     Memory  : 209M    Last used: 14m 27s ago
  * PID: 7057    Sessions: 0       Processed: 1549    Uptime: 53m 19s
    CPU: 5%      Memory  : 217M    Last used: 1s ago
  * PID: 7074    Sessions: 1       Processed: 554     Uptime: 53m 18s
    CPU: 41%     Memory  : 220M    Last used: 41m 37s ago
  * PID: 7085    Sessions: 1       Processed: 1564    Uptime: 53m 18s
    CPU: 10%     Memory  : 219M    Last used: 7m 5s ago
  * PID: 7106    Sessions: 1       Processed: 14      Uptime: 53m 17s
    CPU: 56%     Memory  : 174M    Last used: 52m 30s ago

如您所见,8个实例中有两个在>40分钟内未使用,但它们占用了我机器的大部分CPU。有没有关于如何调试的提示?

代码中有没有循环?如果实例进入这种状态,它是否会从中恢复(一小时后,一天)?您是否有运行New Relic或类似的工具,可以让您深入了解控制器的慢动作?这个实例是否可能在数据库上运行极端复杂的查询,您查看了数据库的日志了吗?很好的提示@ROT,是的,我的代码中有很多循环。但代码库相当大,因此静态检查每个循环将花费太长时间。@spickermann AFAIK,实例永远不会恢复。我有New Relic,我所有的控制器操作都在1s内运行。平均响应时间为150ms(直到所有实例都被阻塞为止)。我不认为有任何非常复杂的查询正在运行,但我会看一看数据库日志。@fedenusy在每次循环迭代时写入一个日志文件,也许每个循环都有一个简单的数字。然后,当您获得56%的cpu时,您可能会看到许多1或2,以帮助缩小范围。