Introduction
Ce document traite de la fonctionnalité d'architecture à l'échelle TFTP (Trivial File Transfer Protocol) mise en oeuvre dans le cadre de la version 11.5 de Cisco Unified Communication Manager (CUCM), la plus récente mise à niveau vers CUCM. Il s'agit d'une fonction purement technique qui vise à améliorer le service TFTP en ce qui concerne l'utilisation de la mémoire et la manière dont il gère la configuration et les fichiers statiques. La logique opérationnelle demeure la même et il n’y a aucune incidence sur les autres services fournis par TFTP.
Informations générales
Raisons pour lesquelles cette amélioration a été nécessaire et incorporée
Problème avec la conception actuelle
- La logique de fonctionnement du protocole TFTP pour les fichiers de configuration n'a pas été modifiée depuis longtemps.
- Avant la version 11.5, le service TFTP crée les fichiers de configuration et met en cache tous les fichiers de configuration en mémoire.
- Avec une plus grande capacité ajoutée à CUCM par rapport au nombre de téléphones pris en charge, l'empreinte mémoire du pied du service TFTP a augmenté de façon linéaire.
- Les futures feuilles de route devront être dotées d'une capacité supplémentaire pour les téléphones afin d'être mises en oeuvre dans CUCM.
- Par conséquent, il devient important d'examiner l'augmentation de l'empreinte mémoire du pied du service TFTP.
Heure de démarrage du service
- Dans des déploiements de taille moyenne à grande avec 20 000 à 40 000 téléphones configurés.
- Lorsqu'une modification affecte tous les téléphones, le protocole TFTP génère tous les fichiers de configuration concernés et reconstruit le cache.
- Cela augmente le temps nécessaire au démarrage du service TFTP.
- Au moment où les téléphones demandent un fichier de configuration, une réponse Occupé est envoyée au téléphone.
Présentation des fonctionnalités
La nouvelle fonctionnalité mise en oeuvre répond aux deux problèmes ci-dessus par une conception sans cache et crée le fichier de configuration à la demande. Lorsqu'une demande est envoyée à partir du téléphone, le service TFTP crée le fichier de configuration à la volée et le sert au téléphone en temps réel. Il ne met pas en cache le fichier de configuration en mémoire, ce qui à son tour réduit l'heure de début du service et l'empreinte mémoire du service TFTP.
Modifications de conception
Les modifications apportées à la conception se répartissent en deux catégories : Gestion des connexions et Génération de fichiers de configuration. Le tableau ci-dessous détaille les changements effectués dans chaque catégorie.
Gestion des connexions |
Génération de fichiers de configuration |
HTTP |
TFTP |
Cadre ajouté pour les fichiers de configuration signés et de génération à la demande
|
La couche de service réseau est conçue pour utiliser SDL afin de gérer toutes les connexions TCP |
Aucune modification n'est apportée lorsque les téléphones demandent des fichiers de configuration via UDP |
Amélioration des performances
Vous trouverez ci-dessous les améliorations apportées aux performances lors de la mise en oeuvre de cette nouvelle fonctionnalité.
- Réduction significative de l'empreinte mémoire du service TFTP
- L'empreinte mémoire est d'environ 600 Mo pour le service TFTP
- L'heure de début du service est moindre, car les fichiers ne sont pas mis en cache
- L'heure de début du service est indépendante du nombre de téléphones déployés dans le système
Chiffres de performances
|
Nombre de téléphones |
Temps nécessaire à la version antérieure à 11.5 |
Durée de la version 11.5 |
Heure de début du service |
20000 |
3 minutes 38 secondes |
0 minute 19 secondes |
Fichiers servis sur HTTP |
20000 |
7 minutes 24 secondes |
4 minutes 06 secondes |
Fichiers servis sur TFTP |
20000 |
5 minutes 36 secondes |
4 minutes 11 secondes |
Note: Les chiffres ci-dessus ne proviennent pas seulement d'une série de tests, mais représentent une moyenne de plusieurs séries de tests.
Analyse du journal :
Périphériques utilisés :
CUCM version 11.5.1.10000-6
Cisco IP Communicator version 8.6.2
Requête de fichier de configuration sur HTTP avant 11.5
Demande du téléphone pour le fichier de configuration
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
Puisque tous les fichiers sont mis en cache après la génération, TFTP recherche le fichier de configuration mis en cache
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
Le fichier de configuration est correctement servi au téléphone
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
Requête de fichier de configuration sur HTTP dans 11.5
Demande du téléphone pour le fichier de configuration
00000510.003 |21:47:40.683 |AppInfo | HTTPConnection::wait_SdlDataInd Printing the HTTPRequest :
msgBuffer size [148] --: GET /SEP000C29ED3D88.cnf.xml HTTP/1.1
Le processus ServeFile envoie le signal '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
Puisque la conception sans cache est implémentée, vous voyez que TFTP crée le fichier de configuration
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]
Le processus ServeDynamicFile envoie le signal '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
Le fichier demandé est envoyé au téléphone
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