Назад | Перейти на главную страницу

mod mono в некоторых ситуациях потребляет много памяти и процессора. Как это улучшить?

Я создал веб-сайт apache + mod_mono asp.net mvc3 и столкнулся с некоторыми странными проблемами.

Иногда, по неизвестной мне причине, сайт просто перестает отвечать.
Когда это происходит, я ssh в свою учетную запись Linode (где я размещаю свой веб-сайт) и запускаю "top" только для того, чтобы убедиться, что моно-процесс использует до 400% ЦП (как это вообще возможно? Виртуализация, может быть?) И много памяти.
Это якобы известная проблема (посмотри это). Однако мой веб-сайт очень новый, и у меня никогда не бывает больше 10-20 онлайн-посетителей, поэтому о высокой нагрузке не может быть и речи.

Я также провел несколько стресс-тестов локально, и проблема не возникла. Проблема появляется только на моем производственном сервере (который работает круглосуточно и без выходных), что заставило меня подумать, что, возможно, моно нужно перезапускать время от времени (хотя я хотел бы знать, зачем это нужно в моем случае, поскольку мой сайт по-прежнему очень скромный). По этой причине я установил время автоматического перезапуска на два часа для моно. Даже после этого проблема все равно появлялась (хотя и реже).

Затем я сразу подумал о настройке MonoMaxActiveRequests и MonoMaxWaitingRequests, но по правде говоря, я понятия не имею, должны ли эти значения быть низкими или высокими, чтобы избежать проблемы, с которой я столкнулся. Я также не понимаю, почему значение по умолчанию для MonoMaxWaitingRequests всего 20. Означает ли это, что мой сервер может обрабатывать только 40 одновременных запросов, поскольку очередь ожидания не может превышать 20?

В целом, мой вопрос (вопросы): я что-то делаю не так или все еще проблема с модом моно? Как я могу узнать, какие значения подходят для MonoMaxActiveRequests и MonoMaxWaitingRequests? Следует ли мне увеличивать эти значения или уменьшать их, чтобы избежать указанной проблемы?

Заранее спасибо.

MonoMaxActiveRequests и MonoMaxWaitingRequests делают это значение равным 0.

и установите MonoAutoRestartMode Request 1000