본문 바로가기

IT 이야기9

[CPU Usage] vmstat, /proc/sched_debug 로 system load의 원인 파악 지난 번 블로그에서 /proc/loadavg 값에 대한 의미를 살펴보았습니다. Load Average는 Active Task의 평균 값을 의미합니다. 다만 Active Task에는 TASK_UNINTERRUPTIBLE도 포함되기 때문에 Load Average가 높다는 것이 CPU를 사용하려는 Process가 많다는 의미도 될 수 있지만 I/O 작업을 대기하려는 Process가 많다는 의미도 될 수 있다고 얘기했습니다. 그러므로 Load Average 가 높을 때 System에 어떤 상태의 부하, 즉, CPU 리소스 부하인지 혹은 I/O 부하인지, 가 일어나고 있는 지 추가로 파악할 필요가 있습니다. 이를 파악하기 위해 어떤 명령어가 사용되는 지 알아보겠습니다. vmstat adb shell에서 vmsta.. 2021. 12. 8.
[CPU Usage] Load avg System의 Performance를 측정할 때 가장 먼저 확인하는 것은 CPU와 Memory Usage 입니다. 이 중에서 오늘은 CPU load를 측정하는 명령어와 명령어를 통해 출력된 값들을 파악하는 방법에 대해 얘기해보려고 합니다. /proc/loadavg or uptime Android의 경우 Linux Kernel을 사용하기 때문에 Linux의 CPU Usage 명령어를 이용할 수 있습니다. 이 중 CPU Load를 확인할 수 있는 방법은 /proc/loadavg를 읽어보는 것입니다. 그런데 adb shell로 진입해서 "cat /proc/loadavg" 이나 "uptime"을 실행하면 아래와 같이 6개의 숫자가 출력됩니다. 이를 해석할 수 있어야 현재 CPU 상태를 파악할 수 있습니다. up.. 2021. 12. 8.
logcat log 삭제 명령어 Android App이나 System을 디버깅할 때 가장 많이 보는 것은 아마도 logcat 로그 일 것입니다. 그런데 간혹 출력된 log message가 너무 많은 경우가 있는데요. 이때 사용하는 adb 명령어는 아래와 같으며, 해당 명령어를 입력하면 전체 로그를 지우고 종료하게 됩니다. 기본 로그는 main, system, crash 입니다. 그런데 테스트 중에 위에 기술한 adb 명령어를 아무리 입력해도 log message가 삭제되지 않는 경우가 있습니다. 이럴 때는 아래와 같이 "-b all" 옵션을 추가하면 삭제가 되더군요. 참고하시기 바랍니다. ※ 참고사이트 stackoverflow.com/questions/2657348/how-can-i-erase-the-old-data-from-logca.. 2021. 1. 21.
Android EventLog 출력정보의 의미 최근 Android EventLog를 보는 일이 많은 데 출력되는 정보의 정확한 의미를 몰라 정리하는 차원에서 이 글을 작성합니다. 이 글은 ProgramSought 사이트의 "Android EventLog Meaning"글을 기본으로 하여 최근의 Android 내용을 업데이트 했습니다. 참고하세요. 1. 개요 Android 를 디버깅하고 분석하는 과정에서 현재 Activity 의 상태변화를 간단하고 정확히 보여주는 EventLog를 보는 것이 일반적입니다. 물론 window에 대한 정보는 없습니다. 이 글은 아래의 am 관련 tag들의 의미를 열거하고 있습니다. 이 글에 포함된 source class들은 EventLog.java, EventLogTags.java 파일에 있으며, tag 포맷은 /syst.. 2021. 1. 19.