기록은 직접 열어 볼 수 있는 파일입니다.
Vitals는 Mac과 각 앱의 사용 기록을 Mac에 있는 파일 하나에 보관합니다. 평범한 SQLite 데이터베이스이므로 Mac이 뜨거워진 때, 에너지를 가장 많이 쓴 앱, 이번 달과 지난달의 차이처럼 궁금한 것을 직접 물어볼 수 있습니다.
파일 위치
~/Library/Application Support/Vitals/history.sqlite
macOS에 포함된 sqlite3 명령이나 SQLite를 읽는 앱으로 열 수 있습니다. 읽기만 하고 쓰기는 Vitals에 맡기십시오. 파일의 내용은 Mac 밖으로 나가지 않습니다.
수치 표기 방식
- 시간은 1970년부터 센 초 단위이며 UTC입니다.
datetime(start, 'unixepoch', 'localtime')을(를) 쓰면 현지 시간으로 바뀝니다. - 모든 열은 이름에 단위가 들어 있습니다: bytes, seconds, percent, celsius, watts.
- 백분율은 0에서 100까지입니다. Mac의 CPU는 모든 코어 기준입니다.
- 팬이 없는 Mac의 팬 속도처럼 Mac이 제공하지 않는 값은 비워 둡니다.
테이블
readingsMac에 얼마나 부하가 걸렸는지를 5분마다 한 행으로 기록합니다. CPU, 메모리, 메모리 압력, GPU, Neural Engine, 온도, 팬 속도, 전력의 평균과 최고치입니다.system_hoursMac 전체가 사용한 양을 1시간마다 한 행으로 기록합니다. CPU, 메모리, 네트워크, 디스크, 에너지입니다.system_five_minutes같은 내용을 5분마다 한 행으로, 최근 이틀 치.system_minutes같은 내용을 1분마다 한 행으로, 최근 3시간 치.app_days각 앱이 사용한 양을 앱마다 하루에 한 행으로 기록합니다.app_hours같은 내용을 1시간 단위로, 최근 이틀 치.
readingsstart, seconds, cpu_percent_average, cpu_percent_peak, memory_used_bytes_average, memory_used_bytes_peak, memory_pressure_percent_average, memory_pressure_percent_peak, memory_pressure_level_peak, swap_used_bytes_peak, gpu_percent_average, gpu_percent_peak, neural_engine_percent_average, neural_engine_percent_peak, cpu_celsius_average, cpu_celsius_peak, hottest_celsius_average, hottest_celsius_peak, fan_rpm_average, fan_rpm_peak, power_watts_average, power_watts_peak, thermal_state_peak, battery_percent, plugged_in_seconds
system_hours, system_five_minutes, system_minutesstart, seconds, cpu_load_seconds, memory_byte_seconds, network_bytes_in, network_bytes_out, disk_bytes_read, disk_bytes_written, energy_joules
app_days, app_hoursstart, app_id, name, kind, bundle_path, seconds, cpu_seconds, energy_joules, memory_byte_seconds, peak_memory_bytes, network_bytes_in, network_bytes_out, disk_bytes_read, disk_bytes_written
바로 써 볼 수 있는 쿼리
지난 한 주 동안 가장 뜨거웠던 5분 구간 10개
SELECT datetime(start, 'unixepoch', 'localtime') AS time,
round(cpu_celsius_peak) AS celsius,
round(cpu_percent_peak) AS cpu
FROM readings
WHERE start > strftime('%s', 'now', '-7 days')
ORDER BY cpu_celsius_peak DESC
LIMIT 10; 메모리가 압박을 받은 때
SELECT datetime(start, 'unixepoch', 'localtime') AS time,
memory_pressure_level_peak AS pressure,
round(memory_used_bytes_peak / 1073741824.0, 1) AS gb
FROM readings
WHERE memory_pressure_level_peak != 'normal'
ORDER BY start DESC
LIMIT 20; 지난 30일 동안 에너지를 가장 많이 쓴 앱
SELECT name, round(sum(energy_joules) / 3600, 1) AS watt_hours
FROM app_days
WHERE start > strftime('%s', 'now', '-30 days')
GROUP BY name
ORDER BY watt_hours DESC
LIMIT 10; 보관 기간
30일 동안 보관합니다. 설정 → 일반 → ‘기록 보관 기간’에서 90일, 6개월, 1년으로 늘릴 수 있습니다. 같은 페이지의 ‘기록 삭제’를 누르면 파일이 비워집니다.
SQL 없이
개요의 내보내기 → CSV 내보내기를 누르면 같은 수치가 스프레드시트용 CSV 파일로 저장됩니다. Vitals를 AI 어시스턴트에 연결해 두면 Mac이 한계에 이른 때를 평소 쓰는 말로 물어볼 수 있습니다.