Introduction
Este documento contém sobre o recurso de arquitetura de escala do Protocolo de Transferência de Arquivos Trivial (TFTP - Trivial File Transfer Protocol) implementado como parte do Cisco Unified Communication Manager (CUCM - Cisco Unified Communication Manager) versão 11.5, a mais recente melhoria para o CUCM. Este é apenas um recurso de engenharia para melhorar o serviço TFTP no que diz respeito ao uso da memória e como ele atende à configuração e aos arquivos estáticos. A lógica empresarial permanece a mesma e não há impacto em relação a outros serviços fornecidos pelo TFTP.
Informações de Apoio
Razões pelas quais esta melhoria foi necessária e incorporada
Problema com o design atual
- A lógica de como o TFTP serve os arquivos de configuração não foi alterada por muito tempo.
- Antes da 11.5, o serviço TFTP cria os arquivos de configuração e coloca em cache todos os arquivos de configuração na memória.
- Com mais capacidade adicionada ao CUCM em relação ao número de telefones suportados, a impressão do pé de memória do serviço TFTP aumentou linearmente.
- Os roteiros futuros exigem capacidade adicional para telefones para serem implementados no CUCM.
- Assim, aborde o aumento da impressão do pé da memória do serviço TFTP que se torna importante.
Hora de início do serviço
- Em implantações de médio a grande porte com telefones de 20.000 a 40.000 configurados.
- Quando uma alteração afeta todos os telefones, o TFTP cria todos os arquivos de configuração afetados e recria o cache.
- Isso aumenta o tempo gasto para o serviço TFTP iniciar.
- No momento em que os telefones solicitam o arquivo de configuração, uma resposta ocupada é enviada ao telefone.
Visão geral do recurso
O novo recurso implementado aborda os dois problemas acima por um design sem cache e cria o arquivo de configuração sob demanda. Quando uma solicitação é enviada do telefone, o serviço TFTP cria o arquivo de configuração em tempo real e o atende ao telefone em tempo real. Ele não armazena em cache o arquivo de configuração na memória, o que por sua vez reduz a hora de início do serviço e o volume de memória do serviço TFTP.
Alterações de projeto
As alterações de design feitas estão em duas categorias, 'Gerenciamento de conexão' e 'Geração de arquivo de configuração'. A tabela abaixo detalha as alterações feitas em cada categoria.
Gerenciamento de conexão |
Geração de arquivos de configuração |
HTTP |
TFTP |
Estrutura adicionada para criação sob demanda e arquivos de configuração assinados
|
A camada de serviço de rede foi projetada para usar o SDL a fim tratar todas as conexões TCP |
Nenhuma alteração em que os telefones solicitam os arquivos de configuração sobre UDP |
Melhorias no desempenho
Abaixo estão as melhorias de desempenho obtidas com a implementação deste novo recurso.
- Redução significativa no volume de memória do serviço TFTP
- O espaço ocupado pela memória é de aproximadamente 600 MB para o serviço TFTP
- A hora de início do serviço é menor, pois os arquivos não estão em cache
- A hora de início do serviço é independente do número de telefones implantados no sistema
Figuras de desempenho
|
Nº de telefones |
Tempo de uso na versão anterior à 11.5 |
Tempo gasto na versão 11.5 |
Hora de início do serviço |
20000 |
3 minutos 38 segundos |
0 minutos 19 segundos |
Arquivos Servidos via HTTP |
20000 |
7 minutos 24 segundos |
4 minutos 06 segundos |
Arquivos Servidos sobre TFTP |
20000 |
5 minutos 36 segundos |
4 minutos 11 segundos |
Note: Os números acima não são apenas de uma execução de teste, mas são uma média de várias execuções de teste.
Análise de log:
Dispositivos usados:
CUCM versão 11.5.1.10000-6
Cisco IP Communicator versão 8.6.2
Solicitação de arquivo de configuração sobre HTTP em anterior à 11.5
Solicitação do telefone para o arquivo de configuração
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
Como todos os arquivos são armazenados em cache após a criação, o TFTP localiza o arquivo de configuração em 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
O arquivo de configuração é atendido com êxito ao telefone
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
Solicitação de arquivo de configuração sobre HTTP em 11.5
Solicitação do telefone para o arquivo de configuração
00000510.003 |21:47:40.683 |AppInfo | HTTPConnection::wait_SdlDataInd Printing the HTTPRequest :
msgBuffer size [148] --: GET /SEP000C29ED3D88.cnf.xml HTTP/1.1
O processo ServeFile envia o sinal 'FileRequest' para 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
Como o design sem cache é implementado, você vê que o TFTP cria o arquivo de configuração
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]
O processo ServeDynamicFile envia o sinal 'FileResponse' para 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
O arquivo solicitado é enviado ao telefone
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