Perf Tool – Linux

O perf tool é uma ferramenta de análise de desempenho e coleta diversos eventos (de hardware, como TLB-load e alguns de software, como pagefaults). Achei bastante bastante completo. Seguem algumas dicas de como utilizá-lo. 1) Verifique se o pacote está instalado:

# rpm -qa | grep -i perf
perf-2.6.34-8.1.x86_64

2) Pode-se gerar os dados e enviar para um arquivo para análise posterior:

# perf record -- <commando>

Exemplo:

# perf record -- lame -h -b teste.txt teste2.txt

3) Deve gerar um arquivo chamado perf.data

# ls
teste.txt teste2.txt perf.data

4) Para verificar seu conteúdo:

# perf report

[OUTPUT]
# Samples: 1137186
#
# Overhead  Command                                                         Shared Object  Symbol
# ........  .......  ....................................................................  ......
#
    22.68%     lame  lame                                                                  [.] quantize_lines_xrpow
    15.94%     lame  lame                                                                  [.] choose_table_nonMMX
    14.50%     lame  lame                                                                  [.] count_bits
    10.00%     lame  lame                                                                  [.] L3psycho_anal_vbr
     5.46%     lame  lame                                                                  [.] count_bit_noESC_from3
     4.60%     lame  lame                                                                  [.] filterYule
     3.15%     lame  lame                                                                  [.] init_xrpow_core_c
     2.61%     lame  lame                                                                  [.] calc_noise_core_c
     2.50%     lame  lame                                                                  [.] noquant_count_bits
     2.49%     lame  lame                                                                  [.] fht
     2.23%     lame  lame                                                                  [.] outer_loop

Note que ele mostra qual parte do código gerou maior overhead na execução do Lame. 5) Outra forma de executar o perf, sem precisar gerar o arquivo:

# perf stat -- lame -h -b 320 teste.txt teste2.txt

…
Performance counter stats for 'lame -h -b 320 teste.txt teste2.txt:

  104592.953262  task-clock-msecs         #      0.999 CPUs
            706  context-switches         #      0.000 M/sec
              0  CPU-migrations           #      0.000 M/sec
            568  page-faults              #      0.000 M/sec
  <not counted>  cycles
  <not counted>  instructions
  <not counted>  branches
  <not counted>  branch-misses
  <not counted>  cache-references
  <not counted>  cache-misses

  104.723311336  seconds time elapsed

Existem outras ferramentas para análise boas para o Linux, como o System Tap (análogo ao Dtrace do solaris) e o kprobes e jprobes (análise de chamadas a funções de kernel).

Créditos da explicação: Arthur Baruchi

Como conseguir o IP de um servidor via console no HP-UX

Produto instalado: SFM-CORE B.05.00.05 HPUX System Fault Management

Versão HP-UX: 11.23

#/opt/sfm/bin/CIMUtil -e root/cimv2 HP_ManagementProcessor
Instance 0 :
UniqueIdentifier : 0.19.33.124.117.193
ControllerType : 3
OtherControllerType :
IPAddress : 10.10.11.250 <------ MP IP
URL : http://10.10.11.250 <------ MP IP
Dedicated : 14
CreationClassName : HP_ManagementProcessor
Name : Management Processor
EnabledState : 2
OperationalStatus : 2

Aumento de filesystem no Linux (usando ext2online)

Sistema Operacional: Red Hat Enterprise Linux AS Release 4

Aumentar o filesystem em 5 GB.

1) Verifique se o filesystem está montado:

# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-testelv
                      5.0G   43M  4.7G   1% /mnt

2) Extenda o LV:

# lvextend -L +5g /dev/rootvg/testelv
  Extending logical volume testelv to 10.00 GB
  Logical volume testelv successfully resized

3) Verifique se o LV foi aumentado:

# lvdisplay /dev/rootvg/testelv
  --- Logical volume ---
  LV Name                /dev/rootvg/testelv
  VG Name                rootvg
  LV UUID                wIlwEf-eytH-Cb2X-N9FP-zh3D-faw3-Xq4tTj
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                10.00 GB
  Current LE             320
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:44

4) Agora extenda com o ext2online:

# ext2online /dev/rootvg/testelv /mnt
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b

5) Verifique se o filesystem foi aumentado:

# df -h /mnt
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-testelv
                      9.9G   44M  9.4G   1% /mnt

Instalar e usar o ZIP no HP-UX

Este artigo vai ensinar a instalar e usar o ZIP no HP-UX. Lembrando que para este Sistema Operacional, deve-se instalar o ZIP e o UNZIP. O exemplo mostra a instalação de um deles.

1) Identificar a versão do Sistema Operacional e a Arquitetura:

# uname -a
HP-UX hostname B.11.23 U ia64 0691233602 unlimited-user license

Neste caso identificamos que é um HP-UX versão 11.23 com arquitetura Itanium 64.

2) Baixe o zip no repositório do site abaixo, selecionando a versão e arquitetura correta:

http://hpux.connect.org.uk/hppd/hpux/Misc/zip-3.0/

3) Copiar o pacote para o /tmp do servidor.

4) Faça o gunzip do pacote:

/usr/contrib/bin/gunzip zip-3.0-ia64-11.23.depot.gz

5) Instalar com o comando swinstall:

swinstall -s /tmp/zip-3.0-ia64-11.23.depot

6) Utilização:

/usr/local/bin/zip -r arquivo.zip diretorio1

Obs: O -r cria o ZIP com os arquivos e diretórios recursivos abaixo de diretorio1

Aumento de filesystem no HP-UX – LVM

Este artigo exemplifica o aumento de filesystem e um Sistema Operacional HP-UX (LVM).

1) Verifique se o filesystem está montado:
# bdf  /usr/sap/C5R/DEV/work
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg05/lv05
3145728 3145728       0  100% /usr/sap/C5R

2) Verifique se o VG possui espaço disponível:

# vgdisplay vg05
--- Volume groups ---
VG Name                     /dev/vg05
VG Write Access             read/write
VG Status                   available
Max LV                      255
Cur LV                      7
Open LV                     7
Max PV                      255
Cur PV                      2
Act PV                      2
Max PE per PV               1016
VGDA                        4
PE Size (Mbytes)            32
Total PE                    1918
Alloc PE                    1472
Free PE                     446
Total PVG                   1
Total Spare PVs             0
Total Spare PVs in use      0
VG Version                  1.0
VG Max Size                 8290560m
VG Max Extents              259080

3) Verifique os detalhes do VG e seus LVs. Este servidor utiliza PVE. Neste caso é necessário saber se dos 446 que existem disponíveis no PE, estão disponíveis no espelhamento dos dois PVEs.

# vgdisplay -v vg05
--- Volume groups ---
VG Name                     /dev/vg05
VG Write Access             read/write
VG Status                   available
Max LV                      255
Cur LV                      7
Open LV                     7
Max PV                      255
Cur PV                      2
Act PV                      2
Max PE per PV               1016
VGDA                        4
PE Size (Mbytes)            32
Total PE                    1918
Alloc PE                    1472
Free PE                     446
Total PVG                   1
Total Spare PVs             0
Total Spare PVs in use      0
VG Version                  1.0
VG Max Size                 8290560m
VG Max Extents              259080

   --- Logical volumes ---
   LV Name                     /dev/vg05/lvsoftware
   LV Status                   available/syncd
   LV Size (Mbytes)            10240
   Current LE                  320
   Allocated PE                320
   Used PV                     2

   LV Name                     /dev/vg05/lvoracle
   LV Status                   available/syncd
   LV Size (Mbytes)            12288
   Current LE                  384
   Allocated PE                384
   Used PV                     2

   LV Name                     /dev/vg05/lvorac5r
   LV Status                   available/syncd
   LV Size (Mbytes)            10240
   Current LE                  320
   Allocated PE                320
   Used PV                     2

   LV Name                     /dev/vg05/lvsapmntc5r
   LV Status                   available/syncd
   LV Size (Mbytes)            4096
   Current LE                  128
   Allocated PE                128
   Used PV                     2

   LV Name                     /dev/vg05/lv05
   LV Status                   available/syncd
   LV Size (Mbytes)            3072
   Current LE                  96
   Allocated PE                96
   Used PV                     2

   LV Name                     /dev/vg05/lvsapdb
   LV Status                   available/syncd
   LV Size (Mbytes)            6144
   Current LE                  192
   Allocated PE                192
   Used PV                     2

   LV Name                     /dev/vg05/lvinterface
   LV Status                   available/syncd
   LV Size (Mbytes)            1024
   Current LE                  32
   Allocated PE                32
   Used PV                     2

   --- Physical volumes ---
   PV Name                     /dev/disk/disk1455
   PV Status                   available
   Total PE                    959
   Free PE                     223
   Autoswitch                  On
   Proactive Polling           On

   PV Name                     /dev/disk/disk1456
   PV Status                   available
   Total PE                    959
   Free PE                     223
   Autoswitch                  On
   Proactive Polling           On

   --- Physical volume groups ---
   PVG Name                    Pvg05
   PV Name                     /dev/disk/disk1455
   PV Name                     /dev/disk/disk1456

Veja que na saída do último bloco, temos dois PVEs com 223 livres. Então podemos prosseguir com o aumento de filesystem.

4) Verifique quanto já foi alocado para o LV (96):

# lvdisplay /dev/vg05/lv05
--- Logical volumes ---
LV Name                     /dev/vg05/lv05
VG Name                     /dev/vg05
LV Permission               read/write
LV Status                   available/syncd
Mirror copies               0
Consistency Recovery        MWC
Schedule                    parallel
LV Size (Mbytes)            3072
Current LE                  96
Allocated PE                96
Stripes                     0
Stripe Size (Kbytes)        0
Bad block                   off
Allocation                  PVG-strict/distributed
IO Timeout (Seconds)        default

5) Fazendo uma conta rápida, do disponível de PE x o tamanho que são criados os PEs, você tem um total de 3072. Se dividirmos o valor que queremos aumentar por 32, temos aproximadamente o valor de 156. Logo, 156 x 32 x 1024 = 5111808 <= este será o tamanho que temos que ter no TOTAL do LV.

# bc
96*32
3072
5000/32
156
156*32*1024
5111808

6) Faça o aumento do filesystem:

# lvextend -l 156 /dev/vg05/lv05
Logical volume "/dev/vg05/lv05" has been successfully extended.
Volume Group configuration for /dev/vg05 has been saved in /etc/lvmconf/vg05.conf

7) Verifique se o LV está com o tamanho correto:

# lvdisplay /dev/vg05/lv05

--- Logical volumes ---

LV Name                     /dev/vg05/lv05

VG Name                     /dev/vg05

LV Permission               read/write

LV Status                   available/syncd

Mirror copies               0

Consistency Recovery        MWC

Schedule                    parallel

LV Size (Mbytes)            4992

Current LE                  156

Allocated PE                156

Stripes                     0

Stripe Size (Kbytes)        0

Bad block                   off

Allocation                  PVG-strict/distributed

IO Timeout (Seconds)        default

8) Verifique que se executarmos o comando bdf neste momento, o mesmo ainda não está no filesystem, apesar de já ter sido alocado no LV. Isto acontece porque além de disponibilizar no LV, é necessário disponibilizar para o filesystem.

# bdf  /usr/sap/C5R/DEV/work
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg05/lv05
                   3145728 3145728       0  100% /usr/sap/C5R

9) Alocando no filesystem:

# fsadm -b 5111808 /usr/sap/C5R
fsadm: /etc/default/fs is used for determining the file system type
UX:vxfs fsadm: INFO: V-3-25942: /dev/vg05/rlv05 size increased from 3145728 sectors to 5111808 sectors

10 ) Verifique que agora o FS está aumentado:

# bdf  /usr/sap/C5R/DEV/work
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg05/lv05
                   5111808 3149328 1947176   62% /usr/sap/C5R

Solaris – Usando o explorer para coleta de informações

1) Instalação

Pacotes: SUNWexplo and SUNWexplu

# pkgadd –d SUNWexplo
# pkgadd –d SUNWexplu

2) Execução (Executar pela primeira vez):

Importante: Ele vai te perguntar a localização, endereço, região e o caminho do arquivo de configuração e as opções para adicionar o explorer no cron ou enviar via e-mail. Se o explorer já estiver instalado, pule esta parte.

# explorer –g

- Executar para coleta de logs (leva de 5 a 15 minutos para executar):

# explorer

- A árvore de diretórios será criada em (exemplo):

# ls –ltr /opt/SUNWexplo/output/explorer.84ada0fc.brsmcdthdb03sol-2011.08.15.20.47
total 78
-rw-r--r--   1 root     root        2678 Aug 15 17:49 service_tags.xml
drwxr-xr-x   2 root     root         512 Aug 15 17:52 Tx000
drwxr-xr-x   3 root     root         512 Aug 15 17:52 cluster
drwxr-xr-x   2 root     root         512 Aug 15 17:53 fru
drwxr-xr-x   8 root     root         512 Aug 15 17:53 init
drwxr-xr-x   4 root     root         512 Aug 15 17:53 j2se
drwxr-xr-x   3 root     root         512 Aug 15 17:54 system
drwxr-xr-x  10 root     root        1024 Aug 15 17:54 etc
drwxr-xr-x   2 root     root         512 Aug 15 17:56 patch+pkg
drwxr-xr-x   4 root     root        6144 Aug 15 17:56 sysconfig
drwxr-xr-x   2 root     root         512 Aug 15 17:56 cacao
drwxr-xr-x   2 root     root         512 Aug 15 17:56 crypto
drwxr-xr-x  10 root     root        3584 Aug 15 17:56 disks
drwxr-xr-x   2 root     root         512 Aug 15 17:56 emc
drwxr-xr-x   4 root     root        3072 Aug 15 17:56 fma
drwxr-xr-x   8 root     root         512 Aug 15 17:56 var
drwxr-xr-x   2 root     root         512 Aug 15 17:56 license
drwxr-xr-x   2 root     root         512 Aug 15 17:56 lp
drwxr-xr-x   2 root     root         512 Aug 15 17:56 messages
drwxr-xr-x   6 root     root        1536 Aug 15 17:56 netinfo
drwxr-xr-x   2 root     root         512 Aug 15 17:56 san
drwxr-xr-x   7 root     root         512 Aug 15 17:56 tapes
-rw-r--r--   1 root     root        1783 Aug 15 17:56 README
-rw-r--r--   1 root     root         672 Aug 15 17:56 defaults
-rw-r--r--   1 root     root           5 Aug 15 17:56 rev

- Zipe e envie para o destinatário.

http://supportuploads.sun.com/upload

Fonte: http://download.oracle.com/docs/cd/E11857_01/em.111/e21076/ch2_using.htm

Como encontrar a WWN de uma HBA QLogic no Linux (RHEL / SLES)

- Logado como root, execute o comando abaixo:

# cat /proc/scsi/qla2xxx/X

Onde:

X = número do device

Como saber o número do meu device ?

[root@host]# ls -ltr /proc/scsi/qla2xxx
total 0
-rw-r--r--  1 root root 0 Nov  8 11:35 2
-rw-r--r--  1 root root 0 Nov  8 11:35 1

Resultado do comando:

# cat /proc/scsi/qla2xxx/2 | grep adapter-port
scsi-qla1-adapter-port=2101001b32a73a22;

Este é o número da sua WWN:

2101001b32a73a22