#javascript #node.js #performance #meteor #forever
#javascript #node.js #Производительность #метеор #навсегда
Вопрос:
A meteor.js приложение 0.82 запущено на сервере Ubuntu 14.04 с 2 ГБ памяти и 2 ядрами процессора. Он был развернут с помощью mup
. Однако загрузка процессора очень высока, htop
сообщает 2.72
о средней загрузке.
Вопрос: Как мне узнать, какая часть приложения вызывает такую высокую загрузку процессора? Я использовал Kadira, но он не показывает ничего, что значительно увеличивает нагрузку на процессор afaik.
Использует ли Meteor только одно ядро?
Комментарии:
1. вы запускаете свое приложение из пакета или с
meteor run
?2. @imslavko Я запускаю пакет. Пакет был создан и загружен с помощью
mup
.3. чтобы ответить на один из ваших вопросов: да, meteor использует только одно ядро, потому что это все node.js
4. Почему существует 6 процессов mongo?
5. @AndrewMao Я не уверен, почему их 6. Я перезапустил
mongod
, и это все еще 6. Я использую mongodb версии v2.6.3
Ответ №1:
У меня была похожая проблема раньше с Meteor 0.8.2-0.8.3. Вот что я сделал, чтобы уменьшить загрузку процессора, надеюсь, вы можете найти это полезным.
- дважды проверьте свои функции, убедитесь, что все функции работают правильно
return
и правильно улавливают ошибки - попробуйте использовать набор реплик и oplog mongo преобразует standalone в набор реплик
- напишите сценарии для автоматического завершения и повторного запуска процесса узла, если он превышает 100% загрузки процессора
- используйте возможности многоядерности, запустив 2 процесса (редактирование вы уже сделали) и настройте баланс нагрузки и обратный прокси
- обязательно просмотрите свою публикацию и подписку и ограничьте, какие данные следует отправлять клиенту (просто избегайте чего-то вроде
Collection.find();
)
Лично я рекомендую Phusion Passenger, он упрощает развертывание приложений Meteor, и я использовал его для нескольких проектов без каких-либо серьезных проблем.
Еще одна вещь, избегайте запуска процессов от root (или привилегированного пользователя), вы должны запускать свои приложения от другого пользователя, например от www-data. Это по очевидной причине безопасности.
P.S. и несколько процессов mongo, отображаемых в htop, являются потоками в главном процессе, вы можете просмотреть его в древовидном режиме, нажав F5
.