목차

소개

배경 정보

현재 설계 문제

서비스 시작 시간

기능 개요

설계 변경

성능 향상

성능 수치

로그 분석:

11.5 이전의 HTTP를 통한 구성 파일 요청

11.5에서 HTTP를 통한 구성 파일 요청

소개

이 문서는 CUCM(Cisco Unified Communication Manager) 버전 11.5의 일부로 구현된 TFTP(Trivial File Transfer Protocol) 확장 아키텍처 기능에 대해 설명합니다.이는 메모리 사용량 및 컨피그레이션 및 정적 파일 제공 방식과 관련하여 TFTP 서비스를 개선하기 위한 순수 엔지니어링 기능입니다.비즈니스 논리는 동일하게 유지되며 TFTP에서 제공하는 다른 서비스와 관련하여 영향을 미치지 않습니다.

배경 정보

이러한 개선이 필요하고 통합된 이유

현재 설계 문제

- TFTP가 컨피그레이션 파일을 제공하는 방식에 대한 논리는 오랫동안 변경되지 않았습니다.

- 11.5 이전 버전의 TFTP 서비스는 컨피그레이션 파일을 빌드하고 모든 컨피그레이션 파일을 메모리에 캐시합니다.

- 지원되는 전화 수와 관련하여 CUCM에 더 많은 용량이 추가되면서 TFTP 서비스의 메모리 풋프린트가 선형으로 증가했습니다.

- 향후 로드맵은 CUCM에서 구현하기 위해 전화기의 추가 용량이 필요합니다.

- 따라서 TFTP 서비스의 증가하는 메모리 풋프린트 문제를 해결해야 합니다.

서비스 시작 시간

- 20,000~40,000대의 전화기가 구성된 중대형 구축입니다.

- 모든 전화기에 영향을 주는 변경 사항이 발생하면 TFTP는 영향을 받는 모든 컨피그레이션 파일을 빌드하고 캐시를 재구축합니다.

- 이렇게 하면 TFTP 서비스를 시작하는 데 걸리는 시간이 늘어납니다.

- 컨피그레이션 파일에 대한 전화기 요청이 전화기에 통화 중 응답이 전송됩니다.

기능 개요

새로운 기능이 구현되어 캐시 없는 설계로 위의 두 가지 문제를 해결하고 온디맨드 방식으로 구성 파일을 작성합니다.전화기에서 요청이 전송되면 TFTP 서비스는 컨피그레이션 파일을 즉시 빌드하고 이를 전화기에 실시간으로 제공합니다.컨피그레이션 파일을 메모리에 캐시하지 않으므로 서비스 시작 시간과 TFTP 서비스의 메모리 공간이 줄어듭니다.

설계 변경

설계 변경은 '연결 관리'와 '구성 파일 생성'이라는 두 가지 범주로 분류됩니다. 아래 표에는 각 카테고리에서 수행된 변경 사항이 자세히 설명되어 있습니다.

연결 관리

구성 파일 생성

HTTP

TFTP

온디맨드 빌드 및 서명된 컨피그레이션 파일에 대해 프레임워크 추가됨

네트워크 서비스 레이어는 모든 TCP 연결을 처리하기 위해 SDL을 사용하도록 설계되었습니다.

전화기가 UDP를 통해 컨피그레이션 파일을 요청하는 경우 변경 사항 없음

성능 향상

아래는 이 새로운 기능의 구현과 함께 향상된 성능을 제공합니다.

- TFTP 서비스의 메모리 공간 대폭 감소

- 메모리 공간은 TFTP 서비스에 약 600MB입니다.

- 파일이 캐시되지 않으므로 서비스 시작 시간이 더 짧습니다.

- 서비스 시작 시간은 시스템에 구축된 전화 수와 상관없습니다.

성능 수치

전화 번호

11.5 이전 버전의 소요 시간

11.5 버전에서 소요된 시간

서비스 시작 시간

20000

3분 38초

0분 19초

HTTP를 통해 제공되는 파일

20000

7분 24초

4분 06초

TFTP를 통해 제공되는 파일

20000

5분 36초

4분 11초

참고:위의 숫자는 한 테스트 실행에서 나온 것이 아니라 여러 테스트 실행의 평균입니다.

로그 분석:

사용된 디바이스:

CUCM 버전 11.5.1.10000-6

Cisco IP Communicator 버전 8.6.2

11.5 이전의 HTTP를 통한 구성 파일 요청

전화기에서 구성 파일에 대한 요청

00593088.000 |21:58:11.698 |AppInfo  |   TID[da900b70] HTTPEngine::getRequest(),

[0xa0d6c90~7~10.65.64.132~54462] INFO:: socket(12), ReqTimeout[60],

Request[GET /SEP000C29ED3D88.cnf.xml HTTP/1.1

모든 파일은 작성된 후 캐시되므로 TFTP는 캐시된 구성 파일을 찾습니다

00593097.000 |21:58:11.698 |AppInfo  |CReqContext::FindAndServe(1)[0xa0d6c90~7~10.65.64.132~54462]

,[(SEP000C29ED3D88.cnf.xml),(6779),(0xf388c2a8)] found in config cache

구성 파일이 전화기에 성공적으로 제공됨

00593102.000 |21:58:11.698 |AppInfo  |   HTTPEngine::sendResponse[0xa0d6c90~7~10.65.64.132~54462]

FileName[SEP000C29ED3D88.cnf.xml], Version[HTTP/1.1], Size[6779]

00593103.000 |21:58:11.698 |AppInfo  |   HTTPEngine::sendResponse[0xa0d6c90~7~10.65.64.132~54462]

INFO:: [85][HTTP/1.1 200 OK

11.5에서 HTTP를 통한 구성 파일 요청

전화기에서 구성 파일에 대한 요청

00000510.003 |21:47:40.683 |AppInfo  |   HTTPConnection::wait_SdlDataInd Printing the HTTPRequest :

msgBuffer size [148] --: GET /SEP000C29ED3D88.cnf.xml HTTP/1.1

ServeFile 프로세스에서 'FileRequest' 신호를 ServeDynamicFile로 보냅니다.

00000511.010 |21:47:40.683 |AppInfo  |   ServeFile::wait_FileRequest Sending the

FileRequest signal to ProcessServeDynamicFile process

00000511.011 |21:47:40.683 |AppInfo  |<--ServeFile::wait_FileRequest

00000512.000 |21:47:40.683 |SdlSig   |FileRequest                            |wait

|ServeDynamicFile(1,600,25,1)     |ServeFile(1,600,24,1)            |1,600,14,4.3^*^*                         |*TraceFlagOverrode

액세스 설계 구현이 이루어지므로 TFTP가 컨피그레이션 파일을 구축합니다

00000512.027 |21:47:40.684 |AppInfo  |TFTPList::GetSupportsFMT(), Pkid[9e9cb809-df9f-4bce-8a41-37cd5f7e4d21] Name[SEP000C29ED3D88] Class[1] Product[30041] Model[30016] Protocol[0], DevProfile[0] SUPPORTs[2], Value[2]

00000512.028 |21:47:40.684 |AppInfo  |<--TFTPList::SelectByDeviceID[0,0]

00000512.029 |21:47:40.684 |AppInfo  |   ServeDynamicFile::wait_FileRequest

Build Config file for Device [SEP000C29ED3D88]

ServeDynamicFile 프로세스에서 'FileResponse' 신호를 ServeFile로 보냅니다.

00000512.091 |21:47:40.686 |AppInfo  |<--ServeDynamicFile::wait_FileRequest

00000513.000 |21:47:40.686 |SdlSig   |FileResponse                           |wait

|ServeFile(1,600,24,1)            |ServeDynamicFile(1,600,25,1)     |1,600,14,4.3^*^*                         |*TraceFlagOverrode

00000513.002 |21:47:40.686 |AppInfo  |   ServeFile::wait_FileResponse File

Response signal received by ServeFile process

요청한 파일이 전화로 전송됨

00000514.001 |21:47:40.686 |AppInfo  |-->HTTPConnection::wait_FileResponse

00000514.002 |21:47:40.686 |AppInfo  |   HTTPConnection::wait_FileResponse Requested

file FOUND... Sending file Response

00000514.003 |21:47:40.686 |AppInfo  |<--HTTPConnection::wait_FileResponse