Linux Kernel
Linux 커널은 프로세스 실행, 메모리, 파일, 장치와 네트워크 자원에 대한 접근을 관리한다. 셸·패키지 관리자·서비스 설정까지 포함한 Linux 배포판 전체와는 다르다. 같은 배포판에서도 서로 다른 커널을 실행할 수 있다.
증상에서 담당 영역으로 좁히기
| 관찰한 문제 | 살펴볼 영역 |
|---|---|
| CPU 사용률이 높거나 실행 대기가 길다 | 스케줄링 |
| 메모리가 부족하거나 프로세스가 종료된다 | 메모리 관리 |
| 자식 프로세스가 좀비로 남는다 | 프로세스 생성과 종료 |
| 파일을 열 수 없거나 저장이 느리다 | 파일 시스템 |
| 장치 파일에 접근하지 못한다 | 디바이스 접근 |
| 포트는 열었는데 접속하지 못한다 | 네트워크 |
| 프로그램이 커널에 무엇을 요청하는지 알고 싶다 | 시스템 호출 |
이 표는 원인을 확정하는 규칙이 아니라 조사할 출발점이다. 예를 들어 파일 저장 지연은 디스크 문제뿐 아니라 네트워크 파일 시스템이나 메모리 압박과 연결될 수 있다.
환경부터 기록하기
Linux에서 다음을 확인한다.
uname -r
uname -m
cat /etc/os-release
각각 커널 릴리스, 아키텍처, 배포판 정보다. 컨테이너에서는 사용자 공간의 배포판 정보와 호스트가 제공하는 커널 정보가 서로 다를 수 있다.
커널의 많은 기능은 설정과 배포판 패치에 영향을 받는다. 최신 문서에 기능이 있다고 현재 시스템에서도 활성화됐다고 가정하지 않는다. 문제를 재현할 때는 명령, 오류, 위 환경 정보와 관련 설정을 함께 기록한다.
자료: Linux 커널 관리자 가이드