Sistemas Solaris Unix trocando e bloqueando processos

2

Alguns usuários estão reclamando de baixo desempenho em um novo servidor. A única execução nesta máquina é o Oracle 10.2.

À primeira vista, tudo parece ok: o carregamento é mínimo, nada nos logs. A única coisa que posso encontrar é que o vmstat está reclamando de muitos processos de troca e bloqueio. Onde devo começar a solucionar esse problema?

# vmstat -S 5 5
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  si  so pi po fr de sr rm s0 s1 s2   in   sy   cs us sy id
 0 0 0 12420128 16679384 0 0 672 809 809 0 0 -0 2 2 -0  875  572  652  0  0 100
 0 7 0 1926560 5871472 0  0 4396 11463 11463 0 0 0 0 0 0 1796 662 1731 0  0 100
 0 2 0 1925984 5934624 0  0 19058 13657 13657 0 0 0 0 0 0 4877 1336 6145 0 1 99
 0 3 0 1925984 6126144 0  0 12691 13821 13821 0 0 0 0 0 0 3708 1055 4537 0 1 99
 0 5 0 1925984 6093776 0  0 6033 15628 15628 0 0 0 0 0 0 2215 745 2386 0  0 100
    
por user1855 18.05.2009 / 19:11

5 respostas

3

Desculpe, mas sua saída do vmstat não está mostrando nenhuma troca. Primeiro, a definição do Solaris de "troca" é quando um processo inteiro é trocado em nossa saída devido à extrema pressão da memória. Estas são suas colunas 0 si e so. Você não deve realmente ver isso em todos, mas os sistemas mais patologicamente carregados. As colunas pi e po podem mostrar atividade de "paginação". A atividade que normalmente é chamada de "troca" em outros sistemas é chamada de "paginação" na terminologia do Solaris. Mas você precisa rodar "vmstat -p" para ver os números da api / apo (anônimos e page-outs anônimos) - isso é o que as pessoas geralmente chamam de "troca". As colunas pi / po incluem o que é essencialmente uma atividade normal do sistema de arquivos. (por exemplo, mapeamento de memória IO).

Para identificar o dispositivo em questão, o iostat irá ajudá-lo. Algo como "iostat -dxzn 1". Você provavelmente verá alguns dispositivos 100% ocupados, já que você tem processos bloqueados no disco IO (a coluna vmstat b).

    
por 26.05.2009 / 23:38
1

Sou muito novato para adicionar um comentário, por isso vou "responder" ...

Tente executar "iostat -xcn 1" para ver quais são os seus dispositivos de bloco hot . Você está usando volumes brutos ou formatados? ZFS ou UFS (suponho que este seja o Solaris 10 ...)? Qual é o layout do seu disco?

Você está trocando um pouco ... você ajustou seus semáforos e tal? Usando projetos ou / etc / system (novamente, assumindo o Solaris 10 ..)?

    
por 25.05.2009 / 21:42
1

Eu geralmente começaria a receber mais detalhes dos usuários. O que exatamente é aquilo que não está funcionando rápido? Mesmo se você voltar "tudo" tente identificar pelo menos um caso específico, transação, trabalho, ... algo para pendurar e rastrear.

Em seguida, rastreie-o por meio do Oracle (por exemplo, rastreio 10046, se não for muito complexo), verifique quais recursos do servidor são usados (quais tabelas, em quais discos ...), descubra onde o tempo é gasto,

Na minha experiência, quando vi 100% de discos ocupados em iostat -znx 3 , era o oracle mal configurado ou um plano de execução não ideal que fazia varreduras de tabela completas ou algo semelhante.

A outra maneira é ver quais dados estão em discos ocupados (tablespaces ou refazer ou o quê?), então procure por operações IO caras ou operações longas ou algo assim.

BTW - você recalculou estatísticas e coisas assim quando se mudou para o novo servidor? O otimizador dinâmico da Oracle é uma vadia em ambos os sentidos.

    
por 30.05.2009 / 06:12
0

Bem, se você estiver trocando, você vai aumentar a espera por IO em geral, o que levará a um comportamento lento. O que é carga em geral? A carga pode "sentir" diferente dependendo do que está causando isso. Os picos de carga devido à utilização pesada do CPU dificultam o desempenho, mas parece que se a espera por E / S for pesada, uma carga de 15 parecerá um valor de 1.000.

    
por 22.05.2009 / 08:11
0

Olhando atentamente para os números que você postou, mostra 0 páginas trocadas e retiradas. Mesmo com -S se a sua máquina estiver trocando, você não deve ver um 0 nessas colunas.

Minha aposta é que sua máquina está fazendo IO de memória mapeada, que tem características de paginação semelhantes, mas não é indicativa de surra.

Eu não tenho acesso a uma máquina Solaris no momento, então estou baseando isso em uma cópia do página man do vmstat (1)

    
por 26.05.2009 / 17:40