저는 매우 빠른 컴퓨터를 가지고 있지만, 특정 작업을 할 때 여러 개의 집중적인 프로세스가 한꺼번에 실행되어 모든 CPU 사용률이 거의 100%에 가까워지면서, 컴퓨터 전체가 응답하지 않고 마우스와 키보드가 끊기는 현상이 계속 발생하여 답답함을 느꼈습니다. 예를 들어, Windows 11에서 WSL 모드로 Cursor에 10개의 프로젝트를 열어 두는 경우가 많습니다. Cursor가 업데이트되고 다시 시작될 때 모든 프로세스가 동시에 시작되어 컴퓨터가 다운되곤 했습니다. 아니면 동시에 여러 프로젝트를 진행하다가 갑자기 에이전트 중 한 명이 방대한 Rust 코드베이스를 컴파일하려고 하면, 갑자기 마우스가 끊기고 짜증이 나는 경우가 있습니다. 결국 싫증이 나서 뭔가 하기로 했습니다. 제가 원하는 기능을 대부분 제공하는 기존 패키지, 특히 ananicy가 있었지만, 제가 직면한 특정 문제들을 해결하기 위해 모든 설정을 자동으로 처리해 주는 패키지가 필요했습니다. 기본적으로 이 기능은 CPU를 너무 많이 사용하는 프로세스를 감지한 다음 우선순위 수준(유닉스 용어로 "좋음" 수준)을 변경하여 낮추고 컴퓨터의 응답성을 복원합니다. "ionice"를 사용하면 수많은 파일 핸들이 열려 있고 I/O 사용량이 엄청나서 I/O를 죽이는 프로세스에도 동일한 작업을 수행할 수 있습니다. 저는 설치, 구성, 지속성 등 모든 것을 한 줄로 처리하고 "그냥 작동하는" 기능을 원했습니다. 아래 첫 번째 스크린샷에 그 기능이 나와 있습니다. 이 작업을 하던 중, Golang으로 sysmon이라는 시스템 모니터를 만들기로 했습니다. sysmon은 정말 깔끔한 터미널 인터페이스를 가지고 있죠(아래 두 번째와 세 번째 스크린샷 참조). 아이러니하게도 이 프로젝트는 그 자체로 훨씬 더 큰 프로젝트가 되었지만, 어쨌든 이 통합 시스템의 일부로 유지하고 있습니다. htop이나 btop과 비슷하지만, 시스템 성능을 저하시키는 오작동 프로그램/프로세스를 식별하는 데만 집중합니다. 가장 심각한 문제를 보여주는 동시에 I/O도 고려합니다. 커서와 카고에 대한 몇 가지 특별한 미니 명령이 있는데, 이 명령들이 제게 가장 많은 문제를 일으켰기 때문입니다. 어쨌든, 한번 살펴보시고 어떻게 생각하시는지 알려주세요. 모든 것이 완전히 오픈소스이고 MIT 라이선스를 따르며, 여기에서 확인하실 수 있습니다.
스레드를 불러오는 중
깔끔한 읽기 화면을 위해 X에서 원본 트윗을 가져오고 있어요.
보통 몇 초면 완료되니 잠시만 기다려 주세요.


