簡介
本檔案介紹作為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