Transcrição do áudio
Vamos agora falar sobre alguns comandos interessantes que envolvem processos, tá? O mais bacana de todos que é muito utilizado é o TOP, tá? Eu gosto muito do TOP pela qualidade da informação que ele me traz, lembrando que tudo isso é estatístico. Como assim tudo isso aqui é estatístico? Não dá pra fazer essa medição em aquele momento exato. Até o momento em que você vê a tela já passou pra máquina uma era. Vamos colocar assim, tá? O que ser humano é uma era pra máquina é segundo. Essa é a verdade. Então o próprio fato de se abrir na tela você olhar já foi. Então é uma estatística, tá? Mas é uma estatística interessante, eu gosto muito disso aqui. Principalmente esses dois caras aqui, ó, running e sleep. Geralmente um processo está dormindo porque ele precisa de um recurso, tá? Então ele vai para bloqueado conforme nós vimos no tunnel, bom? Legal? E aqui eu tenho quanto realmente, quantos estão realmente rodando daquele exato momento? Supondo que eu estou olhando exatamente no momento certo, tá? Ah, pera aí. Ah, pera aí. Pera aí, pera aí, eu vou uma mensagem aqui. Ah, pera aí, pera aí, pera aí. Então vamos lá. Então vamos outra aqui ao vídeo. Caramba, mano. Puta que pariu. Pera aí. Tá bom, escolha essa opção. Aqui, vamos lá. E acontece, vou voltar aqui para o vídeo aqui. Corta. Corta. Então o que nós temos é esse banner que traz muitas informações, principalmente também a questão de memórias, né? Memórias livres. Aqui você tem os processos aqui, isso aqui é tão rápido que eu nem eu consigo acompanhar. Essa é a verdade, tá? Lembrando que você... Então nós temos aqui as saídas, né? Número de usuários, né? Logados de exceção, número de processos que estão em execução, número de tarefas, quantos estão realmente rodando, quantos aguardam o I.O., quantos estão parados, número de zumbis, porcentagem de CPU, mas é tão rápido que a gente não consegue ver. Quantos processos aguardam o I.O. realmente? Quantos estão com interrupção? Aqui nós conseguimos ver todas aquelas informações que você vê lá no livro do Thunderbolt. Então aqui, aqui, aqui. Isso aqui é tudo no livro do Thunderbolt. Beleza? Só que o Thunderbolt, ele é um livro muito teórico, né? Então vamos abrir aqui o top. Acho que eu estou com um terminal aberto aqui, estou. Legal, lia. Vou abrir um pouco mais aqui e mostrar para vocês o top. Então top. Cara, tudo lindo que você tem isso aí. Todo lindo que você tem esse cara aqui. Beleza? Então estamos vendo aqui, né? Por exemplo, CPU teoricamente, um sistema usuário. O mais bacana é isso aqui. Cara, deixa eu ver se eu estou em swap. Essa máquina tem algo em torno de 3GB de memória. Estou usando 2.4. E, cara, o que que está usando tanta memória? Shift-M. Shift-M, então nós vamos aqui ver aqui o consumo de memória. Olha só. Atrio. Atrio. Com certeza eu desconheço esse processo. Atrio. Desconheço esse processo. Com certeza eu vou olhar o que está acontecendo nessa máquina. Está muito estranha. Por uma máquina que não tem muito recurso aqui em processamento. Sendo usado, não deveria ter isso aqui. Beleza? Shift-P. Você está ordenando por consumo de processamento. Shift-M memória. Beleza? Tab e você atualiza. Tab e você atualiza. Cara, estou vendo o consumo excessivo de memória. Então nesse caso, quando eu tenho um consumo excessivo de memória, eu pego aqui o processo. Aqui o 13, 90. Então você tem que ir lá no... Para aí, quando você para parar. Client. Você tem que ir lá no barra Proc. O barra CD, barra Proc. Client S. Tá bom? Cara, tem alguma coisa estranha nessa máquina aqui. Procurar o processo 13, 90. CD, preso 90. Beleza? E você tem que passar? Você pode passar um clã scan aqui. Ou você pode fazer uma extração dessa memória. Destre... Isso aqui você consegue obter, utilizando um comando do volartilit, para poder você extrair da memória esses dados em um arquivo tipo dump, dmp. Então você consegue executar o strings e verificar, por exemplo, com quem esse processo está se comunicando agora. Qual área da memória está em uso? Você consegue fazer uma análise completa disso. É lógico que eu vou colocar um curso disso para vocês lá em forense. Então vamos ter o curso de forense. Beleza? Então nós vamos fazer uma análise. Eu vou até depois fazer uma extração dessa máquina. Eu consigo, por ser uma máquina virtual, fazer uma extração dela, está compactada, para que no futuro eu faça uma extração da memória em tempo de execução. Cara, tudo isso aqui... Tudo isso aqui você consegue, naturalmente, fazer uma extração em tempo de execução. Tá, gente? Tempo de execução, eu consigo vir aqui, salvar isso aqui e depois eu extrair isso e fazer uma forense. Então é assim. Cara, o top é muito utilizado na forense, por exemplo. A primeira coisa que você vai fazer é top, netstat, para pegar dados de comunicações e entender o que mexe em o que. Beleza? Vamos lá. No meu dia a dia também, eu uso muito o H-top. H-top, o sucesso de memória ali, em em, consumo excessivo de memória. É alguma coisa do meu Qubes, cara. É alguma coisa do meu Qubes. Qubes é esse gerenciador aqui, de máquinas virtuais. Aqui, o bom dessa visualização é que eu consigo ver se os programas que eu estou rodando, eles são bons programas. Deixa eu abrir aqui uma outra máquina, tá? Uma máquina que está rodando... Uma máquina que está rodando um processo mal feito, sudo apt install H-top. Vocês sabem que eu... Toda vez eu ligo minha máquina como se ela tivesse acordando para a vida. Tem que instalar tudo de novo. Então vamos dar uma olhada nessa máquina. Essa outra máquina está rodando um programa chamado OBS Studio. Eu posso observar que o OBS Studio consome muito processamento. Beleza? Eu vejo que o OBS Studio não consome muita memória, por ser um processo muito pesado. Veja, essa máquina está com giga de uso. Essa outra máquina aqui... Quer ver essa outra máquina aqui? Pera aí, deixa eu pegar aqui a verde. É a verde, é a verde. Repara, com 700 MB agora. Caiu, uma coisa estranha que aconteceu. Caiu, ele estava com 2, estava no pau. Então eu analiso assim. Então essa máquina está consumindo pouca memória, um giga de memória está gravando, está mostrando um monte de coisas para vocês aqui. Vejo que o OBS está sentando a rípa aqui em várias threads. São threads, isso aqui. Você pode ver pelo uso da memória, tudo igual, né? A thread sendo encarada como processo. Mesmo que o PID seja diferente, coluna de PID aqui. A memória dá para ver que são todas threads, sendo encaradas como processo. Como as threads estão sendo encaradas como processo, o meu schedule, ele enche, ele joga para todas as linhas de processamento essas trocentas threads que são encaradas como processo. Então eu utilizo o máximo possível do meu processador. O processador deve estar, temperatura deve estar no limite lá. Porque eu tenho várias, tenho umas 8 máquinas virtuais abertas, tudo no pau arreado. Um processo ele é ruim, imagine que você chega aqui e encontra alguns núcleos quase 100% e outros núcleos vazios. Significa que os processos que você está executando aqui são processos ruins. Quer dizer que o cara foi um porco, o cara que programou o programa, ele foi um porco que não fez threads de forma adequada. Abre uma, duas threads e ficou naquilo, né? O OBS estúdio não. O OBS estúdio não fez threads ao máximo possível do meu processador. É como se o OBS estúdio olhasse para a minha máquina, compreendesse o número de threads de linhas de processamento que eu tenho e meteu uma pancada de threads para usar o máximo possível. Então eu vejo que o OBS estúdio foi feito por um cara que sabe e compreende de sistemas operacionais. Ele é um programador que conhece sistemas operacionais. É uma pessoa muito boa. Essa equipe desse projeto é muito boa. Você quer ver um exemplo? Quando você pega o FastWinsper, e você compara ele com o OpenEye, você vai ver que o FastWinsper tem a mesma visão do OBS estúdio. Ele preenche todos os núcleos. Mas quando você abre o oficial da OpenEye, que é o Winsper da OpenEye, você vê que ele usa poucos núcleos. Então a equipe do OpenEye fez um Winsper porco. A galera do FastWinsper fez um Winsper que olha para a máquina e usa todos os processadores, igual a equipe do OBS estúdio. Não é porque você tem mais dinheiro na sua empresa que os projetos são bem feitos, ou você tem pouco dinheiro que os projetos são porcamente feitos. É a tua equipe, a capacidade, conhecimento, dissemos operacionais, programação, crédito de computadores. Isso tudo vai mostrar que a capacidade do seu grupo, o OBS estúdio, está arrepiando aqui. Você vê que a máquina está até agarrando aqui, normal. Quando eu for gravar a aula, eu tenho que parar uma pancada de máquinas virtuais se eu quiser dar uma aula. Bom, então estamos aqui, top, mostrei o Htop, né? Bom, exibindo o processo, PS e PS3. Então vamos trazer novamente que contra o C, C, R, PS, certo? PS, vamos entrar. E aí eu tenho aqui as minhas sessões aqui. PS ao X. São argumentos ao X, são argumentos para o comando PS. Aqui eu tenho o Processor ID, aqui eu tenho o User, aqui eu tenho o nome do processo e o estado do processo. SSL, CL, tá? E agora eu tenho a opção. Então nós temos alguns ao estátito do processo. O estátito do processo diz como ele está. É por isso que ele consegue obter informações e montar aquela barrinha lá em cima no top. Então o top fica lendo isso aqui em tempo de excepção. Isso aqui é montado a partir dos dados que estão no diretório PROC. Está lá no diretório PROC, você tem dados dos processos. Então o PS ao X vem, pega, leia aquilo tudo e coloca aqui para você. Tá? Coloca aqui para você. Então, olha. PS3 está instalada aqui, tá? Nem sempre o PS3 está instalado. Então ele inicia com SystemD. Então ele faz aqui, toda uma árvore de processos que abrir o processo. Processo pai, processo filho. Um graçado, olha, repare, poucos processos, né? E a máquina com consumo tão excessivo de memória, está muito estranha essa máquina. Uma outra coisa que eu posso fazer, salvar o dump dela e limar essa bosta e criar uma nova máquina virtual, que no Qubes é muito fácil, tá? Alguma coisa que eu devo ter instalado para dar aula, porque olha a sua aula, só que meu cérebro, ele não é muito confiável. Então PS3 e o 3 é utilizado assim, tá? Então, naturalmente, você tem as informações que acabei de mostrar, o PS3 assim, tá? PS3, se você não passa o processo, aí de ele vai mostrar lá, a partir do processo. Legal? Uma coisa que nós usamos para caramba também, é o free. O free nós usamos para obter informações, naturalmente, tomar cuidado em psicoalus aqui, obter informações de consumo de memória, área de swap, como uma memória, a memória principal, tá? Quanto de memória está em modo Shared, com bibliotecas, quanto estão em cache, quanto está realmente em uso. Então, está para ter uma visão da memória. Então vamos lá. Então você tem o que está em uso ativo, que está em verde, tá? E aqui você tem, naturalmente, a memória, que está em Shared, como assim? Você tem uma área da memória, em que você tem bibliotecas que podem ser utilizadas por múltiplos processos, tá, no livro do Turnable, lá no capítulo de memória. Então, naturalmente, é uma organização das memórias, tá gente? Essa área da memória fica ali armazenando, mas não está bem em uso, por quê? As bibliotecas não são eliminadas da memória, porque eu tenho muita memória livre ainda. Então, por questão de gestão, é mais fácil você mantê-la lá e reapontar depois do que você trazer toda hora do disco para cá. Lembrando que essa ideia de sessamos operacionais foi projetada assim, numa época em que tínhamos discos, tá? Então, por isso que você tem essa ideia aqui compartilhado em buffer, swap, beleza? Legal. Trabalhos em background. Então, você consegue, naturalmente, obter um ambiente de segundo plano de execução. No mundo Linux, e isso é muito comum, porque o kernel é desacoplado da interface gráfica. Então, nós temos lá o núcleo kernel, aonde nós temos os servidores, e nós temos uma camada de usuário, aí pode ser o XFCL, o Guinon, que se conecta desse servidor e mostra. Então, é muito comum em Linux trabalhar com comandos em background, tá? E nós podemos obter essas informações desses jobs com comando BG. Comando BG, ele pode ser utilizado para isso. Bom, naturalmente, nós também podemos obter informações, números de processos, memórias, fazer uma busca desses processos para poder matar esses caras caso preciso. Bom, beleza. Então, eu tenho aqui um processo que eu gostaria de dar um gás para ele. Deixa eu pegar aqui o... Vamos pegar aqui um processo. Na gatope eu vou parar ele aqui agora, tá? Então, o CTRL-X. Vamos pegar um top. Aqui, desculpe. Aqui em quê? CTRL-X. Contra o C, desculpe. Top. Ah, eu estou olhando para uma máquina, fazendo em outra, e está meio complicado aqui. Vamos pegar aqui um processo aqui. Olha só. O top eu não posso pegar, tá? O top eu não posso pegar. Vou pegar um processo de usuária que é interessante. Shift P. Shift P. Eu vou pegar o Xorg, cara. O Xorg. O Xorg, ele já está com uma... uma prioridade muito boa, tá? 19 menos 1. Mas eu consigo executar um cômodo renasse nele para fazer com que ele tenha mais prioridade ainda. Beleza? Então, quer dizer que ele vai processar mais. Então, basicamente, nós temos o nosso priorite de processo de usuário 120. E aí eu posso adicionar 19 e ir para 139, e ter menos, naturalmente, é... É... como assim? Acesso ao processador. E caso eu coloque para menos, eu vou passando ele menos, eu digo mais vezes no processador, e, naturalmente, ele fica menos tempo esperando. O incremento, ele tem... É um número, tá? Então, é renasse. Então, eu tenho um incremento e o pede aqui no final, process ID aqui no final. Então, basta colocar lá renasse, né? E aí eu coloco lá o incremento que eu quero e o ID do processo. Então, você consegue estar maior prioridade para um. Beleza? Processo específico. Um dump, uma backup, uma restauração, isso é importante. É importante trazer para menos. Quando é análise, em segundo plano, leva para mais profundo. Essa é a ideia, tá? Sensores é quando eu consigo ver os sensores daqui, quer ver? Aqui, para control C. Você consegue chegar aqui, sensor. Sensores. Então, eu não tenho aqui, eu não tenho os sensores ativos aqui. Essa máquina, a máquina virtual, mas no seu computador, se você instalar o LM Sensores, tá, que é um pacote, você vai ter acesso aos sensores. Deixa eu ver se, como sudo, eu consigo ter essa informação, não. Fudo. Peraí. Tá aqui, né? Porque eu estou na máquina virtual. Você não é máquina real, você vai obter. É importante você obter dados de sensores, principalmente de temperatura, para saber se sua máquina está indo para um estado de um processamento muito elevado que vai levar alguma coisa ao crash, né? Então, basicamente, ele mostra o número de cores, e aí ele mostra a temperatura de cada núcleo, desse aí, beleza? Então, para esse capítulo é só, próximo capítulo nós vamos falar sobre questões de memória. Até mais, tchau.