미리 읽기 서비스를 비활성화해도 안전합니까?

미리 읽기 서비스를 비활성화해도 안전합니까?

서비스 목록을 탐색 중입니다.섬기는 사람(CentOS 5) - 이 문제는 다른 RedHat, Fedora 등의 버전에도 적용될 수 있습니다.

내 서버는 일반적으로 실행 수준 3에서 실행됩니다(GUI 서버 프로세스가 시작되지 않음).

나는 두 가지 서비스를 우연히 발견했습니다.

  • 미리 읽어보세요
  • 나중에 읽으세요

이 두 서비스의 구성은 다음에서 비롯됩니다./etc/sysconfig/readahead.d

이러한 서비스의 목적은 특정 파일을 캐시에 미리 로드하는 것 같습니다.

(기본 콘텐츠는 그대로 두고) 구성 파일을 탐색해 보면 주로 X11 관련 파일과 몇 가지 라이브러리가 보입니다.

이러한 프로세스의 근본적인 의미는 무엇입니까? 내가 아는 한, 모든 파일은 첫 번째 읽기 액세스 후에 캐시에 들어갑니다. 사전 로드해야 하는 이유 - 불필요한 파일을 모두 사전 로드해야 하는 이유는 무엇입니까?

IMHO 이것은 OS 부팅 중 읽기 대역폭을 낭비하는 쓸모없는 일입니다.

고쳐 쓰다

fstat나는 이러한 미리 읽기가 ( 시스템 호출을 통해) 나열된 파일의 첫 번째 inode 항목만 캐시한다는 것을 발견했습니다 . 따라서 이러한 파일을 찾는 속도가 빨라집니다.

업데이트 날짜: 2012-10-02

질문은 다음과 같습니다. 서버에서 이러한 서비스를 안전하게 비활성화할 수 있습니까? 아니면 여기서 중요한 것을 놓치고 있습니까?

주어진 답변이 아직 목표에 도달하지 않았기 때문에 그에 따라 질문 제목을 업데이트했습니다.

답변1

아이디어는 이러한 파일을 캐시에 로드하는 것입니다.앞으로이는 필수이므로 X가 시작하려고 할 때 기다릴 필요가 없습니다.

분명히 시스템의 일상적인 작업에 실제로 필요하지 않은 파일에 대해 이 작업을 수행하는 것은 별 의미가 없으므로 캐싱은 놀라운 일입니다. 서버에서 실행 중인 일부 프로그램이 실제로 X11 라이브러리를 가져올 가능성이 매우 높습니다. , 어쩌면 카이로를 경유할 수도 있으니 그러지 마세요또한쓸데없다고 서둘러 생각했습니다!

시스템이 시작 시 주기적으로 자신을 추적하여 사전 캐시된 내용(및 시기)을 알아내는 것이 더 나을 수 있습니다. (또한 프로세스가 시작될 때 exe별로 이 작업을 수행합니다. 실제로커널은 새 프로세스 실행 파일에 대한 기록을 참조한 후 가능한 한 빨리 콘텐츠를 캐시로 가져옵니다! )

다시 말하지만, 이는 저장소에서 물건이 들어올 때까지 기다리는 시간을 줄이는 것입니다.

편집하다:

물론 이것은 필수는 아닙니다. 그런 일이 발생하지 않으면 아무것도 중단되지 않습니다(어리석은 버그 제외). 단지 시작 시간만 다를 뿐입니다.

답변2

이에 대한 사고 과정은 최종 사용자가 더 빠른 애플리케이션 시작 시간을 선호하기 때문에 시작 시간이 길어질 가능성이 더 높다는 것입니다.

시작 시간은 수십 초에서 몇 분까지 다양하므로 몇 초 더 길어도 거의 눈에 띄지 않습니다. 어떤 경우든 추가 사전 로드 시간은 시작 시간의 1배 미만입니다. 반면에 Firefox(샘플 앱과 더미 번호의 이름을 지정하기 위한 것임)는 캐싱 없이 15초 안에 시작될 수 있지만 캐싱된 경우에는 1.5초만 시작됩니다. 이 (순전히 가짜) 예에서는 속도가 10배 증가했으며, 이는 사용자가 확실히 알 수 있습니다.

전체적으로 보면 총 시간에는 큰 차이가 없을 수도 있습니다. 그러나 이것은 인간의 심리적 속임수가 아니라진짜대기 시간 단축에 대해. 시간에 대한 인간의 인식은 매우 가변적입니다. 그렇기 때문에 집에 가는 것보다 가게에 가는 것이 더 오래 걸리고, 손이 닿는 냄비는 절대 끓지 않는 것입니다.

관련 정보