안녕하세요. 그동안 블로그 포스팅이 너무 뜸습니다. 정말 죄송하게 생각하고요. 또 함께 팀블로그를 운영하고 있는 다른 친구들에게도 너무 미안한 마음 입니다. 올 한 해도 이제 2달 남짓 남겨 놓고 있는데, 유종의 미를 거둔 다는 마음으로 열심히 한 번 달려 보겠습니다.
오늘은 ISA서버의 서버 사이징에 대한 간단한 방법을 포스팅 해보도록 하겠습니다. 바로 Capacity Planner라는 Microsoft ISA Server Home Page에서 제공해주고 있는 툴을 이용하는 방법인데요. ISA 서버가 아직까지는 국내에서 많이 사용되고 있는 제품이 아니다 보니, 도입 시 사이징에 대한 부분이 큰 골치거리 중의 하나였습니다. 아래의 Capacity Planner를 이용한 방법으로 ISA 서버 사이징에 조금이라도 도움이 되었으면 하는 바램 입니다.
[Capacity Planner를 이용한 결과]
아래의 링크에서 다음과 같은 정보를 입력 (계산기 아이콘: Capacity Planner)
1. 아래의 상황을 가정하여 입력하였습니다. (Network Traffic 1GB로 재세팅하여 결과치를 확인해보셔도 됩니다.)
1) ISA Reverse Proxy Mode concurrent user : 10,000
2) Network traffic per second : 400 Mbps
3) Reverse Hosting Web Site : 600
2. 실제 입력 값
1) Link capacity: 400000 Kbps
2) Concurrent users: 10000
3) CPU Speed: 3 GHz
4) Traffic: 100% HTTP (no HTTPS, OWA, RPC over HTTP, or VPN)
5) Bandwidth per user: 40 Kbps
6) Array type: NLB
Bandwidth per user를 구하기 위해 maximum network utilization (400Mbps)을 동시접속자수 number of concurrent users (10000)로 나누었습니다.
결과적으로 다음의 서버 개수와 1 GB RAM과 5 GB 하드 디스크가 필요한 것으로 나타났습니다.
Processor type: Nodes required
2-proc: 6
2-proc/dual-core: 3
[캐싱에 있어서 추가적인 고려 사항]
우선 ISA 서버 disk cache 성능에 가장 크게 좌우 되는 것은 disk seek time, (IOs/sec)이 되겠습니다. 10,000 RPM disk 가 버틸 수 있는 IOs/sec는 ~100로, 만약 이 한계를 넘어가게 되면 각 IO에 대한 평균 지연 시간이 상당히 증가되게 됩니다. 그러므로 캐싱을 위한 가장 중요한 요인 중 하나는 충분한 physical disks를 갖는 것이라고 할 수 있겠습니다. IOs/sec는 \PyisicalDisks(<disk>)\Disk Transfers/sec에 의해 바로 측정이 가능합니다. ISA에서는 모든 캐시가 IO를 유발시키며 모든 10-20여개의 cacheable misses (여기서 말하는 cacheable miss는 나중에 서비스 될 수 있는 오브젝트를 말하는 것)는 단일 IO로 디스크에 입력하게 됩니다. 이것은 대략 다음과 같은 공식을 이용하실 수 있습니다. IOs/sec = hits/sec + cacheable-misses/sec / 10. 예를 들어, 전체 cache hit ratio가 20%이고 50%의 misses가 모두 cacheable하다면, 1000 requests/sec에서의 IOs/sec = 200 + (500 / 10) = 250 가 되며 이것은 곧 최소한 3개의 physical disks가 필요하게 된다는 것을 예측할 수 있습니다.
경험상, 좋은 캐시 사이즈는 physical disk당 20-40 GB정도 입니다.
[CPU 성능에 대한 일반적인 사항]
Outbound f/w 테스트 결과에 의하면, 단일 펜티엄4 2.4GHZ에서는 25Mbps를 75%의 CPU utilization으로 나타납니다. 이것은 각 T1 인터넷 링크 (1.5 Mbps)에서 Microsoft f/w 서비스는 4.5%만이 CPU 리소스를 사용하게 됩니다. Dual Xeon 2.4-GHz 프로세서는 75%의 CPU utilization으로 대략 45 Mbps (T3)을 나타냅니다. (T1에서는 2.5% utilization이 나옵니다)
종합적으로 볼 때 단일 ISA Server로 caching을 사용하는 것은 높은 트래픽량으로 (3GB에서 F5를 거쳐 들어오더라도 여전히 높은 1GB) 무리가 있을 것처럼 보입니다. 듀얼 코어로 최소한 2대에서 3대까지 서버당 1GB의 메모리와 20GB의 하드디스크는 필요로 할 듯 합니다.