Я делаю онлайн-браузер с веб-разъемами и сервером узлов, и если у меня около 20-30 игроков, то, как правило, процессор составляет около 2%, а оперативная память - 10-15%. Я просто использую дешевую капельку Digital Ocean для ее размещения.Узел сервера случайным образом всплески до 100%, а затем сбой. Как диагностировать?
Однако, каждые 20-30 минут кажется, что использование центрального процессора сервера будет увеличиваться до 100% в течение 10 секунд, а затем, наконец, сбой. До этого момента процессор обычно колеблется около 2%, и игра работает очень плавно.
Я не могу сказать для меня жизнь, что вызывает это, поскольку в журналах ошибок нет, и ничто в игре, которые я вижу, не вызывает. Просто кажется случайным событием, которое приводит сервер вниз.
Есть также несколько небольших шипов, которые не приводят сервер вниз, но вскоре разрешают себя. Вот изображение:
Я не думаю, что я блокирует цикл событий в любом месте и у меня нет никаких путей выполнения, которые кажутся долго работает. Пакеты на сервер и с сервера обычно два раза в секунду для каждого пользователя, поэтому не так много полосы пропускания. И сервер в основном просто реле с небольшой обработкой пакетов, кроме проверки, поэтому я не уверен, что путь кода может быть настолько интенсивным.
Что я могу сделать, чтобы рассказать об этом и узнать, с чего начать, как исследовать причины этих всплесков? Я хотел бы представить, что есть некоторый код, о котором я забыл, что на удивление медленнее под нагрузкой или, может быть, мне не хватает флага узла, который бы разрешил его, но я не знаю.
Вы проверили это http://techblog.netflix.com/2014/11/nodejs-in-flames.html? или это http://stackoverflow.com/questions/13375735/node-js-cpu-100/13376256#13376256? Можете ли вы подтвердить загрузку из процесса узла через верх или что-то вроде? –
@ mh-cbon: верхний подтвердил, что все было от узла. –
Вы считали, что взглянули на newrelic? Может помочь. –