Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 520건
  Exchange 메모리 최적화 방안 
작성일시 : 2008. 3. 3. 16:57 | 분류 : Exchange Server

오늘은 Exchange 2003의 메모리 최적화 구성에 대하서 검토하도록 하겠습니다.
생각외로 이런 사항에 대해 정리된 문서를 찾기가 쉬운건 아니더군요...^^
그래서 한번 정리해 봅니다...^^
만약 인용하시더라도 꼭 출처를 밝혀 주시고 덧글로라도 어디로 퍼간다는 정도의 로그는 남겨 주시기 바랍니다.
(제가 경험과 노하우를 기록한 제 글들이 버젓이 도용되고 있는데 기분이 썩 좋은건 아닙니다.)

궁금한건 mail 이나 msn, nateon 으로 물어보세요.
주로 msn을 이용합니다...^^
windows의 메모리에 대한 이해가 없이는 보기 힘든 문서예요...^^

0. 3GB 설정
Windows 2003 서버의 경우 3GB 스위치를 이용하여, 사용자 프로세스에 메모리를 3G까지 제공할 수 있습니다.
Store.exe는 메모리가 부족할 시 심각한 문제를 일으킬 수 있습니다.

위치 : C:\boot.ini
설정값 : /3GB /USERVA = 3030
주의 사항 : frontend exchange의 경우 실제 IIS와 동일한 서비스를 하게 됩니다. 이때는 http에 대한 서비스를 함으로 실제로 사용자 메모리보다 커널 메모리가 더욱 필요합니다. 본 사항은 backend exchange에 한하여 적용하시기 바랍니다.

1. Systempages 설정
Defines the number of system page table entries that are reserved for mapping I/O buffers and other information into the system address space. Each system page table entry maps one page.
3GB 옵션을 사용하고 /USERVA 3030 스위치를 주셨을 경우 크게 건들 필요는 없습니다. 이미 /USERVA = 3030을 통해 시스템에 할당하는 메모리를 최대한 허용하라라고 명시했기 때문입니다.

위치 : HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
설정 값
- 0x0 : System이 최적의 값을 자동으로 설정합니다.
- 0x1 ~ 0xFFFFFFFE
- 0xFFFFFFFF : System이 사용할 수 있는 최대 양의 메모리를 시스템에 할당합니다. /USERVA = 3030 과 동일한 구성입니다.

2. HeapDeCommitFreeBlockThreshold
The HeapDecommitFreeBlockThreshold registry key specifies the number of contiguous bytes above which the memory is decomitted (the second option) rather than retained for reuse (the first option).
1G 이상의 메모리를 사용하는 경우 메모리 단편화를 줄이기 위해 연속된 공간이 좀더 긴 메모리를 반환 하게 하는것이 좋습니다. 물론 메모리의 크기가 작다면 바로 바로 OS에 반환해 줘야 하지만 1G 이상일 경우에는 262144 로 해당 값을 설정하는 것이 좋습니다.

위치 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
설정 값
- 권장 설정 값은 262144 (0x00040000) 입니다.

3. msExchESEParamCacheSizeMax
SQL Server의 버퍼 캐시와 같이 Exchange 또한 ESE 버퍼를 가지고 있습니다. 기본적으로 Exchange Server 2003에서는 로컬 컴퓨터의 메모리 구성을 조회한 다음 Boot.ini 파일에 /3GB 스위치가 설정되어 있으면 896MB의 RAM을 할당하고 /3GB 스위치가 설정되어 있지 않으면 576MB의 RAM을 할당합니다. 이 수치는 8192의 배수로 설정되어야 하며 1200MB를 초과 할 수 없습니다.

설정 방법
1). ADSI(Active Directory Service Interfaces) Edit 유틸리티를 시작합니다. ADSI Edit 유틸리티는 Windows 2000 또는 Windows Server 2003 CD-ROM의 Support\Tools 폴더에 있는 Windows 지원 도구에 포함되어 있습니다.
2). Configuration Container [servername.example.com](여기서 servername.example.com은 해당 서버의 정규화된 도메인 이름 FQDN)에서 CN=Configuration, DC=example, DC=com을 확장합니다.
3). CN=Services, CN=Microsoft Exchange, CN=OrganizationName(여기서 OrganizationName은 해당 조직의 이름), CN=Administrative Groups, CN=First Administrative Group(여기서 First Administrative Group은 해당 관리 그룹의 이름), CN=Servers, CN=servername을 차례로 확장합니다.
4). CN=servername에서 CN=InformationStore를 마우스 오른쪽 단추로 누른 다음 속성을 누릅니다.
5). Select which properties to view 목록에서 Both를 누릅니다.
6). Select a property to view 목록에서 msExchESEParamCacheSizeMax를 누릅니다.
참고 msExchESEParamCacheSizeMax 속성 이름의 길이는 Select a property to view 목록의 너비를 초과하므로 화면에 완전히 표시되지 않습니다. 이 속성 대신 msExchESEParamCacheSizeMin 속성을 잘못 누르지 않도록 주의하십시오.
7). Edit Attribute 상자에서 이 특성에 할당할 값을 입력합니다.
참고 8,192의 배수 값을 입력해야 합니다.
8). Set을 누르고 OK를 누릅니다.
9). ADSI Edit 유틸리티를 종료합니다. 그런 다음 이 값이 Active Directory 포리스트에 복제될 때까지 충분히 기다립니다.
10). Exchange 서버에서 Microsoft Exchange 정보 저장소 서비스를 다시 시작합니다.

설정 값
- /3GB 스위치가 설정된 서버에서의 기본 크기: 229376(896MB)
- /3GB 스위치가 설정되지 않은 서버에서의 기본 크기: 147456(576MB)
- /3GB 스위치가 설정된 상태에서 권장되는 최대값: 311296(1.2GB) 모니터링 필요
- /3GB 스위치를 설정하지 않은 상태에서 권장되는 최대값: 196608(768MB) 모니터링 필요
참고 ESE 버퍼의 크기가 크게 설정되면 트랜잭션 로그의 재생이 상당히 빨라집니다. 재해 복구 시나리오에서 임시로 ESE 버퍼 크기를 311296 값으로 늘릴 수 있습니다.

모니터링
ESE에 너무 많은 메모리를 주게 되면 다른 프로세스들이 메모리를 할당 받지 못하여 종종 성능문제를 발생 시킬 수 있습니다.

성능 카운터
성능 개체: Process
성능 카운터: Virtual Bytes
인스턴스: STORE

모니터링 방법
성능 모니터링으로 수집된 정보를 통해 Store.exe 프로세스가 할당한 가상 주소 공간의 정확한 값을 알 수 있습니다. Boot.ini 파일에 /3GB 스위치가 설정되어 있는 서버에서 성능 유틸리티에 표시된 값은 대개 2.8GB보다 작습니다. Boot.ini 파일에 /3GB 스위치가 설정되지 않은 서버에서 이 값은 대개 1.8GB보다 작습니다. 1GB 이상의 메모리가 설치된 서버에서는 Boot.ini 파일에 /3GB 스위치를 추가하는 것이 좋습니다. 앞에서 설명한 것보다 큰 값이 나타나면 둘 중 어느 구성에서도 최대 버퍼 크기를 늘리지 마십시오. 앞에서 설명한 것보다 작은 값이 나타나면 두 구성 모두에서 데이터베이스의 최대 버퍼 크기를 늘릴 수 있습니다.
예를 들어, Boot.ini 파일에서 /3GB 스위치를 사용하도록 구성된 서버가 있고, 서버의 로드가 매우 클 때 성능 모니터의 Virtual Bytes 카운터가 2.5GB이면 최대 버퍼 크기를 약 300MB까지 늘려 총 크기가 1,200MB가 되도록 할 수 있습니다.
버퍼 크기를 늘리면 서버 성능이 저하될 수 있습니다. 버퍼가 커질수록 가상 주소 공간이 많이 소모됩니다. 따라서 서버에 가상 메모리 주소 공간 제약 조건이 발생한 경우 버퍼 크기를 늘리면 운영 체제가 불안정해질 수 있습니다. 매우 큰 사서함 서버에서는 시스템이 불안정해지지 않도록 기본 버퍼 크기를 줄여야 합니다.

관련 문서
http://support.microsoft.com/kb/315407
http://support.microsoft.com/kb/815372
http://technet2.microsoft.com/windowsserver/en/library/c5ccbaec-f552-4f61-a488-8ee3330d1eeb1033.mspx?mfr=true

|
  SQLWorld 스터디 시작했어요...^^ 
작성일시 : 2008. 3. 1. 23:58 | 분류 : Life Note/엔지니어 이야기

SQL Server에 대한 스터디를 시작했습니다.
정말 모두들 열정이 넘치더군요...^^

게다가... MVP가 두분이나 계시구...
스터디를 하는 목적이 모두다 다르겠지만...
전 인간관계를 넓히고 많은 분들과 친분을 쌓는게 가장 목적입니다...ㅋ
(좀 민망함...;;;)

기술도 좋고 실력도 좋고~~~ 내공도 좋지만...
어차피 서로 만나서 부대끼며 먹고 살자고 하는 거잖아요...^^
다른 MS 기술을 하시는 분들은 어떠신지 정말 궁금했었는데...
그렇다고 무조건 놀겠다는건 아닙니다...ㅋ
무척 기대됩니다...

솔직히 1주일에 한 번씩 했음 하는데...ㅋ

|
  XBOX 360 받았습니다...^^ 
작성일시 : 2008. 2. 29. 11:39 | 분류 : Life Note/엔지니어 이야기

정말 잘 사용하겠습니다.
절대 않팔꺼예요...ㅋ (근대 반다이 게임은 않나온다 하더군요..ㅡㅜ)

좋은 내용을 통해 공부도 하고 이렇게 선물도 받으니 정말 기쁘네요...^^
제가 특히 중점적으로 본 내용은

"Windows 내의 시스템 리소스 알아보기"
(쉽게 접근 하기 어려운 Windows 내부 구조에 대한 설명이 좋았습니다.)
"RADIUS 시스템을 이용한 인증 보안 강화와 인증 서버를 통한 인증서 사용"
(PKI와 인증서에 대한 이해에 큰 도움이 되었습니다.)

였습니다.
물론 제 업무상 Forfront 제품군에 대해 개괄적으로 소개하는 "마이크로소프트 통합 보안 전략 보안 포트폴리오"도 즐겁게 듣기에 정말 좋았습니다.

이전에 위의 내용들을 힘들게 asf로 받고 또 딱딱 끈기는 바람에 정말 힘들게 들었던 경험이 있었는데...
이번에는 avi를 제공해줘서 정말 편하게 들었습니다.
앞으로도 이렇게 avi를 다운 받아서 편할때 들을 수 있도록 배려해주시면 정말 감사하겠습니다...^^

|
  MS MVP에 선정됐습니다... 
작성일시 : 2008. 2. 28. 18:12 | 분류 : Life Note/엔지니어 이야기

MS MVP에 선정되었습니다.
생각치도 않는 추천을 받아서 지원하게 됐는데... 운이 좋았던거 같습니다.

좀더 열심히 공부하고, 좀더 열심히 포스팅하고, 좀더 열심히 일해야 겠습니다.

image

|
  System Hang 무엇을 준비해야 하나요? 
작성일시 : 2008. 2. 27. 10:07 | 분류 : Windows Server/Kernel

이번 주 부터 짬짬히 Windows System Admin이 준비해야하는 일들에 대한 글을 포스팅으로 올리도록 하겠습니다.

- 목차

1. System Hang 무엇을 준비해야 하나요?

보통 System Hang이 발생했을때 System Hang 발생 시 수집해야하는 정보들에 대한 설정이 없는 바람에, 원인 규명을 못한체 재부팅을 하는 경우가 종종 있습니다.
그래서 첫 번째로 System Hang이 발생하면 어떤 정보를 수집해야 하는지... 그리고 내 서버에서 먼저 설정해 줘야 하는 정보가 무엇인지를 알아보도록 하겠습니다.

1. 시스템 정보 수집
MPSReport 를 사용한 정보 수집
MPS_REPORTS는 사용자 컴퓨터에 대한 중요시스템, 진단 및 구성 정보를 캡처하는 데 사용할 수 있는
하나 이상의 스크립트와 기타 유틸리티가 들어 있는 압축된 소프트웨어 패키지입니다.

실행할 버전은 다양한 해당 서버의 Role 별로 존제 하지만 보통 Setup_Perf Version 을 주로 이용합니다.
http://www.microsoft.com/downloads/details.aspx?familyid=cebf3c7c-7ca5-408f-88b7-f9c79b7306c0&displaylang=en

실행 하시면 자동으로 실행되면 정보 수집이 완료되면 압축하여 .cab 파일이 생성 됩니다.
이 cab 파일을 준비합니다.

2. Performance Log 수집
성능 로그 수집
(1) 관리도구 – 성능 을 실행합니다.
(2) 성능 로그 및 경고 를 클릭 후 카운터 로그에서 새 로그 설정 을 클릭합니다.
(3) Server, Memory, System, Processor, Process, Server, Thread 개체의 모든 카운터와 모든 인스턴스를 추가시켜 줍니다.
(4) 데이터 샘플 간격은 1분 이상으로 설정합니다. (24시간 수집시 300M 생성됨)

3. Pool Tagging 설정 (Windows 2000에 해당)
Windows 2000의 경우 Pool Tagging 설정이 되어 있지 않기때문에 Windows의 커널이 사용하는 Pooled Memory 에 대한 확인 힘듭니다. (해당 내용에 대해서는 차후 포스팅 하도록 하겠습니다.) 그래서 우선 적으로 Pool Memory를 누가 사용하고 있는지에 대한 파악을 위해 Pool tag을 먼저 설정해야 합니다.

1. Windows CD를 삽입 하신 후 SUPPORT\TOOLS\SUPTOOLS.msi 를 실행 합니다.
2. 아래 그림과 같이 gflags.exe를 실행하신 후 "Enable Pool Tagging" 옵션을 체크하고, [Apply]를 누르고 [OK]를 누릅니다. 시스템을 재부팅 합니다.
 

4. Memory Dump 수집
Windows 기능을 사용하면 Memory.dmp 파일을 키보드로 생성할 수 있습니다.
http://support.microsoft.com/?id=244139

1. Regedt32 실행
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
3. 아래의 Key 를 추가합니다.
값 이름: CrashOnCtrlScroll
데이터 형식: REG_DWORD
: 1
위 값을 수동으로 추가하십시오.
4. Regedt32 를 종료한 후 Windows Server 를 재시작 하십시오.
문서와 같이 레지스트리에 CrashOnCtrlScroll 값을 1로 추가한 후, 서버를 재부팅합니다. 
재부팅해야만 변경 내용이 적용됩니다..
이후, 다시 시스템이 멈추게 되면(hang 발생시) 오른쪽 Ctrl 키를 누른 상태에서 
Scroll Lock 키 두번를 눌러 memory dump생성할 수 있습니다.

* 참고 Memory Dump 를 발생시키기 위한 조건
1. 제어판 - 시스템 - 고급 - 시작 및 복구
2. 현재 서버의 물리적인 Memory 가 2GB 이하라면 “전체 메모리 덤프” 로 설정합니다. 2GB 이상이라면 “커널 메모리 덤프” 로 설정하십시오.
3. 기존 파일에 덮어쓰기 : 옵션 선택 확인 (선택되어 있는지 확인하십시오.)
4. %SystemRoot% 파티션에 Paging 파일이 존재해야 합니다.
5. Paging 파일의 크기가 물리적인 메모리보다 최소한 같거나 커야 합니다.
6. 기본적으로 Memory Dump 는 C:\Winnt 에 저장됩니다. C Drive 에 공간이 충분히 있는지 확인하십시오.

[관련 기술 자료]
Event 2020 is logged and your Windows Server 2003-based file server stops responding
http://support.microsoft.com/default.aspx?scid=kb;en-us;886670

Server is unable to allocate memory from the system paged pool
http://support.microsoft.com/default.aspx?scid=kb;en-us;312362

How to Find Pool Tags That Are Used By Third-Party Drivers WGID:322
http://support.microsoft.com/?id=298102

272568 Event ID 2019 or 2020 or "Insufficient System Resources" Error Returned
http://support.microsoft.com/?id=272568

294346 An Event ID 2019 May Be Logged and the Server May Either Stop Responding
http://support.microsoft.com/?id=294346

294346 An Event ID 2019 May Be Logged and the Server May Either Stop Responding
http://support.microsoft.com/?id=294346

Server is unable to allocate memory from the system paged pool
http://support.microsoft.com/default.aspx?scid=kb;en-us;312362

로그온 할 때 이벤트 ID 2019나 2020 또는 "시스템 리소스 부족" 오류가 반환된다
http://support.microsoft.com/?id=272568

|
  Microsoft SoftGrid 
작성일시 : 2008. 2. 25. 14:52 | 분류 : Windows Server/ETC

SBC와는 좀 다른 형태의 Application 가상화 환경이 있어 소개 시켜 드립니다.

 
언듯 위의 그림만 봤을때는 SBC 환경과 동일해 보일 지도 모릅니다.
하지만 그림에서 보시면 On-Demand Application Streaming 의 내역에 DLL, COM, INI 등이 들어가 있죠.

바로 이미 구성된 패키지를 스트리밍의 형태로 사용자에게 전달하여 실행하게 하는 것 입니다.
기존의 SBC 환경의 경우 서버쪽에서 해당 Application의 실행을 책임 지고 해당 결과를 bitmap 형태의 이미지로 Client에 전달 하는 역활을 했습니다.
이는 필수적으로 서버 H/W의 고부하가 어쩔 수 없었습니다.
게다가 SBC 클라이언트의 리소스를 낭비하고 있었습니다.
(SBC 전용 환경의 경우 현재 대당 가격이 100만원 정도로써 실제 클라이언트 한대 사는것과 비용 차이가 없습니다.)

문제는 실행 이미지의 크기... 즉 네트워크 Bandwidth 에 대한 문제가 있는데...
이를 극복하기 위해 '시퀀싱' 이라는 기법을 이용하게 됩니다.
이는 해당 패키지를 파일 그룹으로 나누고 이를 User 들의 사용 패턴에 따라 순차적으로 스트리밍해서 내려주게 됩니다.
실제로 전체 페키지 + TOP 10 기능이 우선적으로 스트리밍되어 전달된 후 기타 기능들이 백그라운드에서 다운로드 되게 됩니다.
물론 최초로 다운 받게 되면 이후에는 로컬에서 실행하는 것과 같게 됩니다.

image 
특히 콘솔에서 보시는 것처럼 계정 기반 혹은 라이센스 기반으로 어플리케이션에 대한 실행을 통제 할 수 있다는 점이 큰 장점으로 보입니다.
물론 system guard 상에서 동작하게 되어 어느정도 클라이언트 OS의 영향을 배재한 상태에서 실행되는 것도 큰 의미가 있을 것으로 보입니다.


위 그림과 같이 클라이언트 측면에서는 프로그램이 설치되는 것은 아닙니다.
완전하게 내려받은 패키지를 가상화해서 실행할 수 있는 환경을 제공하는 것이죠...
(이런 개념에서는 JRE나 CRE와 비슷하군요...^^)
이런 가상의 실행 계층을 System Guard라고 부릅니다.


위 그림 처럼 모 운영체제에 미치는 영향을 최소로 하게 됩니다.
실제로 시스템 파일들은 오직 Read only로만 동작하게 되며 기타 사용자의 프로필이라던가 System Service는 자신의 프로그램 실행을 위하여 이용할 수 있습니다.
해당 패키지는 RTSP 프로토콜 (554)를 이용하게 되며, 일반 응용프로그램 뿐 아니라 웹 어플리케이션도 지원됩니다.

출처 : http://blogs.technet.com/koalra/archive/2008/02/21/2917586.aspx
관련 링크 : http://www.microsoft.com/systemcenter/softgrid/default.mspx

|
  Windows 2003 VPN 설정 
작성일시 : 2008. 2. 25. 10:21 | 분류 : Windows Server/Network

Windows 로컬 계정을 이용한 간단한 VPN 설정 방법

[구성]
VPNServer : NIC 1 (192.168.77.1), NIC 2 (10.123.21.1)
VPNClient : NIC 1 (10.123.21.3)

[구성 하기]
VPNServer의 NIC 한장은 외부 망과 연결되게 된다.
VPNServer의 설정은 VPN, 라디우스, DHCP, 라우터 등의 설정이 혼제 된다.
그래서 간단하게 "Managing Yser Server" 를 이용하도록 한다.

먼저 add or remove a role 를 클릭한다.
이후 Configuration Option에서 Custom configuration을 선택한다.

Remote access / VPN server 를 선택 한다.

 

이후 셋팅은 그림을 보면서 설정하면 될 것으로 보인다.

외부에 노출 될 NIC를 선택한다.

부여할 IP Address의 범위를 선택한다.

[중요]
사용자의 속성에 Dial -in 탭의 Remote Access Permission 을 Allow access 로 설정한다.

|
  DN 리스트가 저장된 Text 파일을 읽어 그룹에 등록시키는 스크립트 
작성일시 : 2008. 2. 21. 17:35 | 분류 : Windows Server/Active Directory

이전 포스트(http://maystyle.tistory.com/274)에서 작성된 text 파일을 읽어서 그룹에 추가하는 스크립트 입니다.

On Error Resume next

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\userlist.txt", 1)

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    Const ADS_PROPERTY_APPEND = 3

    Set objGroup = GetObject _
        (LDAP://cn=그룹명, cn=Users, dc=xxx, dc=xxx, dc=xxx)
    objGroup.PutEx ADS_PROPERTY_APPEND, _
        "member", Array (strLine)
    objGroup.SetInfo

Loop

objFile.Close
WScript.Echo ("Script Completed")

실제로 응용하자면

    Const ADS_PROPERTY_APPEND = 3

    Set objGroup = GetObject _
        (LDAP://cn=그룹명, cn=Users, dc=xxx, dc=xxx, dc=xxx)
    objGroup.PutEx ADS_PROPERTY_APPEND, _
        "member", Array (strLine)
    objGroup.SetInfo

위의 부분에 각종 작업을 넣어 줄 수 있습니다.
전 사용자를 등록하는 작업을 넣었습니다.
즉 각 라인인 str 라인으로 하는 모든 작업이 가능해 집니다.

|
 Prev   1   ···   33   34   35   36   37   38   39   ···   65   Next