(sistema de 32 bits)
Publicou um Q / A antes sobre falhas do Chrome devido ao limite esgotado em arquivos abertos.
O Chrome, desde então, é executado com mais fluidez (depois de aumentar o limite), mas ainda trava de tempos em tempos.
Olhando para os relatórios de falhas, repetidamente tem algo como:
SegvAnalysis:
Segfault happened at: 0xb616c30f: movl $0x1337,0x0
PC (0xb616c30f) ok
source "$0x1337" ok
destination "0x0" (0x00000000) not located in a known VMA region (needed writable region)!
Stack memory exhausted (SP below stack segment)
SegvReason: writing NULL VMA
As entradas do cão de guarda no log normalmente dizem:
... Watchdog[3100]: segfault at 0 ip b613437f sp af8e8cc0 error 6 in chrome[b20d5000+5689000]
De /proc/[PID]/maps
no arquivo de falha existe:
bfd58000-bfd78000 rwxp 00000000 00:00 0 [stack]
que conclui a pilha de 128K? ( 0xbfd78000 - 0xbfd58000 = 131072
)
De /proc/[PID]/status
no arquivo de falha existe:
FDSize: 1024
embora eu tenha definido o limite para 32K.
Mas acho que isso é para o processo preso no relatório e não nas crianças, etc.
Agora, após a atualização mais recente da versão 40.0.2214.94, há um novo problema. Depois de um tempo (estou executando o chrome do shell), há entradas repetidas de:
getrlimit(RLIMIT_NOFILE) failed
Eu defini limite para arquivos abertos 32768 por:
ulimit -Sn 32768
Acho difícil detectar quantos arquivos o Chrome realmente tem aberto devido à desova e reutilização etc. mas parece que está usando vários. losof
inclui tudo, mas por curiosidade Fiz um teste para ver quantas entradas (gananciosas) foram adicionadas.
Antes de iniciar o Chrome, o losf | wc -l
gerou cerca de 55 mil linhas. Isso foi com FireFox aberto segurando 80 + abas em várias janelas + um monte de outras aplicações.
Depois de iniciar o Chrome, a contagem de lsof está aumentando:
lsof | wc -l
Pre chrome : 55,524
1 window 1 tab : 79,820
1 window 15 tabs : 105,308
2 windows 30 tabs : 141,076
3 windows 40 tabs : 187,285
Tentando apenas ver os processos denominados chrome
(now) com 1 janela 2 guias:
sudo lsof -a -p $(pgrep chrome | paste -sd "," -) | wc -l
dá 4380.
Minha pergunta é se isso poderia ter algo a ver com os erros getrlimit
, (e / ou talvez os SigSegv's).
Essa quantidade de entradas em lsof
normal / é esperada para um aplicativo como o Chrome?
Há algo que eu possa fazer para "corrigir" os erros getrlimit
?
É porque eu defini o limite suave como alto?