가상화는 워크로드 통합을 사용하여 효율성의 증가를 약속한다. 다음과 같이 가상화 밀도를 최대화하는 동시에 우수한 성능을 유지보수하는 것은 진정한 도전과제가 될 수 있다.
- CPU, 메모리 및 네트워크의 대역폭과 같은 자원의 워크로드 활용과 스토리지 액세스는 시간이 지나면서 다르다. 이러한 자원을 수요에 따라 동적으로 할당할 수 있다면, 과다 할당으로 더 우수한 밀도를 달성할 수 있다.
- 최적의 자원 관리도 시스템 구성 및 하드웨어 설정과 같은 요인에 따라 다르다.
두 요인 다 통합하는 관리 전략을 개발하는 한 가지 방법은 정책 언어에서 규칙 세트를 쓰는 것이다. 정책을 사용자 고유 조건으로 맞출 수 있고 통합과 성능 목표의 균형을 효율적으로 유지할 수 있다.
이 기사는 공격적인 과다 할당과 연관된 도전과제를 탐색하고, 이러한 도전과제를 다루는 데 도움을 줄 수 있는 정책 구동형 관리 도구를 제안한다. 도구는 일반 KVM 환경에 배치되고 두 개의 구별된 워크로드를 관리한다. 이 기사는 이 연습의 결과를 평가하고, 추가 작업 항목 및 잠재적인 연구 주제에 대한 제안으로 마무리한다.
KVM에서 메모리 과다 할당의 완전한 조사는 Linux 메모리 관리자 그 자체로 시작해야 한다. Linux는 가상 메모리의 개념에서 빌드되었기 때문에, 설계로 메모리 과다 할당 기술을 사용한다.
프로세스에서 요청한 메모리 페이지는 실제로 사용될 때까지 할당되지 않는다. Linux 페이지 캐시를 사용하면 복수 프로세스가 공유 페이지를 통해 파일에 액세스하여 메모리를 저장할 수 있다. 즉, 메모리가 고갈되면서 시스템은 상대적으로 자주 사용하지 않는 페이지를 디스크로 스와핑하여 메모리를 완전히 사용 가능하게 할 수 있다. 이러한 기술들이 완벽하지 않은 반면에, 할당된 메모리 양과 실제로 사용된 양 사이에 엄청난 차이를 초래할 수 있다.
KVM 가상 머신이 정규 프로세스이기 때문에, 표준 메모리 보존 기술이 적용된다. 하지만, 정규 프로세스와는 달리, KVM 게스트는 중첩된 운영 체제가 들어있으며, 이는 두 가지 핵심 방식으로 메모리 과다 할당에 영향을 준다. KVM 게스트는 정규 프로세스보다 더 우수한 메모리 과다 할당 잠재력을 보유할 수 있다. 이는 활용 면에서 변동으로 야기되는 최소 및 최대 게스트 메모리 요구사항 간의 커다란 차이로 인한 것이다.
이 변동 이용은 가상화의 관심을 끄는 면에서 매우 중요하지만, 항상 쉬운 것은 아니다. 호스트가 KVM 게스트에 할당된 메모리를 관리하는 동안, 게스트 커널은 동시에 동일한 메모리를 관리하고 있다. 호스트와 게스트 사이의 어느 형태의 협업도 이루어지지 않아, 호스트나 게스트 메모리 관리자 둘 중 어느 것도 캐싱과 스와핑에 대한 최적의 의사결정을 내릴 수 없으며, 이로 인해 메모리 사용의 효율성이 떨어지고 성능이 저하될 수 있다.
Linux는 추가 메커니즘을 제공하여 가상화에 특화된 메모리 과다 할당을 다룬다.
- 메모리 조정(memory ballooning)은 하나의 기술로서, 호스트가 협업하는 게스트에게 지정된 메모리의 일부를 해제하도록 지시하므로, 이를 다른 용도로 사용할 수 있다. 이 기술은 호스트에서 게스트로 메모리 압력을 다시 집중하는 데 도움을 줄 수 있다.
- KSM(Kernel Same-page Merging)은 동일한 페이지에 대해 이전에 식별된 메모리 범위를 스캔하고 이를 함께 병합하며 복제를 없애는 커널 스레드를 사용한다. 많은 수의 동종 가상 머신을 실행하는 시스템은 이러한 형식의 메모리 공유로 가장 큰 혜택을 보게 된다.
- 기타 자원 관리 기능, 예를 들어 Cgroups는 가상 머신 사이에 자원을 동적으로 섞을 수 있는 메모리 과다 할당 분야의 애플리케이션을 보유한다.
이러한 메커니즘은 과다 할당된 메모리를 관리하기 위해 효율적인 프레임워크를 제공하지만, 이는 모두 중요한 제한사항을 공유한다. 즉, 이는 반드시 외부 엔티티로 구성되고 튜닝되어야 한다. 가상화 스택의 개별 컴포넌트가 튜닝 의사결정을 내리기 위한 정보를 충분히 보유하지 않기 때문에 자동 구성을 사용할 수 없다.
예를 들어, 호스트의 메모리가 부족한지 여부와, 성능에 불리하게 영향을 주지 않고 게스트로부터 얼마나 많이 메모리를 조정할 수 있는지에 대해 아는 것은 하나의 qemu 프로세스의 범위를 넘어서는 것이다. 관리 정책이 호스트와 게스트에 대한 실시간 정보와 결합될 때에만 이러한 의사결정을 내릴 수 있다.
KSM으로 이러한 도전과제를 해결하기 위해 ksmtuned라는 디먼이 공유 잠재성과 메모리의 필요에 따라 튜닝 가능한 매개변수를 동적으로 관리하도록
작성되었다. ksmtuned가 단일 메커니즘을 별개로 관리하기 때문에 이는 포괄적인 솔루션의 일환이 될 수 없다.
어느 과다 할당 메커니즘의 사용이나 기본적으로 호스트와 게스트 메모리 관리 시스템의 운영에 영향을 준다. 그러므로, 복수 메커니즘의 동시 사용은 이차 효과를 야기할 가능성이 있다. 그림 1은 메모리 조정(memory ballooning)과 KSM 사이의 상호작용을 설명한다.
그림 1. KSM에 대한 메모리 조정의 효과
이 예제에서, 증가한 조정 압력은 페이지를 공유하는 KSM의 기능을 약화시킨다. 게스트 조정 구동자는 호스트 페이지가 공유될 수 있는지 여부를 고려하지 않고 조정하는 페이지를 선택한다. 공유 페이지를 조정하는 것은 실제로 아무 메모리도 절약하지 않고 자원의 게스트를 빼앗기 때문에 실수이다. 효율성을 극대화하기 위해 이러한 상호작용 유형이 예상 및 관리되어야 한다.
다른 목표에 부합하도록 설계된 아키텍처를 사용하여 KVM 기반 가상화를 무수한 구성에 배치할 수 있다. 공격적인 가상 머신 통합은 성능 균형을 요구한다. 둘 사이의 적절한 균형은 상황에 따라 다르다.
메모리 과다 할당은 다른 시스템 자원 모두에 대한 요구를 늘릴 수 있다. 메모리 캐시에 대한 압력은 디스크 또는 네트워크 I/O의 증가를 초래할 것이며, 증가한 페이지 재확보로 인해 게스트는 CPU 사이클을 더 많이 소모할 것이다.
이러한 도전과제는 이 태스크를 위해 설계된 새로운 디먼인 MOM(Memory Overcommitment Manager)으로 다룰 수 있다.
MOM(Memory Overcommitment Manager) 디먼이 그림 2에 표시된다.
그림 2. Memory Overcommitment Manager
MOM은 호스트와 게스트 통계 콜렉션, 정책 엔진 및 조정 및 KSM을 위한 제어 지점에 유연한 프레임워크를 제공한다. 관리자는 MOM을 통해 메모리 과다 할당의 더 높은 수준을 달성하기 위해 튜닝 가능한 시스템을 향한 동적 조정으로 실시간 조건에 응답하는 과다 할당 정책을 구축할 수 있다.
MOM은 libvirt를 사용하여 호스트에서 실행 중인 가상 머신 목록을 유지보수한다. 정규 콜렉션 간격으로 데이터가 호스트와 게스트에 대해 수집된다. 데이터는 복수 소스를 출처로
할 수 있다(호스트 /proc 인터페이스, libvirt API, virtio-serial 또는 게스트로의 네트워크 연결). 데이터는 한 번 수집되면
정책 엔진이 사용하기 위해 조직화된다. (Virtio는 네트워크와 디스크 장치 드라이버의 표준이며, 이는 게스트의 장치 드라이버가
가상 환경에서 이를 실행 중인 것을 "알고", 따라서 하이퍼바이저와 협력하여, 게스트에게 고성능 네트워크와 디스크 운영을 확보하도록 한다. 요약하면, Virtio는
반가상화(paravirtualization)의 성능 혜택을 극대화하여 전달한다.)
정책 엔진은 근본적으로 간단한 정책 언어로 작성된 프로그램을 이해하는 소규모 해석 프로그램이다. 정기적으로, MOM은 수집된 데이터를 사용하여 사용자 공급 정책을 평가할 것이다. 정책은 게스트의 메모리 조정의 팽창 또는 KSM 스캐닝 비율의 변경 등과 같은 구성 변경을 트리거할 수 있다.
시간이 흐르면서, MOM 프레임워크는 추가 데이터 소스에서부터 수집하고 이 영역에서 개발 진행률로 새 메모리 과다 할당 메커니즘을 제어하도록 확장할 수 있다.
과다 할당된 메모리 관리 측면에서 MOM과 그 효율성을 평가하기 위해, 다음과 같이 두 개의 가상화 워크로드를 살펴보자.
- 첫 번째 워크로드에서 가상 머신은 정해진 액세스 패턴에 따라 익명 메모리의 변동량을 소모하도록 구성되었다.
- 두 번째 워크로드는 각 가상 머신이 독립적 MediaWiki 인스턴스로 작동하는 LAMP 벤치마크를 사용한다.
각 워크로드에 대해 메모리 조정과 KSM을 제어하는 MOM 정책이 평가된다. 호스트 스와핑을 방지하기 위해 각 게스트의 메모리 조정은 호스트와 게스트 메모리 압력에 따라
동적으로 조정된다.
ksmtuned와 동일한 알고리즘을 사용하여, KSM은 메모리 압력과 공유 가능한 메모리 양을 기반으로 조정된다.
Memknobs 워크로드 시나리오는 커널의 메모리 재확보 알고리즘을 자극하는 패턴에서 익명 메모리 페이지를 할당하고 접촉하여 메모리 압력을 생산하는 Memknobs라고 하는 간단한 프로그램을 사용한다. Memknobs는 고정된 크기 버퍼를 할당하고 그 버퍼의 페이지를 통해 루프하여, 각각에 작성한다. 각 반복에 대해 점진적으로 변화하는 버퍼 크기로 반복적으로 Memknobs를 호출하여 게스트는 I/O 컴포넌트 없이 메모리 바인드된 워크로드를 시뮬레이션할 수 있다. 호스트에서 메모리를 과다 할당하기 위해 각 인스턴스가 고유 패턴으로 메모리를 사용한 32개의 가상 머신으로 Memknobs를 배치하였다.
Cloudy 워크로드 시나리오의 경우, Cloudy라고 하는 오픈 세트를 사용하여 디스크 I/O 컴포넌트로 현실적인 워크로드를 생성하였다. Cloudy는 설정이 편리한 LAMP 벤치마크이며, 가상화 확장 가능성을 측정하고 자원 과다 할당의 효과를 보여준다. 복수 가상 머신이 MediaWiki 서버로 구성된다. 각 wiki는 Wikipedia에서부터 페이지로 로드되고 이미지 데이터를 임의로 생성했다.
포함된 JMeter 테스트 계획은 인스턴스를 모두 연습하고 처리량과 응답 시간을 측정한다. 테스트 계획은 안정 상태(steady-state) 워크로드를 작성하거나 복수 가상 머신 그룹 사이에 로드를 대체하여 변동성을 도입하도록 구성될 수 있다. 로드의 양과 유형은 요청 비율, 동시 사용자의 수 및 임의로 생성된 wiki 이미지 파일의 크기를 변경하여 달라질 수 있다. PHP 가속기는 CPU 소비를 무시해도 되는 양으로 줄인다. 이 워크로드는 엄청난 I/O 양을 생성할 수 있으며, 가상 머신 이미지 스토리지 장치에 액세스할 때에 사용 가능한 대역폭의 양에 민감하다.
여기에서 메모리 조정 전략은 메모리 압력을 게스트에게 돌리는 것이 아니라 호스트 스와핑을 방지하도록 설계되었다. 게스트 페이지 액세스 정보가 없는 호스트는 스왑하는 페이지를 선택할 때에 LRU 알고리즘을 적절하게 적용할 수 없다. 더 나아가 게스트 운영 체제는 워크로드의 메모리 사용에 대한 최대 정보를 보유하고, 최선의 페이지 대체 의사결정을 내릴 수 있어야 한다.
정책은 바로 사용 가능한 호스트 메모리의 풀을 유지보수하기 위해 메모리 조정에 의존한다. /proc/meminfo에서 보고하는 대로
사용 가능한 메모리를 MemFree, Buffers 및 Cache의 합계로 정의한다. 이 풀이 총 메모리의 20퍼센트
아래로 떨어지면, 메모리 조정이 초기화된다. 압력은 호스트 메모리 압력의 레벨에 따라 게스트에 적용된다. 사용 가능한 메모리가 먼저 재확보되므로, 사용하지 않은 메모리가 더 많은 게스트는
가장 많이 조정된다. 충분한 조정 압력을 통해 게스트는 캐시된 페이지를 축출하고 스와핑을 시작할 것이다. 메모리 압력이 한 번 가라앉으면, 조정은 게스트에게 메모리를 리턴하도록 축소된다.
KSM 튜닝 알고리즘은 ksmtuned의 알고리즘과 일치하도록 설계되었다. 먼저, 커널 스레드를 사용하는지 여부에 대한 의사결정은 총 호스트 메모리의 20퍼센트로 설정한
사용 가능한 메모리 임계값에 따라 내려진다. KSM은 호스트가 다음 두 가지 조건을 둘 다 부합하는 경우를 제외하고 실행하도록 허용된다.
- 사용 가능한 메모리가 임계값을 초과하고,
- 사용 가능한 메모리 임계값보다 적은 총 메모리가 모든 가상 머신에 지정된 총 메모리 양을 초과한다.
이러한 조건은 호스트가 메모리 압력 하에 있는지 여부와 가상화가 책임질 수 있는지 여부를 개별적으로 테스트한다. 필요하지 않을 때에
ksmd의 스위치를 끄면 CPU 사이클을 절약할 것이다.
ksmd가 사용되면, 운영이 총 메모리 크기 및 메모리 압력에 따라 튜닝된다. 스캔 사이의 휴면 시간은 호스트 메모리 크기에 따라
조정된다. 16GB 호스트의 경우, 10초가 기본값이다. 더 큰 용량의 머신은 더 적게 휴면할 것이고, 더 작은 용량의 머신은 더 많이 휴면할 것이다. 간격 당 스캔하는 페이지의 수는
사용 가능한 메모리의 양에 따라 늘어나거나 줄어든다. 사용 가능한 메모리가 사용 가능한 메모리 임계값보다 작으면 스캐닝 비율은 300페이지로 늘어난다. 그렇지 않으면 50으로 줄어든다. 스캔하는
페이지의 수는 64 ~ 1,250의 범위를 넘을 수 없다.
이번 실험은 IBM BladeCenter® HS22에서 수행되었다. 시스템에 EPT 지원과 48GB RAM을 갖춘 논리적 CPU 16대가 있다. 늘어난 스토리지 용량과 대역폭을 위해 가상 머신 이미지는 개인용 10기가비트 이더넷 LAN을 통해 연결된 외부 NFS 어플라이언스에 호스트되었다. Memknobs 및 Cloudy 워크로드 시나리오를 사용하여 MOM 정책의 효율성을 평가했다. 각 시나리오 내에서 성능 영향을 측정하려면 1시간 테스트가 MOM 정책이 활성화된 상태와 활성화되지 않은 상태 둘 다에서 완료되었다.
이 실험을 위해 2GB RAM 및 각 1대의 VCPU를 갖춘 32대의 가상 머신을 공급하였다. 정규 스와핑 활동을 야기하도록 호스트를 충분한 메모리 압력 아래 두기 위해 그림 3과 같이 Memknobs 메모리 로드를 교정했다. 실험을 통해 원하는 호스트 작동을 부여하는 패턴을 제작할 수 있었다.
그림 3. Memknobs 메모리 액세스 패턴
Memknobs 프로그램은 반복당 접촉할 수 있는 페이지 수를 추적한다. 이 처리량 값은 초당 접촉한 메모리의 메가바이트 단위로 보고된다. 서로 다른 실험들 사이에 비교할 수 있기 위해 각 게스트의 평균 처리량을 계산하고 이러한 32개의 값을 합하여 총 평균 처리량 점수를 이끌어 낸다. 표 1은 다른 Memory Overcommitment Manager 정책이 사용될 때에 달성한 점수를 비교한다.
표 1. MOM 정책 결과: Memknobs 총 평균 처리량
| MOM 정책 | 결과 |
|---|---|
| 없음 | 4331.1 |
| KSM만 | 4322.6 |
| KSM 및 조정 | 5399.5 |
이러한 결과는 메모리 조정의 사용이 20퍼센트에 가까운 처리량 증가에 기여했다는 점을 보여준다. KSM이 이 워크로드의 페이지 공유 면에서 고도로 효율적이라고 하더라도, 성능 증가의 원인이 되지는 않았다. 그림 4는 메모리 조정을 사용하는 Memknobs 실행과 사용하지 않는 실행 사이의 스왑 활동을 비교한다.
그림 4. Memknobs 스왑 비교
MOM 정책을 활성화하면 스왑 활동이 게스트에 효율적으로 집중되었고, 총 스왑 운영 수는 반으로 줄었다.
환경을 위해 Cloudy의 규모를 적절하게 조절하기 위해 32개의 가상 머신 MediaWiki 인스턴스를 구성했다. 이 워크로드는 Memknobs보다 메모리를 적게 사용한다. 메모리 바인드된 게스트를 보장하기 위해 1GB RAM만 각 VM에 지정되었다. 줄어든 가상 머신의 사용 공간을 보상하기 위해 15,714의 대용량 페이지를 예약하였다—호스트의 사용 가능한 메모리를 16GB로 효율적으로 줄인다.
JMeter 테스트 계획은 가상 머신당 초당 평균 16개의 요청 비율로 요청을 제공하도록 구성되었다. 이는 시스템이 과다 할당되지 않았을 때 자원 병목 현상 없는 보통 로드를 제작하였다. JMeter는 작성된 각 요청에 대한 통계를 기록한다. QOS(Quality of service) 메트릭을 밀리초로 95번째 백분위수 요청 기간으로 계산한다. 평균 인스턴스 처리량은 참여하는 게스트의 수로 나누어 킬로바이트 단위의 완료된 모든 요청의 총 크기이다.
표 2는 KSM을 사용한 경우, 사용하지 않은 경우 및 메모리 조정 MOM 정책이 사용된 경우에 달성된 QOS 및 처리량을 보여준다.
표 2. Cloudy QOS 및 처리량
| VM | MOM 정책 | QoS | 처리량 |
|---|---|---|---|
| 1 | 아니오 | 1669 | 710007 |
| 32 | 아니오 | 3240 | 774555 |
| 32 | 예 | 3231 | 764762 |
하나의 VM이 참여한 실행의 결과는 제한조건 없는 호스트에서 성능을 설명하도록 보여준다. 이 데이터로부터의 핵심적인 관찰은 Memknobs의 성능을 극적으로 개선시킨 동일한 MOM 정책이 Cloudy에 영향을 주지 않았다는 점이다. 이 워크로드에서 메모리 사용은 익명 메모리가 아니라 주로 파일 I/O가 원인이 되며, 매우 적은 스왑 활동이 관찰된다. 대신에, 메모리 과다 할당은 호스트 및 게스트 페이지 캐시에 압력을 부과하여, 시스템이 작업 세트를 더 적은 양의 메모리에 계속 로드되도록 시도하므로 I/O는 늘어나게 된다.
그림 5. 하나의 게스트에 대한 I/O에서 메모리 조정의 영향
메모리 한정 면에서는 효율적이라고 할지라도, 호스트 사용 가능 메모리를 줄이기 위해 대용량 페이지 예약을 사용하는 것은 호스트의 메모리 관리 알고리즘을 사소하게 방해할 수 있다. 향후, 이 실험은 가능한 가장 현실적인 시나리오에서 시스템을 평가하기 위해 실제 메모리 16GB를 갖춘 머신에서 반복되어야 한다.
이러한 두 가지 다른 워크로드를 연구할 때에 발견되는 대조적인 결과는 한 가지 명백한 결론을 도출한다. 즉, 메모리를 과다 할당할 때, 시스템의 모든 측면과 그 워크로드가 고려되어야 한다는 점이다. "광범위하게 적용되는" 관리 정책은 없다.
여전히 초기 단계라고 하더라도 이 작업은 KVM을 통한 자원 과다 할당의 상태를 진전하도록 약속하고, 많은 개선 사항들이 계획되었으며 진행 중이다.
오늘날, 호스트와 게스트 사이의 표준화된 통신 메소드는 사용 가능하지 않다. 현재 접근방식(예: 호스트에서 게스트로의 네트워크 통신)은 호스트와 각 게스트에서의 수동 설정 및 구성에 따라 다르고, 이에 대한 방식은 운영 체제 유형 및 버전, 데이터 센터 네트워킹 구성 및 가상 머신 장치 모델로 지시된다. 여기에서의 목표는 virtio-serial과 에뮬레이트된 일련 번호를 비롯하여 복수 데이터 전송을 지원할 수 있는 qemu로 통신 메커니즘을 통합하여 이 문제를 간소화하는 것이다. 채널의 게스트 측은 오픈 소스인 멀티플랫폼 qemu-guest-tools 패키지로 지원될 것이다. 이러한 메커니즘은 게스트 통계를 수집하는 MOM의 기능을 개선할 것이고, 복사/붙여넣기 및 관리 태스크와 같은 기능에 널리 유용할 것이다.
과다 할당 정책은 설명하는 대로 일부 상황에 도움을 줄 수 있고 다른 것에 위험을 초래할 수 있다. 안전하게 배치 가능하게 하기 위해 정책은 성능을 방해하지 말아야 한다. MOM 정책은 예상된 결과를 제작하지 않을 때 관리 운영을 롤백하는 보호 장치를 추가하여 개선되어야 한다.
오늘날, KVM은 매우 효율적인 협업적 CPU 공유 메커니즘을 보유한다. 게스트 CPU가 hlt 명령어를 실행할 때에, 자발적으로 CPU 시간을 다른 게스트에게 양도한다. 메모리
과다 할당의 성능 영향은 유사한 게스트 구동형 프로토콜이 메모리 자원을 산출하기 위해 존재하는 경우에 줄어들 수 있다.
커뮤니티가 KVM 과다 할당을 개선할 수 있는 새 기능을 개발할 때, 이러한 기능에 대한 지원은 MOM 인프라로 통합될 것이다. 예를 들어, cgroups 기반 RSS 한계에 대한 지원을 사용하여 조정 지시문을 강제 실행하고 비협업적이거나 악성 게스트로부터 시스템을 보호하도록 계획한다.
자원 과다 할당은 가상화의 혜택과 더 많은 자원과 개발의 주제를 극대화하는 데 중대하다. Linux 가상화가 진화하는 대로 과다 할당 우수 사례도 그렇게 될 것이다. 과다 할당을 관리하는 전체론적인 정책 구동형 접근방식은 효율성을 극대화하고 점증적인 개선을 추진하는 최선의 방법이다.
감사를 받을 만한 자격이 있는 동료들이 많지만 그 중에서도 특히 Anthony Liguori와 Karl Rister에게 감사하고 싶다. 그들의 충고와 기술적 전문지식은 Memory Overcommitment Manager 및 이 연구의 개념과 개발 면에서 매우 도움이 되었다.
교육
- 배경지식을 더 원하면 Andrea
Arcangeli, Izik Eidus 및 Chris Wright가 쓴 문서 "Increasing memory density by using KSM"(PDF)를 읽어보자.
-
Fedora/KSM 페이지는 KSM 및 ksmtuned에 대한 자세한 정보를 제공한다.
-
Linux Kernel 문서의 Cgroups에서 상세 정보를 찾아보자.
-
Linux에서는
수백 개의 기술자료 목록과 함께, Linux 개발자와 관리자를 위한
다양한 다운로드, 토론 포럼 및 다른 참고자료를 찾을 수 있다.
-
developerWorks 기술 행사 및 웹 캐스트를 통해 다양한 IBM 제품 및 IT 산업 주제에 대한 최신 정보를 얻을 수 있다.
-
무료 developerWorks Live!
briefing을 통해 최신 IBM 제품 및 도구에 대한 정보뿐만 아니라 IT 업계의 최신 경향까지도 빠르게 확인할 수 있다.
-
developerWorks on-demand demos에서는 입문자를 위한 제품 설치 및 설정부터 숙련된 개발자를 위한 고급 기능까지 망라된 다양한 데모를 제공한다.
-
Twitter의 developerWorks를 팔로우(follow)하거나
developerWorks에 대한 Linux 트윗(tweet)의 피드를 구독하자.
제품 및 기술 얻기
-
Cloudy
시나리오 벤치마크를 얻을 수 있다.
-
Apache Jakarta Project에서 JMeter를 얻을 수 있다.
-
Memknobs 마이크로 벤치마크를 얻을 수 있다.
-
MOM(Memory Overcommitment
Manager) 소스 코드 및 문서를 얻을 수 있다.
-
자신에게 가장한 적합한 방법으로 IBM
제품을 평가해 보자. 시험판 제품을 다운로드하거나, 온라인으로 제품을 사용해 보거나, 클라우드 환경에서 제품을 사용하거나,
SOA Sandbox에서
SOA(Service Oriented Architecture)를 효과적으로 구현하는 방법을 배울 수 있다.
토론
-
EPT 프로세서 기능의 제한사항에 대한 이 토론을 읽어보자.
-
developerWorks community에 참여한다. 개발자가 운영하고 있는 블로그, 포럼, 그룹 및 위키를 살펴보면서 다른 developerWorks 사용자와 의견을 나눌 수 있다.