Linhas de rolagem do terminal Gnome?

Linhas de rolagem do terminal Gnome?

Atualmente eu configurei a configuração de rolagem do terminal gnome (Editar -> Preferências de perfil -> Rolagem) para 10.000 linhas. Estou tentado a marcar Ilimitado, mas temo que isso possa causar falhas de memória (se eu deixar um programa com muita saída em execução durante a noite, não gostaria que ele travasse por causa disso).

Minhas perguntas são:

  1. Essas linhas de rolagem são armazenadas na memória ou armazenadas em cache em um arquivo no disco?

  2. Se eu mudar de 10.000 para 100.000 ou para 1 milhão, ainda estarei seguro? Quais parâmetros (RAM, espaço livre em disco, número de terminais abertos) preciso levar em consideração)? Selecionar Ilimitado é seguro?

Responder1

Aparentemente está armazenado em arquivos excluídos do disco, de acordo com informações muito interessantespostagem no blog:

Eu poderia apenas ver quais arquivos gnome-terminalestavam abertos, para lsofo resgate. Aí descobri que estava sendo sorrateiro, tinha vários arquivos chamados /tmp/vteXYZ1tvabertos, mas já os havia deletado. Assim, você não poderá vê-los durante a navegação e eles serão removidos quando o programa for fechado. Isso faz sentido, significa que quando o processo é encerrado, não importa como (pelo menos eu acho), o espaço dos arquivos pode ser recuperado, ou seja, não obteremos arquivos restantes em uma falha do programa, ou um kill -9. Eles podem ser restaurados, porém, do meu jeito (provavelmente existem outros), foi fazer um ls -l /proc/<gnome-terminal pid>/fdpara ver o que eles apontam. Então você pode catfazer isso para criar um novo arquivo. Estas são apenas uma cópia literal da saída do terminal. Sem compressão. Não, nada. Acontece que um dos históricos do meu terminal tinha quase 900 MB! Mas isso só aconteceu depois que dados aleatórios foram divulgados muito rapidamente por um bom tempo, o que é improvável de acontecer no uso normal.

E vou enfatizar isso novamente: o pôster já estava rodando base64 < /dev/urandomhá algum tempo, procurando por aumentos no uso de memória ou disco - 900 MB seria um uso excepcional.

Responder2

gnome-terminal(na verdade vte) de fato armazena o scrollback em um arquivo excluído imediatamente em /tmp(mais precisamente: no local do arquivo temporário padrão influenciado por $TMPDIRe talvez alguns semelhantes).

Este design foi escolhido principalmente para scrollback ilimitado e não causar erros de OOM. É muito menos provável que o disco fique cheio e, mesmo que isso aconteça, é menos prejudicial para todo o sistema do que ficar sem memória.

vte-0.40(que provavelmente aparecerá no Ubuntu 15.10 WW) irá compactar e criptografar esses arquivos. Isso reduzirá o armazenamento necessário para aproximadamente um terço a quarto de seu tamanho (se seu aplicativo produzir uma quantidade X de dados como texto simples, algo entre X/4 .. X/3 é uma estimativa razoável para o armazenamento que será necessário) e também elimina o problema de privacidade/segurança caso alguém obtenha acesso bruto ao disco rígido.

Estamos planejando adicionar uma opção para armazenar o scrollback na memória, da mesma forma que se você /tmpestivesse ativado tmpfs. Se tudo correr como planejado, isso aparecerá vte-0.42no Ubuntu 16.04 XX LTS. Mas não posso prometer isso.

informação relacionada