Capítulo 3. Largura de Banda e Poder de Processamento

Dentre os dois recursos abordados neste capítulo, um (largura de banda) é, frequentemente, de difícil compreensão para administradores de sistemas, enquanto o outro (poder de processamento) é um conceito geralmente fácil de entender.

Aparentemente, estes dois recursos não tem nenhuma relação próxima — por que juntá-los?

A razão para abordar ambos recursos conjuntamente é que os dois são baseados no hardware diretamente ligado à habilidade do computador em mover e processar dados. Sendo assim, suas funções são frequentemente relacionadas.

3.1. Largura de Banda

Basicamente, largura de banda é a capacidade de transferência de dados — em outras palavras, a quantidade de dados que pode ser movida de um ponto a outro num determinado período de tempo. Ter comunicação ponto-a-ponto implica em duas coisas:

Há dois tipos de componentes de sistema que atendem estes requisitos:

As seções a seguir exploram cada um em detalhes.

3.1.1. Canais (buses)

Conforme explanado anteriormente, os canais possibilitam a comunicação ponto-a-ponto e utilizam alguma espécie de protocolo para garantir que toda a comunicação ocorra de forma controlada. No entanto, os canais têm outras características distintas:

  • Características elétricas padronizadas (tais como número de condutores, níveis de voltagem, velocidades de sinalização, etc.)

  • Características mecânicas padronizadas (tais como tipo de conector, tamanho da placa, aparência física, etc.)

  • Protocolo padronizado

A palavra "padronizado" é importante porque os canais são a principal forma de conexão entre diferentes componentes do sistema.

Em muitos casos, os canais (buses) permitem interconectar hardware produzido por diversos fabricantes; sem a padronização, isto não seria possível. No entanto, mesmo nas situações onde um canal é de propriedade de um fabricante, a padronização possibilita que este fabricante implemente outros componentes facilmente, usando uma interface comum — o próprio canal.

3.1.1.1. Exemplos de Canais

Não importa o local do sistema em questão; sempre há canais. Aqui estão alguns dos canais mais comuns:

  • Canais de armazenamento em massa (ATA e SCSI)

  • Redes[1] (Ethernet e Token Ring)

  • Canais de memória (PC133 e Rambus®)

  • Canais de expansão (PCI, ISA, USB)

3.1.2. Centrais de Dados (Datapaths)

As centrais de dados (datapaths) podem ser mais difíceis de identificar, mas, assim como os canais, elas estão em todo lugar. Como os canais, elas também possibilitam a comunicação ponto-a-ponto. Entretanto, ao contrário dos canais, as centrais de dados:

  • Usam um protocolo mais simples (se houver)

  • Têm pouca (ou nenhuma) padronização mecânica

A razão destas diferenças é que as centrais de dados (datapaths) normalmente fazem parte de algum componente do sistema e não são usadas para facilitar a interconexão improvisada de diferentes componentes. Como tais, as centrais de dados são altamente otimizadas para uma situação específica, na qual a velocidade e o baixo custo têm prioridade sobre a lentidão e flexibilidade de componentes mais caros.

3.1.2.1. Exemplos de Centrais de Dados (Datapaths)

Aqui estão algumas centrais de dados típicas:

  • central de dados da CPU para cache no chip (CPU to on-chip cache datapath)

  • Processador gráfico para a central de dados da memória de vídeo

3.1.3. Problemas Potenciais Relacionados à Largura de Banda

Os problemas relacionados à largura de banda podem ocorrer de duas maneiras (para ambos, canais ou centrais de dados):

  1. O canal ou central de dados pode representar um recurso compartilhado. Neste caso, os altos níveis de contenção do canal reduzem a largura de banda efetivamente disponível para todos os dispositivos no canal.

    Um canal SCSI com diversos drives de disco altamente ativos seria um bom exemplo disto. Os drives de disco altamente ativos saturam o canal SCSI, deixando pouca banda disponível para qualquer outro dispositivo no mesmo canal. O resultado final é que todas as I/O de qualquer dispositivo neste canal são lentas, mesmo que cada dispositivo no canal não esteja sobrecarregado.

  2. O canal ou central de dados (datapath) pode ser um recurso dedicado com um número fixo de dispositivos anexos. Neste caso, as características elétricas do canal (e até certo ponto, a natureza do protocolo utilizado) limitam a banda disponível. Este caso geralmente ocorre mais frequentemente com centrais de dados que com canais. Esta é uma das razões pelas quais os adaptadores gráficos tendem a operar mais lentamente com definição e resolução de cores mais altas — para cada recarregamento da tela (refresh), há mais dados a serem passados através da central de dados conectando a memória de vídeo e o processador gráfico.

3.1.4. Soluções Potenciais Relacionadas à Largura de Banda (Bandwidth)

Felizmente, os problemas relacionados à largura de banda podem ser solucionados. Na realidade, há diversas táticas para isso:

  • Distribuir a carga

  • Reduzir a carga

  • Aumentar a capacidade

As seções seguinites exploram cada uma das táticas detalhadamente.

3.1.4.1. Distribuir a Carga

A primeira tática é distribuir a atividade do canal de forma mais balanceada. Em outras palavras, se um canal está sobrecarregado e um outro está ocioso, a situação pode ser melhorada ao mover parte da carga para o canal ocioso.

Como administrador de sistemas, esta é a primeira tática a considerar, já que há canais adicionais frequentemente presentes em seu sistema. Por exemplo: a maioria dos PCs incluem ao menos dois canais ATA. Se você tiver dois drives de disco ATA e dois canais ATA, por que os dois drives devem estar no mesmo canal?

Mesmo se a configuração de seu sistema não incluir canais adicionais, distribuir a carga ainda é uma tática razoável. Os custos de hardware para isso são menores que os custos de uma substituição de um canal existente por hardware de capacidade maior.

3.1.4.2. Reduzir a Carga

À primeira vista, reduzir e distribuir a carga parecem ser dois lados da mesma moeda. Afinal de contas, quando alguém distribui a carga, age para a redução da mesma (ao menos no canal sobrecarregado), certo?

Apesar deste ponto de vista ser correto, não é o mesmo que reduzir a carga globalmente. A questão aqui é determinar se há algum aspecto da carga do sistema que esteja causando a sobrecarga do canal específico. Por exemplo: uma rede está altamente carregada devido a atividades desnecessárias? Talvez, um pequeno arquivo temporário seja o recipiente de ações de leitura/gravação I/O pesadas. Se este arquivo temporário reside num servidor de arquivos em rede, uma grande quantidade de tráfego de rede pode ser eliminada ao trabalhar com o arquivo localmente.

3.1.4.3. Aumentar a Capacidade

A solução óbvia para banda insuficiente é aumentá-la de alguma maneira. No entanto, esta é uma alterantiva cara. Considere, por exemplo, um controlador SCSI e seu canal sobrecarregado. Para aumentar sua banda, o controlador SCSI (e provavelmente todos os dispositivos anexos) precisará ser trocado por hardware mais rápido. Se o controlador SCSI for uma placa separada, este será um processo relativamente simples, mas se o controlador SCSI for parte da placa-mãe do sistema, será mais difícil justificar a economia desta troca.

3.1.5. Em Suma…

Todos os administradores de sistemas devem estar cientes da largura de banda (bandwidth) e de como a configuração e o uso do sistema impactam na banda disponível. Infelizmente, nem sempre é aparente o que é um problema relacionado à largura de banda e o que não é. Às vezes, o problema não é o canal, mas um dos componentes anexos a este.

Por exemplo: considere um adaptador SCSI conectado a um canal PCI. Se há problemas de desempenho com o disco I/O SCSI, pode ser resultado de um adaptador SCSI com baixo desempenho, mesmo que os canais SCSI e PCI não estejam próximos de suas capacidades de largura de banda.

Notas

[1]

Ao invés de um canal intra-sistema, as redes podem ser encaradas como um canal inter-sistema.