我有一个生产rails应用服务器,rails worker进程的内存使用量在3-4天内从~300 MB增加到~1.2GB。
如何调试此内存泄漏。 我使用的是rvm 2.2.2,我的应用服务器部署在AWS:ElasticBeanstalk中。我正在使用puma web服务器。
请提供详细的答案。
答案 0 :(得分:2)
我最近遇到了与ruby 2.2.2类似的问题。我使用$cuisines = implode('","' , explode('/','hk-01/hk-06'));
$sql_cuisine = 'SELECT * FROM cc_cuisines WHERE cuisine_asoc IN ("'. $cuisines .'")';
$result_cuisine = $conn->query($sql_cuisine);
while( $row2 = $result_cuisine->fetch()) {
echo $row2['cuisine_name'];
}
gem写入AWS S3。我在this issue on aws-sdk GitHub找到了解决方案。
ruby 2.2.0到2.2.2附带的aws-sdk
类中存在内存泄漏。将文件发送到S3时,StringIO
使用此类。这个错误在2.2.3上是reported and fixed。
希望升级到ruby 2.2.3可以解决您的问题。