O que pode ser o motivo de lentidão (veja detalhes no corpo da mensagem)?

1

Eu tenho uma situação muito estranha que estou tentando resolver. Um problema de desempenho que parece realmente uma sequência de espera vazia definida no código (embora provavelmente não seja assim).

Eu tenho um servidor dedicado muito poderoso (10 GB de RAM, oito núcleos Xeon, etc) rodando o Ubuntu 10.04 com todos os serviços de funcionalidade (exceto o servidor OpenVPN usado para fornecer acesso seguro aos clientes) implantados em VirtualBox separado (vboxheadless) máquinas (uma para o servidor de e-mail da empresa, uma para o servidor da Web e outra para o servidor de contabilidade / CRM (Firebird + servidor de aplicativos proprietário trabalhando com clientes Delphi).

A carga da CPU (como "top" diz) quase sempre é quase zero. A RAM do sistema host está próxima de 100% de uso, mas não está sobrecarregada (já que muito pouca troca é usada e a memória liberada (interrompendo uma das VMs) não é reutilizada rapidamente). Aproximadamente 50% dos hóspedes RAM é usado. iostat geralmente mostra perto de zero% util. A largura de banda da rede parece estar subutilizada.

Mas o software accounting / crm (um aplicativo Win32 Delphi executado em máquinas WinXP) funciona muito lento com esse servidor (e funciona muito melhor usando um servidor Windows dentro da LAN).

Não consigo imaginar o que pode ser lento se houver tantos recursos de CPU, RAM, HDD e largura de banda disponíveis nos clientes e no servidor, mesmo em seus momentos mais difíceis.

Dizer que a largura de banda está subutilizada Eu não só sei que os clientes e o servidor estão conectados à Internet com canais maiores do que os realmente usados (o que deixa a chance de ter um gargalo de um tipo na rota entre eles), testamos a largura de banda entre os clientes e o servidor, copiando arquivos entre eles.

    
por Ivan 16.11.2010 / 19:15

1 resposta

1

Eu vou adivinhar que o aplicativo de contabilidade do Delphi está usando o SMB para se conectar ao servidor. Certos tipos de aplicativos usam bancos de dados baseados em arquivos: Access, Outlook PSTs, FoxPro, BTrieve, alguns outros. Normalmente, eles funcionam terrivelmente quando o cliente e o servidor são separados por links de WAN - mesmo que seja um link WAN rápido, a latência o mata. Isso é contrastado por aplicativos que usam ODBC e um driver SQL para sua conectividade de back-end; aqueles podem lidar melhor com alguma latência.

O fato de você dizer que isso funciona bem quando o servidor está na LAN realmente aponta para isso como o problema. Então, não há 'conserto'.

  1. Mantenha esse aplicativo único na sua LAN ou
  2. Crie um Windows TS em seu ambiente hospedado para que seus usuários possam executar o aplicativo, mas o acesso da camada de aplicativos à camada de banco de dados é de baixa latência. ou
  3. Reescreva o aplicativo, talvez com um front-end da web. Provavelmente um não-iniciante.
por 16.11.2010 / 19:36