좋은 습관을 멈추기 위해 하드 드라이브 활동을 기다리고 있습니까?

좋은 습관을 멈추기 위해 하드 드라이브 활동을 기다리고 있습니까?

Windows 3.1 이후로 나는 항상 프로그램을 열거나 일괄 작업을 시작하기 전에 하드 드라이브 작업이 중지되기를 기다리고 있는 자신을 봅니다. 그 당시에는 이것이 도움이 되었다고 확신합니다. 동시에 2개의 프로그램을 여는 것이 하나를 여는 것보다 훨씬 더 오래 걸렸고, 그 후 완료되면 다른 프로그램을 여는 것을 분명히 볼 수 있었습니다. 나는 또한 다른 프로그램을 열기 전에 프로그램이 완전히 닫힐 때까지 기다리는 경향이 있습니다.

하지만 오늘날에는 캐시 알고리즘과 하드 드라이브 성능, 캐싱이 많이 바뀌었습니다.

따라서 문제는 하드 드라이브 활동이 멈추기를 기다리는 것으로 여전히 잘 지내고 있는가, 아니면 내가 원하는 대로 하고 걱정하지 않아도 되는가 하는 것입니다.

내 최신 레노버 노트북에는 HDD LED가 없기 때문에 이것을 묻는다. 그래서 그것이 작동하는지 아닌지에 대한 단서가 없다.

그런데 현재 시스템은 Windows 7입니다.

답변1

짧은 대답은 다음과 같습니다.하드 드라이브 표시등이 켜져 있습니다. 긴 대답:

하지만 오늘날에는 캐시 알고리즘과 하드 드라이브 성능, 캐싱이 많이 바뀌었습니다.

예, 그렇습니다. 그러나 이것이 HDD LED가 멈출 때까지 기다린 이유는 아닙니다(또는 성능 저하를 더 이상 느끼지 못하는 이유는 아닙니다). 하드 드라이브는 한 가지 일에만 능숙한 크고 기계적인 장치입니다.행위한 번에 하나씩. 한 번에 하나의 섹터에만 읽고 쓸 수 있으므로 하드 드라이브를 동시에 사용하려고 하면 일반적으로 다음과 같은 결과가 발생합니다.대패.

따라서 문제는 하드 드라이브 활동이 멈추기를 기다리는 것으로 여전히 잘 지내고 있는가, 아니면 내가 원하는 대로 하고 걱정하지 않아도 되는가 하는 것입니다.

다시,때에 따라 다르지HDD가 하는 일에 대해 왜? 하드 드라이브에서 기가바이트의 파일을 전송하는 경우 디스크 스래싱이 발생할 가능성이 가장 높습니다. 이로 인해 드라이브 헤드가 앞뒤로 빠르게 움직이게 됩니다.드라이브 수명 단축). 그러나 만일당신은 왜 그런지 몰라요HDD LED가 깜박이면 백그라운드 프로세스일 가능성이 높습니다.

대부분의 백그라운드 프로세스(검색 인덱서, 디스크 조각 모음, .NET 런타임 최적화 프로그램 등...)는~ 아니다두 가지 이유로 스래싱을 ​​유발합니다. 첫 번째는 낮은 우선순위로 실행되므로 운영 체제가 I/O 요청에 더 낮은 우선순위를 지정한다는 것입니다. 두 번째는 CPU 또는 디스크 사용량이 특정 임계값에 도달하면 대부분의 백그라운드 프로세스가 시스템 성능에 영향을 미치거나 스래싱을 ​​유발하는 것을 방지하기 위해 활동을 중지하거나 줄이는 것입니다.

내 최신 레노버 노트북에는 HDD LED가 없기 때문에 이것을 묻는다. 그래서 그것이 작동하는지 아닌지에 대한 단서가 없다.

그렇다면 걱정하지 마세요. Windows 7의 대부분의 백그라운드 서비스는 위에서 설명한 문제를 인식하므로 속도 저하가 발생하지 않습니다. 하지 않는 한하드 디스크를 동시에 사용하려는 경우(즉, 여러 프로그램을 동시에 로드하면서 많은 파일을 전송하는 경우) 스래싱이 발생하지 않아야 합니다.

마지막으로, 특정 프로세스가 하드 드라이브를 사용하는 전송 속도를 알고 싶다면 질문을 참조하세요.현재 사용 중인 하드 드라이브 대역폭의 비율을 어떻게 확인할 수 있습니까?


마지막으로 주목해야 할 점은 솔리드 스테이트 드라이브를 사용하면 디스크 스래싱 게임이 완전히 바뀌었다는 것입니다. 완전히 피할 수는 없지만(예, 심지어~와 함께SSD), 기계식 하드 드라이브에 비해 솔리드 스테이트 드라이브를 사용하면 눈에 덜 띄게 됩니다(참조:솔리드 스테이트 드라이브의 장점과 단점은 무엇입니까?더 자세히 알고 싶다면).

답변2

때에 따라 다르지. 디스크 IO만 수행하는 두 가지 작업을 동시에 실행하는 경우 서로 속도가 느려지므로 한 번에 하나씩 수행하는 것이 좋습니다. 대부분의 작업에는 최소한 어느 정도의 CPU 시간이 필요하며, 이 시간 동안 디스크는 다른 작업을 위해 자유롭게 작업할 수 있습니다. 따라서 하나가 CPU를 사용하는 동안 다른 작업은 IO를 수행하고 다른 하나는 CPU를 사용하고 그 반대.

쓰기 활동과 관련하여 대부분의 경우 쓰기는 캐시에 잠시 머물렀다가 백그라운드에서 디스크로 부드럽게 플러시됩니다. 새 프로그램을 실행하기 전에 모든 백그라운드 쓰기가 완료될 때까지 기다리는 것은 시간 낭비입니다. 새 프로그램이 먼저 로드되는 동안 해당 쓰기가 캐시에 오래 머무르는 것은 아무 문제가 되지 않기 때문입니다. 해당 프로그램은 사용자가 작업을 수행할 때까지 유휴 상태가 되거나 디스크 IO 대신 계산을 시작한 다음 유휴 디스크 시간을 사용하여 쓰기를 완료할 수 있습니다.

평균적으로 대부분의 경우 한 번에 두 가지 작업을 수행하여 순 이득을 볼 수 있으므로 일반적으로 다른 작업을 수행하기 전에 디스크 IO가 중지될 때까지 기다리지 않아도 됩니다.

답변3

읽기/쓰기 요청을 관리하는 것은 사용자가 아닌 하드 드라이브 컨트롤러와 OS의 작업입니다.

예전에는 많은 I/O로 인해 애플리케이션이 중단되었습니다. 그러나 그것은 C 언어와 텍스트 편집기로 거의 모든 것을 작성할 수 있었던 소프트웨어 개발의 영광스러운 시절이었습니다.

이제는 하드웨어 시대입니다. 하드웨어는 소프트웨어 개발을 훨씬 능가하므로 오늘날의 하드웨어는 거의 100% 실행될 수 있으며 한 순간도 놓치지 않습니다. 게다가 개발자들은 교훈을 얻었습니다. 점점 더 많은 프로그램이 UI를 다른 스레드에서 회전시켜 작년 Hourglass/SpinningBeachBall of Death의 무응답 문제를 완화했습니다.

답변4

다른 시스템에서는 중요하지 않습니다. 그러나 한 번에 너무 많은 작업이 진행되면 Windows는 상당히 쉽게 스래싱 상황(또는 교착 상태)에 빠질 수 있습니다. 특히 부팅 직후에는 더욱 그렇습니다.

모든 활동이 중지될 때까지 기다릴 필요는 없지만 일반적으로 시스템이 상당히 정상적으로 응답할 때까지 보류해야 합니다.

관련 정보