Mesmo tendo um computador super rápido, eu ficava frustrado com a impressão de toda a máquina não responder, com mouse e teclado travando, porque certas tarefas iniciavam vários processos intensos ao mesmo tempo e fixavam todas as CPUs quase em 100% de utilização. Por exemplo, eu costumo ter 10 projetos abertos no Cursor no modo WSL no Windows 11. Quando o Cursor atualizava e reiniciava, todos esses processos iniciando ao mesmo tempo destruíam minha máquina. Ou estou trabalhando em vários projetos ao mesmo tempo, e de repente um dos agentes tenta compilar um grande código do Rust, e de repente meu mouse está travando, o que me deixa louco. Finalmente me cansei disso e decidi fazer algo a respeito. Existem alguns pacotes existentes que fizeram muito do que eu queria, especialmente ananicy, mas eu queria algo que gerenciasse toda a configuração automaticamente para resolver os problemas específicos que eu estava enfrentando. Basicamente, o funcionamento é que ele detecta um processo usando CPU demais e depois muda o nível de prioridade (quão "bom" é na linguagem do Unix) para diminuir e restaurar a resposta da sua máquina. Também pode fazer o mesmo com processos que estão destruindo sua E/S com um milhão de handles de arquivo abertos e muito uso de I/O usando "ionice". Eu realmente queria algo que fizesse tudo em termos de instalação, configuração, persistência, etc., com uma instalação de uma linha que "simplesmente funcionasse". Isso está mostrado na primeira captura de tela abaixo. E enquanto fazia isso, decidi criar um monitor de sistema em Golang chamado sysmon, que tem uma interface de terminal muito elegante (veja as segunda e terceira capturas de tela abaixo). Ironicamente, isso se tornou um projeto muito maior por si só, mas estou mantendo como parte desse sistema combinado mesmo assim. É meio que como htop ou btop, mas focado exclusivamente em identificar programas/processos que se comportam mal e que estão prejudicando o desempenho do seu sistema. Ele mostra os piores infratores e também leva em conta o I/O. Existem alguns mini comandos especiais para Cursor e Carga, já que esses foram os que mais me causaram problemas. Enfim, dê uma olhada e me diga o que achou. Tudo é totalmente open-source e licenciado pelo MIT e pode ser encontrado aqui: