상단에 높은 로드가 표시되고 이를 유발하는 프로세스가 프로세서 시간을 수행하는지 아니면 네트워크 I/O(로컬 I/O와 반대)를 수행하는지 알 수 없는 경우 이를 어떻게 찾을 수 있습니까?
우리 서버에서는 로드 값이 높지만 유휴 상태는 60%-70%이고 사용자는 약 25%입니다. 이 값을 어떻게 해석해야 할지 궁금합니다. 하지만 인터넷에서는 iostat를 사용하여 프로세스가 디스크를 손상시키고 있는지 확인할 수 있다는 내용을 거의 항상 읽었습니다. 그러나 나는 이것이 사실이 아니라고 판단했습니다. 프로세스도 작업을 완료하는 데 문제가 없었지만 로드는 여전히 높았습니다.
그렇다면 어떤 부분이 네트워크 대기로 인해 발생하고, 어떤 부분이 실제 프로세서 시간으로 인해 발생하는지 자세히 알 수 있는 방법이 있을까요? 상단의 "idle"은 무엇을 의미하나요?
명확성을 위해: 로드별로 코어당 대기 중인 평균 프로세스를 나타내는 3개의 숫자를 나타냅니다. 이 머신에는 최대 25개 중 8개의 코어가 있으므로 코어당 부하는 2.5입니다.
답변1
상단에 높은 로드가 표시되고 이를 유발하는 프로세스가 프로세서 시간을 수행하는지 아니면 네트워크 I/O(로컬 I/O와 반대)를 수행하는지 알 수 없는 경우 이를 어떻게 찾을 수 있습니까?
네트워크 I/O는 NFS 트랜잭션의 일부가 아닌 한 Linux iowait 측정항목에서 고려되지 않으며, 이 경우 디스크 I/O로 처리됩니다.
그렇다면 어떤 부분이 네트워크 대기로 인해 발생하고, 어떤 부분이 실제 프로세서 시간으로 인해 발생하는지 자세히 알 수 있는 방법이 있을까요?
네트워크 대기는 가정된 NFS 대기를 제외하고 로드 평균에 영향을 주지 않습니다.
상단의 "idle"은 무엇을 의미하나요?
이는 CPU가 나열된 다른 상태(사용자, 시스템, 좋음, iowait, 하드웨어 인터럽트, 소프트웨어 인터럽트, 도난) 중 하나에 있지 않은 시간의 비율을 의미합니다. 여기에는 네트워크 대기가 포함됩니다. 유휴 상태일 때 CPU는 기본적으로 아무런 작업도 수행하지 않습니다. iowait는 CPU도 아무 작업도 수행하지 않으므로 유휴 시간이기도 합니다.