目錄

簡介

背景資訊

當前設計的問題

服務啟動時間

功能概述

設計更改

效能改進

效能數字

日誌分析：

11.5之前的版本中通過HTTP的配置檔案請求

11.5中通過HTTP的配置檔案請求

簡介

本檔案介紹作為Cisco Unified Communication Manager(CUCM)版本11.5最新升級至CUCM的一部分實施的簡單檔案傳輸協定(TFTP)擴展架構功能。這只是一項工程功能，目的是在記憶體使用和服務組態和靜態檔案的方式方面改善TFTP服務。業務邏輯保持不變，且對TFTP提供的其他服務沒有影響。

背景資訊

需要並納入此改進的原因

當前設計的問題

- 長期以來，TFTP為配置檔案提供服務的邏輯一直沒有改變。

- 在11.5版之前，TFTP服務會構建配置檔案並在記憶體中快取所有配置檔案。

- CUCM所支援的電話數量增加更多容量後，TFTP服務的記憶體佔位會線性增加。

- 未來的路線圖要求在CUCM中實施額外的電話容量。

- 因此，解決TFTP服務的記憶體足跡增加問題就變得非常重要。

服務啟動時間

- 在配置了2萬到4萬部電話的中大型部署中。

- 進行影響所有電話的更改時，TFTP會構建所有受影響的配置檔案並重新構建其快取。

- 這會增加TFTP服務啟動所需的時間。

- 當電話請求配置檔案時，會向電話傳送忙碌響應。

功能概述

實施的新功能通過無快取設計解決了上述兩個問題，並按需生成配置檔案。當從電話傳送請求時，TFTP服務會即時生成配置檔案，並將其即時提供給電話。它不會將配置檔案快取在記憶體中，這進而會減少TFTP服務的服務啟動時間和記憶體空間。

設計更改

完成的設計更改歸入兩個類別，即「連線管理」和「配置檔案生成」。 下表詳細列出了每個類別下的更改。

連線管理

配置檔案生成

HTTP

TFTP

為按需生成和已簽名的配置檔案新增了框架

網路服務層設計為使用SDL來處理所有TCP連線

電話通過UDP請求配置檔案時沒有更改

效能改進

以下是實施此新功能後實現的效能改進。

- 顯著減少TFTP服務的記憶體空間

- TFTP服務的記憶體佔用空間約為600 MB

- 由於未快取檔案，服務啟動時間更短

- 服務開始時間與系統中部署的電話數量無關

效能數字

電話數量

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通訊程式版本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