2017-02-04 4 views
3

Я обновил мой:MONO Использование 4.6.2 High CPU на сервере

  • Ubuntu сервер 16.04.1 LTS и
  • MONO к v4.6.2

... из официальный репозиторий.

С обновлением, веб-сайты по-прежнему работает нормально, но примерно через день или два, некоторые процессы MONO сходят с ума и принять 100% из CPU. У меня разные сайты; в основном простой HTML с небольшим количеством кода. Это происходит случайно, и на разных сайтах каждый раз. Это совершенно случайно.

Затем я получаю оповещение по электронной почте о высоком использовании ЦП, подключаюсь через SSH, набираю «htop» и убиваю процесс, и он возвращается в нормальное состояние ... на день или два.

Это определенно похоже на ошибку в этой версии МОНО. Любой способ исправить это? У кого-нибудь еще была эта проблема? Или, может быть, мне нужно перейти на другую версию, которая не имеет этого повреждения?

Благодаря

Edit: После 2-х дней, КАЖДЫЙ процесс MONO занимает до полного процессора.

Глядя в логе-файл Apache2, я мог бы найти это связанно с MONO

WARNING: WebConfigurationManager's LRUcache evictions count reached its max size 
Cache Size: 100 (overridable via MONO_ASPNET_WEBCONFIG_CACHESIZE) 

Кроме того, «служба apache2 перезагрузка» не решает проблему. Я должен вручную убить процессы или перезагрузить компьютер.

+0

Не уверен, что вы имеете в виду. Я пишу, используя Visual Studio 2015 в Windows, и развертываю на Ubuntu/MONO. Веб-сайты работают отлично в течение многих лет, вплоть до обновлений. В основном, я обновился, потому что хотел использовать SQLite, для которого требуется v4.2.3.4 или новее. –

+0

Извините, это просто шутка. Пробовали ли вы другую машину или другие приложения Mono? В противном случае вообще смело обвинять .net/mono для ошибок. Желаю вам хорошо :) – MickyD

+0

Ohhhh ... так что SQLite новый для уравнения? Может, это ваш новый код? – MickyD

ответ

0

После попытки всех вариантов кажется, что MONO просто не работает с Apache2 с mod_mono. Единственное решение, которое я нашел, - это переключить Apache2 из prefork в рабочий режим, где сервер MONO нужно запустить вручную, а Apache2 просто перенаправляет ему запросы - и, следовательно, Apache2 напрямую не коснется MONO.Существует очень мало документации о том, как это сделать, но так как NGINX работает в этом режиме, вы можете найти инструкции о том, как настроить его для NGINX и перевести файл конфигурации приложения для Apache2.

Это хорошие места, чтобы начать

http://www.mono-project.com/docs/web/fastcgi/nginx/

http://epmjunkie.com/mono-fastcgi-startup-script/

1

Я играл с различными версиями MONO и набрал «service apache2 reload», чтобы воспроизвести проблему с высокой загрузкой процессора.

В MONO 4.8, похоже, случается немного реже, но проблема все еще существует.

В MONO 4.2.3.4 проблема также существует.

В MONO 4.2.1, который поставляется по умолчанию на Ubuntu, этой проблемы не происходит.

Что касается .NET Core, некоторые из них попробовали его и настоятельно рекомендовали мне избежать этого, пока он не станет более стабильным.

Так на данный момент, единственным решением является придерживаться MONO 4.2.1

Это также подтверждает, что это связано с MONO, а не мой код или конфигурации сервера.

+0

Хорошее исследование. Вы потратили много времени на это. Надеюсь, что кто-то обратит внимание и исправит – MickyD

+0

Сегодня утром мой сервер снова использовал 100% использования процессора ... будет держать вас в курсе. Однако определенная разница в этой версии отличается от этой версии и не может быть воспроизведена с перезагрузкой apache2. Если это будет продолжаться, я попробую с 3.2.8 –

+0

Я сдался. На этот раз я снова установил новую новую VPN и передал файлы. Это может быть обновление ОС на месте, которое прикручивает вещи; многие рекомендуют не делать этого. Это должно решить проблему. –

Смежные вопросы