2016-06-29 2 views
0

나는 갑자기 작은 유성 js 앱을 가지고 100 % cpu를 사용하기 시작합니다.Meteor js application cause cpu 100 %

meteor add disable-oplog 

을하지만 아무것도 변화하지 않았다 : 나는 그것을 사용 중지 한 때문에 CPU의 높이 사용을 일으키는 원인이 oplog 어쩌면 말한다 몇몇 블로그를 발견했다. 나는 개발 환경 ("meteor"명령을 통해 앱 실행)과 배포 환경 (mup을 사용하여 앱을 원격으로 실행)에서이 문제를 직면하고있다. 개발 환경 : 우분투 14.0 2G 64 비트 유성기 1.3 노드 js 0.10.45.

배포 환경 (물방울) : 우분투 14.0 512Mb 64 비트 메테오 1.3 노드 js 0.10.45.

설치된 패키지 :

installed packages

모니터링 프로세스는 : ​​

enter image description here

답변

1

내가 전에이 문제로 실행하지만 하나 개의 서버에 너무 많은 생산 유성 개발 enviornments를 실행할 때 한 너무 오랫동안.

내가 대신 넣은 스왑 솔루션이었습니다. 유성 앱은 많은 메모리를 사용할 수 있으며 512MB는 너무 적을 수 있습니다. 이상하게도 CPU 스파이크로 나타난 모든 시간을 스와핑했습니다. 일단 더 나은 스왑 구성을 배치하면 모든 것이 잘되었습니다.

이것은 우분투 서버에 있었는데, 14 또는 16 이었다면 기억이 안납니다. 디지털 오션 호스팅 (스왑은 기본적으로 사용하지 않도록 설정되어 있으며, 솔루션은 처음에는 분명히 좋지 않았습니다).

아마도 이것이 답이 될 수는 없겠지만 가능한 한 정확하게 작성하고 있으므로 알아 내기가 어려울 수 있습니다.

0

어쩌면 당신은 사용해 볼 수 있습니다 CPU 제한은 여기에 내가 을 만든 bash는 스크립트의 https://gist.github.com/cortezcristian/5ab4fdddcc573972d44873f1e97a2b88

먼저 CPU 제한 기 설치해야합니다 : 당신은 당신이 (50)를 원하는 제한을 선택할 수 있습니다 그 후

sudo apt-get install cpulimit 
ps ax | grep node | grep meteor | grep -v grep | awk '{print $1}' > /tmp/my-app.pid 
cpulimit --p $(cat /tmp/my-app.pid) --limit 77 

을/100 --limit 플래그가 있습니다.

+1

감사합니다. 512Mb에서 1Gb로 디지털 바다 물방울을 확장했습니다. 또한 내 함수 (반환 및 예외)에 대한 최적화를 수행했으며 이제 다시 배포했습니다. 사용자가 상호 작용할 때 100 %에 도달했습니다. 그것이 유성의 본질이라고 생각하지만 더 이상 거기에 붙어 있지 않습니다. 다시 한 번 감사드립니다. – nemrrached