Estou tendo um problema com um servidor Debian que achei que era devido a RAM ruim, mas está persistindo.
É um Dell Poweredge 6800 com dois processadores dual-core 3.6GHZ Xeon e 5 GB de DDR2 ECC 333.
Eu tenho um único drive SCSI de 73GB.
Eu estou trabalhando até a morte agora, puxando registros do MySQL para construir arquivos .call (pequenos arquivos de texto) que disparam chamadas SIP.
Nós o gerenciamos por meio de uma interface cgi, e o sistema também está executando o citadel para o nosso e-mail, mas temos menos de cinco usuários. Não é um dreno enorme.
Meu pico de uso parece ser de cerca de 460 chamadas por minuto. Carregar focos entre 2,0 - 4,3, se eu passar por isso, picos para > 22,0.
O problema que estou tendo é que, cerca de uma hora em uma discagem, está congelando em mim. Ontem à noite eu comecei às 5:59, e às 6:55:17 segundos, o sistema ficou sem resposta. Nada foi registrado, não consegui me conectar via ssh ou http, ele respondeu ao ping, e o nmap mostrou portas abertas para as quais eu consegui fazer telnet, mas não obteve nenhuma resposta.
Minha coleta de dados do sar funcionou às 6:50 e, naquela época, eu estava vendo uso pesado, como esperado, mas nada ultrajante, tanto quanto eu posso dizer.
O sistema estava reclamando de um erro de memória em uma das novas tiras de 2GB que eu tinha instalado, então após o primeiro acidente, eu substituí esse par pelas tiras de 512MB que nós atualizamos.
No momento, estou discando com uma coleta de dados ao vivo do sar em execução, caso ela falhe novamente. Pelo menos eu serei capaz de discar com um pouco mais de granularidade.
Além disso, estou perdido em como diagnosticar o congelamento do sistema na ausência de dados de log relevantes ou um despejo de memória. Como o sistema ainda está em execução, mas não responde completamente durante esse tempo, até que eu execute um ciclo de energia. Alguma idéia?
OBSERVAÇÃO: tenho novos servidores para retirar parte da carga desse sistema distribuindo serviços, mas, enquanto isso, é um tempo médio em que nossa produção está confiando nesse trabalho pesado.
Aqui é o Sar dados do acidente de ontem à noite.
ATUALIZAÇÃO: Este snapshot do sar estava sendo executado em incrementos de 10 segundos, reunidos pela última vez 1 s antes de congelar
Eu comprei um servidor de console de terminal e agora posso ver o que está acontecendo quando o sistema congela.
Este conjunto de mensagens repete-se a cada 30 segundos, percorrendo CPU1 e CPU2
[17675.940127] BUG: soft lockup - CPU#1 stuck for 61s! [asterisk:4579]
[17675.940127] Modules linked in: btrfs zlib_deflate crc32c libcrc32c ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs reiserfs ext]
[17675.940127]
[17675.940127] Pid: 4579, comm: asterisk Not tainted (2.6.32-5-686-bigmem #1) PowerEdge 6800
[17675.940127] EIP: 0060:[<c1024c6f>] EFLAGS: 00000202 CPU: 1
[17675.940127] EIP is at native_flush_tlb_others+0x85/0xa6
[17675.940127] EAX: 00000282 EBX: c14620ac ECX: c102fb3a EDX: 00000020
[17675.940127] ESI: 00000001 EDI: 00000040 EBP: c14620a0 ESP: f35d1a3c
[17675.940127] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[17675.940127] CR0: 80050033 CR2: b3f06946 CR3: 36787000 CR4: 000006f0
[17675.940127] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[17675.940127] DR6: ffff0ff0 DR7: 00000400
[17675.940127] Call Trace:
[17675.940127] [<c1024d57>] ? flush_tlb_page+0x5d/0x65
[17675.940127] [<c1024144>] ? ptep_set_access_flags+0x59/0x63
[17675.940127] [<c10a13c8>] ? do_wp_page+0x3b9/0x7dd
[17675.940127] [<c1025a1d>] ? kmap_atomic_prot+0xd7/0xfc
[17675.940127] [<c10a3173>] ? handle_mm_fault+0x982/0xa22
[17675.940127] [<c104d52d>] ? lock_hrtimer_base+0x15/0x2f
[17675.940127] [<c104d5ab>] ? hrtimer_try_to_cancel+0x2f/0x35
[17675.940127] [<c12823e8>] ? do_page_fault+0x2f1/0x307
[17675.940127] [<c12820f7>] ? do_page_fault+0x0/0x307
[17675.940127] [<c1280923>] ? error_code+0x73/0x78
[17675.940127] [<c10c00d8>] ? copy_strings+0x94/0x1ba
[17675.940127] [<c10c6b8a>] ? do_sys_poll+0x2c3/0x312
[17675.940127] [<c10c7586>] ? __pollwait+0x0/0xa5
[17675.940127] [<c10c762b>] ? pollwake+0x0/0x65
[17675.940127] [<c10c762b>] ? pollwake+0x0/0x65
[17675.940127] [<c10c762b>] ? pollwake+0x0/0x65
[17675.940127] [<c10c762b>] ? pollwake+0x0/0x65
[17675.940127] [<c1026614>] ? activate_task+0x1e/0x24
[17675.940127] [<c1032713>] ? push_rt_task+0x208/0x242
[17675.940127] [<c102acb9>] ? post_schedule+0x31/0x3e
[17675.940127] [<c127f5d6>] ? schedule+0x78f/0x7dc
[17675.940127] [<c10567d5>] ? futex_wait_setup+0x5c/0xcd
[17675.940127] [<c10568cd>] ? futex_wait_queue_me+0x87/0x98
[17675.940127] [<c100c96a>] ? sched_clock+0x5/0x7
[17675.940127] [<c1091b00>] ? zone_watermark_ok+0x16/0x99
[17675.940127] [<c1087baa>] ? cpupri_find+0x4c/0xd6
[17675.940127] [<c109270c>] ? get_page_from_freelist+0xc0/0x3c7
[17675.940127] [<c102d917>] ? check_preempt_curr_rt+0x76/0xe3
[17675.940127] [<c1024e31>] ? smp_invalidate_interrupt+0x73/0x86
[17675.940127] [<c1092cd4>] ? __alloc_pages_nodemask+0xf3/0x4d9
[17675.940127] [<c113d358>] ? cpumask_any_but+0x20/0x2b
[17675.940127] [<c1024d44>] ? flush_tlb_page+0x4a/0x65
[17675.940127] [<c127fe16>] ? mutex_lock+0xb/0x24
[17675.940127] [<c10bb225>] ? do_sync_read+0xc0/0x107
[17675.940127] [<c10438d5>] ? do_send_sig_info+0x4f/0x59
[17675.940127] [<c104a97a>] ? autoremove_wake_function+0x0/0x2d
[17675.940127] [<c1051af5>] ? ktime_get_ts+0xcd/0xd5
[17675.940127] [<c10c6d2b>] ? sys_poll+0x44/0x8d
[17675.940127] [<c100813b>] ? sysenter_do_call+0x12/0x28
A primeira iteração tinha outro conjunto de módulos listados.
[267866.376128] Modules linked in: cpufreq_powersave cpufreq_stats cpufreq_conservative cpufreq_userspace parport_pc ppdev lp parport sco bridge stp bnep rfcomm l2cap crc16 bluetooth rfkill nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs binfmt_misc fuse loop radeon ttm psmouse drm_kms_helper serio_raw evdev pcspkr drm i2c_algo_bit rng_core i2c_core dcdbas shpchp button pci_hotplug processor ext3 jbd mbcache sd_mod crc_t10dif sg sr_mod cdrom ata_generic uhci_hcd ata_piix mptspi mptscsih ehci_hcd mptbase usbcore nls_base libata tg3 scsi_transport_spi scsi_mod floppy libphy thermal thermal_sys [last unloaded: scsi_wait_scan]
Eu instalei intel-microcode microcode.ctl
e não descobri como desabilitar o hyperthreading como alguns outros fóruns sugeriram.