시스템 패널
시스템 패널은 Linux CPU 카운터, 시스템 부하 평균, 메모리 사용량, SiMa MLA 할당자 보고서, EV74 연속 메모리 풀, 주기적인 프로세스 스냅샷을 통합합니다.
CPU 필드
| 필드 | 출처 및 계산 |
|---|---|
| CPU 사용량 | 시스템 샘플 간의 집계된 /proc/stat CPU 시간의 변화량입니다. 사용률은 1 - idle_delta / total_delta이며, 유휴 상태에는 유휴 및 I/O 대기 필드가 포함됩니다. |
| CPU 코어 N 사용량 | /proc/stat에서 각 cpuN 행에 대해 동일한 델타 값을 계산합니다. |
| CPU 사용률 (최근 1분) | /proc/loadavg의 첫 번째 값입니다. 이는 Linux에서 실행 가능한 작업과 중단할 수 없는 상태로 대기 중인 작업의 수를 지수적으로 평균화한 값입니다. |
| CPU 사용률 (최근 1분) | load1 / logical_core_count × 100. 이는 표시를 위한 정규화 과정이며, 100%를 초과할 수 있습니다. |
CPU 사용량은 최신 샘플링 기간 동안의 즉각적인 작업 시간입니다. 작업은 대기열에 있거나 대략 1분 동안 처리될 때까지 기다립니다. 낮은 CPU 사용량에도 높은 작업량이 나타나는 경우, 이는 계산 과부하보다는 I/O 대기 또는 차단된 작업 때문일 수 있습니다.
첫 번째 CPU 샘플은 이전 카운터 기준값이 없으므로 사용할 수 없습니다.
코어별 및 프로세스별 패널
코어별 막대는 최신 cpuN 사용률을 보여줍니다. 위/아래 버튼을 사용하여 코어를 선택합니다.
프로세스 테이블 필드는 다음 과 같습니다.
| 필드 | 의미 |
|---|---|
| 프로세스 ID | Linux 프로세스 식별자. |
| CPU | /proc/<pid>/stat에 기록된 마지막 프로세서 번호입니다. 이는 프로세스가 마지막으로 관찰된 위치이며, 특정 프로세서에 대한 우선순위 보장이 아닙니다. |
| CPU 사용률 | 사용자 및 시스템 CPU 사용량 변화율을 경과 시간으로 나누어 계산합니다. 대략 100%는 완전히 사용 중인 하나의 논리적 CPU를 나타냅니다. 멀티스레드 프로세스는 100%를 초과할 수 있습니다. |
| RSS MB | /proc/<pid>/stat에서 가져온 상주 페이지 수를 시스템 페이지 크기로 곱한 후 MiB 단위로 변환합니다. |
| 이름 | /proc/<pid>/stat에서 프로세스 명령 이름을 가져옵니다. |
데이터는 5초마다 새로 고쳐집니다. Sentinel은 전 세계적으로 CPU 사용량과 RSS를 기준으로 정렬된 상위 64개의 프로세스만 유지합니다. 선택한 코어에 유지되는 프로세스가 없으면 UI는 전역 유지 목록을 표시하도록 변경됩니다. 결과적으로 이 패널은 포괄적인 프로세스 보고서보다는 진단 도구의 역할을 합니다.
Linux 메모리
used_bytes = MemTotal - MemAvailable
used_pct = used_bytes / MemTotal × 100
MemAvailable은 /proc/meminfo에서 가져온 값으로, 스와핑 없이 새 작업에 사용할 수 있는 메모리를 추정합니다. 즉, Linux가 회수할 수 있는 캐시가 자동으로 사용 불가능한 메모리로 처리되지 않습니다.
MB 단위로 표시되는 값은 1024 × 1024바이트를 기준으로 계산되므로, UI 레이블은 MB로 표시되지만 실제로는 MiB 단위입니다.
MLA 메모리
Sentinel은 /dev/simaai-mem을 읽고, Total allocated size:를 찾은 다음, 다음 16진수 바이트 수를 파싱하여 MiB 단위로 변환합니다.
이는 현재 할당된 MLA 할당 메모리입니다. 다음은 해당하지 않습니다.
- MLA에서 컴퓨팅 자원 활용률을 계산합니다.
- 모델의 FPS(초당 프레임 수) 또는 지연 시간
- 총 물리적 DRAM 사용량
MLA 0.68V전력을 측정하는 값입니다.
장치를 읽을 수 없거나 텍스트 형식을 인식할 수 없는 경우, 값은 0이 아닌 ‘사용 불가능’으로 표시됩니다.
EV74 CMA 메모리
Sentinel은 각 정상 데몬 샘플에서 /proc/meminfo를 읽어 CmaTotal 및 CmaFree 값을 가져와서 보고합니다.
EV74 CMA used = CmaTotal - CmaFree
CmaTotal은 부팅 시 예약된 연속적인 메모리 영역입니다. CmaFree는 현재 할당되지 않은 해당 예약 영역의 부분입니다. 시스템 탭에는 사용된 값이 표시되고, 체크포인트 기록에는 총값, 사용 가능한 값, 사용된 값이 모두 저장됩니다. 비교 실행 탭에서는 선택한 실행에 대해 EV74 CMA memory를 겹쳐서 표시할 수 있습니다.
이는 EV74가 예약된 CMA 풀을 사용하는 경우의 EV74 소비 프록시입니다. Linux CMA는 공유 커널 기능이므로 다른 드라이버의 할당도 CmaFree를 줄일 수 있습니다. Sentinel은 /proc/meminfo만으로는 해당 페이지를 개별 프로세스에 할당할 수 없습니다. 두 필드 중 하나라도 없으면 파생된 사용 값은 0으로 표시되는 대신 사용할 수 없음으로 보고됩니다. 존재하는 모든 필드는 자체적으로 사용할 수 있는 상태로 유지됩니다.
부팅 시 예약된 영역은 다음과 같이 별도로 확인할 수 있습니다.
dmesg | grep -i cma