Spinlock을 모니터링하는 방법을 알고 싶습니다. 내 클라이언트에서는 CPU 소프트 잠금 오류가 발생하고 있으며 잘 이해한다면 스핀 잠금이 원인일 수 있습니다.
여러 팀에서 R, Python 및 SAS를 사용하는 예측 모델링을 위해 서버를 사용합니다. 즉, 다중 처리 라이브러리를 사용하여 여러 비지도 프로세스가 병렬로 실행되는 경우가 많습니다.
스핀록 수를 모니터링하거나 더 나아가 어떤 프로세스가 이를 사용하는지 모니터링하면 이를 확인하거나 빈번한 실패(지난 3주 동안 5번 실패)의 원인으로 무시하는 데 도움이 될 수 있습니다.
모니터링할 수 있는 방법이 있나요? 그렇지 않다면 이러한 소프트 잠금의 원인을 어떻게 알 수 있습니까?
답변1
스핀록이 사용자 공간에 있는 경우 이를 모니터링하지 못할 수도 있습니다. 일부 소프트웨어는 스핀록 시간을 추적하고 이를 추출하는 방법을 제공합니다. 실행 가능한 프로세스 개수를 이용하여 에이전트를 통해 모니터링할 수 있습니다. 실행 가능한 상태의 프로세스가 많으면 이 값이 증가해야 합니다.
잘 동작하는 프로그램은 짧은 시간 후에 스핀 잠금을 포기합니다. 스핀 잠금이 실패하면 잠금을 점유하고 기다립니다. 프로그램 성능이 좋지 않은 경우 스핀 잠금을 자주 수행하면 CPU 사용률이 높아질 수 있습니다.
이 경우 시간 경과에 따른 시스템 상태를 기록하는 것이 유용할 수 있습니다. sar
주기적 데이터 로깅은 백그라운드에서 실행될 수 있습니다. 이는 실패로 이어지는 추세를 조사할 수 있으므로 귀하와 같은 상황에서 유용합니다. 그래픽 출력을 제공하는 도구가 있지만 원시 데이터를 보는 것이 더 유용하다고 생각합니다.
rrd
지속적인 사용량을 (순환 데이터베이스) 파일 에 직접 기록하고 결과를 그래프로 표시하는 도구도 있습니다 . 이는 추세 분석에 유용합니다.
배치 또는 배치와 유사한 프로그램인 경우 가장 많은 CPU를 사용하는 동적으로 좋은 프로그램을 사용하는 것이 좋습니다. 리소스 사용량을 모니터링하고 리소스 소비가 다른 사용자의 성능에 영향을 미치지 않도록 우선순위를 조정하는 데 사용할 수 있는 다양한 프로그램이 있습니다.