RHCA 달리던 중에 "RH442 Performance Tuning Linux in Physical Virtual and Cloud"라는 과목이 있습니다. 보던 중 sysctl을 이용해서 설정할 수 있는 것들은 전체적으로 어떤 것들이 있고 어떤 의미인지 궁금해졌습니다. 그래서 관련 자료를 좀 찾아보았습니다. Kernel 소스코드를 볼만한 능력은 안되서, 문서화된 것을 하나씩 DeepL을 이용해 기계번역한 내용을 바탕으로 정리해보고자 합니다.
출처: https://www.kernel.org/doc/Documentation/sysctl/README
/proc/sys/ 커널 버전 2.2.10에 대한 문서화
(c) 1998, 1999, Rik van Riel riel@nl.linux.org
‘왜’,라고 묻는 소리가 들리네요, ‘누가 그 sysctl 파일들에 대한 문서화를 원할까요? 정말 필요로 하는 사람이 있다면, 모든 것이 소스 코드에 있잖아요…’
이 문서가 작성된 이유는 일부 사람들이 조정을 해야 한다는 것을 모르거나, 소스 코드를 읽을 시간이나 지식이 없기 때문입니다.
또한 sysctl을 개발한 프로그래머들은 이를 실제로 사용하기 위해 개발했으며, 단순히 프로그래밍의 재미로 만든 것이 아닙니다 🙂
==============================================================
법적 고지:
항상 그렇듯이 두 가지 주요 사항을 고려해야 합니다:
- 지불한 만큼 얻습니다
- 무료입니다
이로 인해 이 문서의 정확성을 보장하지 않으며, 잘못된 문서로 인해 시스템을 망쳤다고 불평하며 저에게
찾아온다면, 저는 당신을 위해 안타까워하지 않을 것입니다.
심지어 당신을 웃을 수도 있습니다…
하지만 물론, 이 파일에서 사용된 sysctl 옵션만을 사용해 시스템을 망치셨다면, 그 이야기를 듣고 싶습니다. 단순히 웃기 위해서만이 아니라, 당신이 마지막으로 RTFM을 읽은 사람으로 시스템이 망친 사례가 되지 않도록 확인하기 위해서입니다.
요약하자면, 제안, 수정 사항 및/또는 공포 이야기를 다음과 같은 이메일로 보내주세요: riel@nl.linux.org
Rik van Riel.
==============================================================
소개:
Sysctl은 커널의 특정 부분을 실행 시에 구성하는 방법입니다.
/proc/sys/ 디렉토리는 이를 위해 존재하며, 특별한 도구를 사용하지 않고도 이를 수행할 수 있습니다!
사실, 이 구성 기능을 사용하기 위해 필요한 것은 단 네 가지뿐입니다:
- 실행 중인 Linux 시스템
- root 권한
- 상식 (이것은 요즘에는 특히 구하기 어려운 것입니다)
- 모든 값의 의미를 이해하는 지식
ls /proc/sys를 실행하면 디렉토리가 여러 개의 (아키텍처에 따라 다를 수 있는?) 하위 디렉토리로 구성되어 있음을 확인할 수 있습니다. 각 하위 디렉토리는 주로 커널의 특정 부분을 다루기 때문에, 부분별로 구성하거나 주제별 조정(thematic frobbing)을 할 수 있습니다.
하위 디렉토리는 다음과 같습니다:
abi/ 실행 도메인 및 개인 설정
debug/ <비어 있음>
dev/ 장치별 정보 (예: dev/cdrom/info)
fs/ 특정 파일 시스템. 파일 핸들, inode, dentry 및 할당량 조정
binfmt_misc <Documentation/admin-guide/binfmt-misc.rst>
kernel/ 글로벌 커널 정보/튜닝. 기타 항목
net/ 네트워크 관련 항목, 문서화는 다음에서 확인하세요: <Documentation/networking/>
proc/ <빈 디렉토리>
sunrpc/ SUN Remote Procedure Call (NFS)
vm/ 메모리 관리 튜닝. 버퍼 및 캐시 관리
user/ 사용자별 사용자 이름공간 제한이것은 제 시스템에 있는 하위 디렉토리입니다. 다른 설정에서는 더 많은 또는 다른 하위 디렉토리가 있을 수 있습니다. 다른 디렉토리를 발견하시면 정말 알려주시면 감사하겠습니다 🙂