‘운영체제’ 태그의 글
8편 RSS로 구독
8편
write()가 성공하면 데이터는 디스크에 있을까: 짧은 쓰기, 늦게 오는 오류, fsync
write()의 성공은 디스크 기록을 뜻하지 않습니다. 짧은 쓰기 처리, Linux 4.13 이후 writeback 오류 보고, fsync와 fdatasync의 범위, 새 파일과 rename 뒤 디렉터리 fsync가 필요한 이유를 정리했습니다.
리눅스 Transparent Huge Pages 설정 읽는 법: enabled, 크기별 설정, madvise, khugepaged
THP 설정은 최상위 enabled와 크기별 hugepages-<size>kB/enabled로 나뉩니다. inherit, MADV_HUGEPAGE와 MADV_NOHUGEPAGE, khugepaged의 범위, /proc과 sysfs에서 실제 사용을 확인하는 방법을 커널 문서 기준으로 정리했습니다.
리눅스 메모리 오버커밋: overcommit_memory 0·1·2와 CommitLimit 읽는 법
리눅스가 메모리 할당 요청을 얼마나 엄격하게 따질지 정하는 vm.overcommit_memory의 세 모드, /proc/meminfo의 CommitLimit와 Committed_AS를 읽는 법, 모드 2로 바꾸기 전에 확인할 점을 커널 문서 기준으로 정리합니다.
load average 4.0은 높은 걸까: 리눅스 부하 평균이 세는 것과 1·5·15분의 의미
리눅스 load average는 CPU 사용률이 아니라 실행 중·대기 중(R)과 끊을 수 없는 대기(D) 작업 수의 지수 평균입니다. 커널 소스와 man 페이지로 계산 방식, CPU 수로 읽는 법, PSI와의 차이를 정리했습니다.
time 결과의 real, user, sys는 무엇이 다를까: 경과 시간과 CPU 시간
time 명령의 real, user, sys가 각각 무엇을 세는지 POSIX 정의로 정리하고, user+sys가 real보다 크거나 작을 때 읽는 법, 셸 time과 /usr/bin/time의 차이를 설명합니다.
리눅스 free 명령에서 free가 거의 0일 때: buff/cache와 available 읽는 법
free 명령의 free 칸이 작다고 메모리가 부족한 것은 아닙니다. /proc/meminfo와 커널 소스로 buff/cache, available, used의 뜻을 확인하고, 캐시를 습관적으로 비우면 성능에 해로울 수 있는 이유를 정리했습니다.
chmod 755와 644는 무슨 뜻일까: 권한 숫자와 rwx, 디렉터리의 x
chmod 755의 7과 5는 읽기·쓰기·실행 비트를 더한 8진수입니다. POSIX 규격을 기준으로 숫자와 rwx의 대응, 소유자·그룹·기타 판정, 디렉터리에서 r·w·x의 뜻, umask와 chmod -R의 함정을 정리했습니다.
파일을 지웠는데 디스크 공간이 그대로인 이유: unlink와 열린 파일
rm으로 큰 파일을 지워도 df의 여유 공간이 늘지 않을 때가 있습니다. POSIX가 정한 링크 수와 열린 파일 규칙, du와 df가 다르게 보이는 까닭, Linux에서 원인을 찾고 공간을 되찾는 순서를 정리했습니다.
찾는 글이 없습니다. 다른 낱말로 검색해 보세요.