본문으로 건너뛰기

© 2026 Molayo

Phoronix헤드라인2026. 06. 15. 23:57

/proc/filesystems 읽기 작업이 놀라울 정도로 빈번하게 수행되며, 이제 최대 444% 더 빨라졌습니다

요약

Linux 7.2 커널에서 /proc/filesystems 읽기 성능이 최대 444% 향상되었습니다. SELinux 라이브러리 등에 의해 빈번하게 호출되는 이 작업을 최적화하기 위해 파일 시스템 목록을 미리 생성하고 RCU화하여 성능과 확장성을 개선했습니다.

핵심 포인트

  • /proc/filesystems 읽기 작업의 성능이 최대 444% 향상됨
  • 문자열 미리 생성(pre-generating) 및 캐싱 기술 적용
  • 파일 시스템 목록을 RCU화하여 효율적인 데이터 접근 구현
  • libselinux의 빈번한 호출로 인한 오버헤드 및 확장성 문제 해결

/proc/filesystems 읽기 작업이 놀라울 정도로 빈번하게 수행되며, 이제 최대 444% 더 빨라졌습니다

LINUX STORAGE

실행 중인 커널이 지원하는 파일 시스템 목록을 얻기 위해 /proc/filesystems를 사용하는 작업은 Linux에서 빈번하게 이루어집니다. 구체적으로는 SELinux 라이브러리 (libselinux)에 의해 읽히기 때문인데, /proc/filesystems를 읽는 작업은 일반적으로 예상하는 것보다 더 자주 수행되며, 이제 Linux 7.2 커널은 이를 최적화하여 훨씬 더 나은 성능을 제공하도록 합니다.

지금까지 제가 본 Linux 7.2 커널을 위한 최적화 중 가장 놀라운 것은, 접근 빈도가 높은 /proc/filesystems를 통해 더 효율적인 성능을 전달하도록 하는 것입니다. 이제 /proc/filesystems 문자열을 미리 생성(pre-generating)하고 파일 시스템 목록을 RCU화(RCU'ified)함으로써, 성능이 현재 Linux 커널 릴리스보다 최대 444% 더 빨라질 수 있습니다.

Christian Brauner는 Linux 7.2를 위한 /proc/filesystems 처리 방식을 개편하는 풀 리퀘스트(pull request)에서 다음과 같이 설명했습니다:

"이 파일은 정리가 절실히 필요한 수동으로 구현된 연결 리스트(hand-rolled linked list)로 인해 엉망이었습니다. 이제 파일 시스템 목록은 RCU화되었고, /proc 파일들은 fs/proc/ 외부에서 영구적인 것으로 표시될 수 있으며, /proc/filesystems를 읽을 때 출력되는 문자열은 매번 읽을 때마다 포인터를 추적(pointer-chasing)하고 항목별로 printf를 호출하는 대신 미리 생성되어 캐싱됩니다. 이 파일은 libselinux가 읽고, libselinux가 수많은 자주 사용되는 프로그램(sed처럼 예상치 못한 프로그램까지!)에 링크되어 있기 때문에 빈번하게 읽힙니다. 또한 열기/닫기(open/close) 시 참조 유지(reference maintenance)를 우회하므로 확장성(Scalability)도 향상됩니다."

그리고 실제로 /proc/filesystems가 얼마나 빈번하게 읽히는지를 고려할 때, 이는 극적인 개선을 가져다줍니다:

Linus Torvalds는 오늘 Linux 7.2를 위해 이 훌륭한 개선 사항을 병합(merged)했습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0