Ошибки Heroku, Oink и R14. Может ли одна строка кода потребовать 70 МБ памяти?

Я был несколько обеспокоен количеством R14 ошибки я получаю на Heroku в последнее время.

Я не знаю, связано ли это с использованием Unicorn. Или недавно установили New Relic или Logentries. Я действительно не могу решить это.

Я "установил" Oink и только что получил следующий анализ, но понятия не имею, как полностью понять, что он пытается мне сказать.

---- MEMORY THRESHOLD ----
THRESHOLD: 0 MB

-- SUMMARY --
Worst Requests:
1. Nov 13 02:53:51, 70836 KB, messages#getmessagecount
2. Nov 13 02:03:04, 65836 KB, messages#getmessagecount
3. Nov 13 02:21:46, 60236 KB, messages#getmessagecount
4. Nov 13 01:32:47, 6328 KB, messages#deletemessage
5. Nov 13 01:33:43, 6328 KB, locations#sendprofiles
6. Nov 13 01:32:56, 6328 KB, messages#deletemessage
7. Nov 13 01:32:58, 6328 KB, messages#deletemessage
8. Nov 13 01:32:49, 6328 KB, messages#deletemessage
9. Nov 13 01:47:46, 5300 KB, messages#getmessagecount
10. Nov 13 03:09:56, 5300 KB, messages#getmessagecount

Worst Actions:
9, messages#deletemessage
7, messages#getmessagecount
1, locations#sendprofiles
1, photos#photodatarequest
1, messages#getmessages

Aggregated Totals:
Action                      Max Mean    Min Total   Number of requests
messages#getmessagecount    70836   29814   464 208700  7
messages#deletemessage      6328    3016    180 27144   9
locations#sendprofiles      6328    6328    6328    6328    1
photos#photodatarequest     460 460 460 460 1
messages#getmessages        300 300 300 300 1

Я, как дилетант, обеспокоен тем, что мой message#getmessagecount ест много памяти. Это то, что выше?

Если так... рутина просто:

def getmessagecount

    @messagecount = Message.where(recipient: current_user, messageSysMessCode: 0, messageAdminMessage: false).count

  end

И я понятия не имею, как это может быть "утечка" памяти.

График использования памяти на Heroku за последний день выглядит так:

я использую Ruby 2.1.4 а также Rails 4.1.7 если это поможет. Я использую две веб-динамо и один рабочий.

Ох... и моя процедура удаления сообщения:

def deletemessage

@message = Message.where(recipient_id: current_user.id, id: params[:messageID]).first
if (@message)
  @message.delete
  @code = "OK"
else
  @code = "Couldn't delete message"
end

конец

Это убивает мою производительность (если это правильно сказать) каждые 3 часа или около того. Я понятия не имею, почему это увеличивается каждые 10 минут (что я надеюсь вывести из чтения графика). 10 минут могут быть значительными, так как у меня есть приложение для iPhone, которое опрашивает getmessagecount рутина каждые 10 минут с одним тестовым приложением. Я могу только удивляться, что произойдет, если 10 копий приложения (или тысячи) начнут попадать на сервер?

Любая помощь будет очень ценится.

0 ответов

Другие вопросы по тегам