시나리오 : 갑자기 컴퓨터가 느리게 느껴집니다. 마우스는 움직이지만 창을 여는 데 시간이 오래 걸리는 등의 uptime
경우 부하는 7.69이고 높이는 것으로 나타납니다.
어떤 프로세스가로드의 원인인지 알아내는 가장 빠른 방법은 무엇입니까?
이제 "상위"도구와 비슷한 도구는 CPU 나 메모리 사용량을 보여 주지만 동시에 두 가지를 모두 나타내지 않기 때문에 답이 아닙니다. 필요한 것은 입력 할 수있는 단일 명령입니다.
프로세스 X 때문에 시스템이 8GB의 RAM을 디스크로 교체하려고합니다.
또는
프로세스 X는 디스크 전체를 탐색합니다
또는
프로세스 X는 400 % CPU를 사용합니다 "
그래서 내가 찾고있는 것은 iostat, htop / atop 및 비슷한 도구가 다음과 같은 출력으로 실행됩니다.
1235 cp - Disk trashing
87 chrome - Uses 2 GB of RAM
137 nfs_bench - Uses 95% of the network bandwidth
분석 할 수있는 숫자를 제공하는 도구가 아니라 현재로드를 발생시키는 프로세스를 정확하게 알려주는 도구를 원하지 않습니다. 키보드 앞에있는 사용자는 "프로세스"를 작성하는 방법을 거의 알지 못한다고 가정하지만 "상주 크기", "가상 메모리"또는 "프로세스 수명주기"에 관해서는 사용자가 빠르게 압도됩니다.
내 주장은 다음과 같습니다. 사용자가 문제를 발견했습니다. 수천 가지 이유가있을 수 있습니다 ... 음, 거의 :-) 사용자가 문제의 원인을 알고 싶어합니다.
현재 솔루션은 많은 숫자를 제공 하므로이 숫자의 의미를 알아야합니다. 내가 찾고있는 것은 메타 도구입니다. 데이터의 99 %는 문제와 관련이 없습니다. 따라서 툴이 수행해야 할 작업은 "이 프로세스에는 많은 CPU가 필요하고 많은 IRQ가 생성되며이 프로세스는 많은 RAM을 할당하며 여전히 커지고 있습니다"라는 리소스 만 사용하는 프로세스를 찾는 것입니다.
이것은 상대적으로 짧은 목록입니다. 이 목록을 처음 접하는 사람이 출력에서보다이 목록에서 범인을 찾는 것이 훨씬 더 간단 htop
합니다. 예를 들어 약 5000 개의 숫자를 제공하지만 멀티 스레드 프로세스를 직접 접어야합니다 (50 줄이 VIRT 2750M
있지만 단지 16GB의 RAM-머신이 자체적으로 교체되어야하지만 물론 이것은 빠르게 발생할 수있는 데이터를 잘못 해석 한 것입니다).
top
수단을)