디스크 작업이 느리다는 것은 항상 알려져 있으며 그 이유는 무엇인지 잘 알고 있습니다. 여기서 질문은 왜 우리가 I / O를 기다려야하는지 또는 왜 IOWait 등과 같은 것이 있습니까?
필자는 백그라운드에서 일부 I / O 작업을 수행 할 때 컴퓨터가 기본적으로 속도가 훨씬 느리다는 것을 알았습니다. 특히 Linux를 사용할 때 더 긴 I / O 작업을 수행하는 경우 OS가 완료 될 때까지 거의 사용할 수 없게됩니다.
실제로 기사 에서이 주제를 찾았습니다. 스 니펫이 있습니다.
I / O 대기는 12.1 %입니다. 이 서버에는 8 개의 코어가 있습니다 (cat / proc / cpuinfo를 통해). 이것은 (1/8 코어 = 0.125)에 매우 가깝습니다.
기본적으로 컴퓨터가 많이 느려지는 것을 의미합니다. 왜 그렇습니까? 나는 정상적인 컴퓨터가 적어도 2 코어, 때로는 4 또는 때로는 하이퍼 스레딩 또는 그와 같은 것으로 인해 더 많은 코어를 가지고 있음을 의미합니다. 그러나 이제 문제는 CPU가 실제로 거기에 머물러 있어야하는 이유는 실제로 IO를 기다리는 것 외에는 아무것도하지 않습니까? 프로세스 관리의 기본 아이디어 또는 아키텍처를 의미합니다. 이제 OS를 책임지는 사람인지 또는 하드웨어 부분으로 내려 오는지 알지 못하지만 CPU가 대기하거나 대기하는 것이 가능해야합니다. 실제로 다른 많은 작업을 수행하고 준비가되면 IO 프로세스로 돌아가는 동안 정기적으로 확인하십시오. 실제로, 이것이 어려운 작업이고 CPU가 기다려야한다면 왜 그렇지 않습니까? 그러면 하드웨어가 더 효율적으로 관리 했습니까? 예를 들어 프로세스를 다시 시작하자마자 기다리는 작은 CPU의 종류가있을 수 있습니다. 그러면 프로세스가 반복되어 프로세스가 반복되어 우리는 가지고 있지 않을 것입니다. 실제로 데이터 복사 프로세스를 위해 전체 CPU 코어를 전담하는 것입니다. :에스
이제는 관찰자 관점에서 지금 그것을 적용하고 있으며 주제에 대해 깊이 다루지 않았지만 CPU가 HDD 속도로 작동 해야하는 이유를 이해하지 못합니다. 다른 작업을 수행하고 준비가되면 HDD로 돌아옵니다. 이 아이디어는 IO 작업이나 복사 프로세스 등을 필요로하는 응용 프로그램의 속도를 높이는 것이 아니라 해당 작업을 수행하는 동안 CPU 소비에 최소한의 영향 만 미치므로 OS가 다른 프로세스와 사용자를 위해이를 사용할 수 있도록하는 것입니다. 일부 복사 작업을 수행 할 때 일반적인 컴퓨터 지연을 느낄 필요가 없습니다 ...