Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- callback function
- 빅데이터
- 개발환경
- 웹디자인
- 인턴
- CSS
- NoSQL
- Javascript
- CoffeeScript
- non-blocking
- npm
- Microsoft
- 자바스크립트
- 750R
- 제이쿼리
- Python
- MongoDB
- github
- 테스트
- 콜백 함수
- Ajax
- JQuery
- 마소
- 오픈소스
- 크로스브라우징
- node.js
- AngularJS
- git
- 마이크로소프트
Archives
- Today
- Total
Inspired World
Node.js 에서 멀티코어(Multi-core)를 사용해보자! 본문
Node.js 의 큰 특징인 이벤트 기반은 하나의 스레드를 사용함에 있어서는
비동기처리에 있어서 아주 뛰어나지만
멀티코어 CPU를 사용하는 서버에서 Node.js를 돌리다보면
나머지 사용하지 않는 코어들이 아깝게 느껴집니다.
또 그런 사용하지 않는 코어 때문에
다른 언어/웹프레임워크와의 벤치마크에서도 많이 밀리는 모습을 보여줍니다.
하지만
Node.js 0.4.x 시절에도 cluster라는 모듈이 있었고
버전이 0.6.x 가 되면서
자체 모듈로써 포함이 되면서 멀티코어에서도 Node.js를 활용할 수 있게 되었습니다.
사용 방법은 간단합니다.
위 코드 처럼 이미 작성된 http server나 express 코드를 else 부분에 넣어주고
Worker를 CPU 코어 갯수 만큼 생성하게 하면 됩니다.
또 위 예제에도 나와있듯이 death 이벤트 함수를 이용해서 Worker가 오류 발생으로 인해서 죽게 되더라도
다시 생성할 수 있게 설정할 수 있습니다.
비동기처리에 있어서 아주 뛰어나지만
멀티코어 CPU를 사용하는 서버에서 Node.js를 돌리다보면
나머지 사용하지 않는 코어들이 아깝게 느껴집니다.
또 그런 사용하지 않는 코어 때문에
다른 언어/웹프레임워크와의 벤치마크에서도 많이 밀리는 모습을 보여줍니다.
하지만
Node.js 0.4.x 시절에도 cluster라는 모듈이 있었고
버전이 0.6.x 가 되면서
자체 모듈로써 포함이 되면서 멀티코어에서도 Node.js를 활용할 수 있게 되었습니다.
사용 방법은 간단합니다.
위 코드 처럼 이미 작성된 http server나 express 코드를 else 부분에 넣어주고
Worker를 CPU 코어 갯수 만큼 생성하게 하면 됩니다.
또 위 예제에도 나와있듯이 death 이벤트 함수를 이용해서 Worker가 오류 발생으로 인해서 죽게 되더라도
다시 생성할 수 있게 설정할 수 있습니다.
'Node.js' 카테고리의 다른 글
JavaScript 및 Node.js, 전역 객체에 접근하기 (0) | 2012.03.01 |
---|---|
Node.js 에서 require를 활용해 소스를 정리해보자 (0) | 2012.02.27 |
Node.js에서 진정한 Non-blocking 코드 구현, forAsync 모듈! (8) | 2012.02.04 |
Node.js 를 이용한 웹 개발 - Express Framework (0) | 2012.02.01 |
Node.js 설치 및 개발환경 세팅하기 (2) | 2012.01.30 |
Comments