메모리가 부족하면 왜 컴퓨터가 느려지나요?

컴퓨터에서 프로그램을 여러 개 열면 저장 공간은 남아 있는데도 갑자기 느려질 때가 있습니다. 메모리가 부족하면 저장장치 일부를 대신 쓴다는 설명을 들었는데요. 운영체제는 어떤 자료를 옮기며 이 과정이 실행 속도에 큰 차이를 만드는 이유는 무엇인가요?

5개의 답변이 있어요!

  • 안녕하세요. 강세훈 전문가입니다.

    컴퓨터의 메모리가 부족하면 운영체제가 저장장치의 일부를 가상 메모리로 대신 사용하는데 이 과정에서 저장장치의 느린 속도 때문에 프로그램 실행이 눈에 띄게 느려진답니다.

    채택 보상으로 156베리 받았어요.

    채택된 답변
  • 안녕하세요. 이수민 전문가입니다.

    CPU는 저장장치의 데이터를 반드시 메모리(RAM)로 올린 뒤에 계산해요. 프로그램을 많이 열어 RAM이 가득 차면 운영체제는 4킬로바이트 단위 메모리 조각 중 최근에 덜 쓴 것을 SSD 안의 페이지 파일로 내려보내고, 그 자리를 지금 필요한 프로그램에 내줘요. 오래 안 본 창이나 브라우저 탭이 주로 내려가요.

    속도가 크게 차이 나요. RAM은 데이터 하나를 꺼내는 데 약 100나노초면 되지만, 빠른 NVMe SSD도 수십에서 100마이크로초쯤 걸려 천 배 가까이 느리고, 하드디스크는 수 밀리초라 수만 배 느려요. 내려보낸 조각이 다시 필요해지면 CPU는 그걸 RAM으로 불러올 때까지 기다려야 해요.

    메모리가 조금 부족할 때는 안 쓰는 것만 내려가서 티가 잘 안 나지만, 동시에 쓰는 데이터가 RAM보다 커지면 하나를 올리려 다른 하나를 내리고 곧바로 다시 불러오는 일이 반복돼요. 이를 스래싱이라 하고, CPU가 대부분의 시간을 기다리며 보내 화면이 멈춘 듯 버벅거려요 :)

  • 안녕하세요. 박재화 전문가입니다.

    메모리가 부족해지면 운영체제는 당장 자주 쓰지 않는 프로그램의 일부 데이터를 RAM에서 SSD나 HDD의 가상 메모리 공간으로 옮기게 됩니다.

    RAM은 저장장치보다 훨씬 빠르기 때문에, 옮겨둔 데이터가 다시 필요해지면 저장장치에서 읽어오는 동안 지연이 생기게 됩니다. 프로그램을 많이 열어 이런 이동이 반복되면 CPU가 계산하는 시간보다 데이터를 옮기고 기다린느 시간이 많아져 컴퓨터가 크게 느려질 수 있습니다.

    특히 HDD는 SSD보다 훨씬 느리기 때문에 메모리가 부족할 때 체감 속도 저하가 더 크게 나타날 수 있습니다. 쉽게 말해서 RAM이라는 빠른 작업대가 부족해지기 때문에 느린 창고를 계속 오가면서 전체 작업 속도가 더 떨어지는 것입니다.

  • 안녕하세요. 김재훈 전문가입니다.

    컴퓨터의 메모리가 부족해지면 운영체제는 현재 당장 쓰이지 않는 유휴 프로세스의 데이터나 메모리 페이지를 저장장치에 할당된 가상 메모리 공간으로 강제로 밀어내는 페이징 작업을 수행합니다. 이 과정에서 운영체제는 활성 상태가 아닌 프로그램의 데이터나 백그라운드 상주 프로세스의 세그먼트를 주로 옮겨 물리적 RAM의 빈 공간을 확보합니다. 하지만 저장장치는 초고속 전자식 소자인 RAM에 비해 데이터 읽고 쓰는 속도가 수십 배에서 수백 배 이상 느리기 때문에, CPU가 필요한 데이터를 저장장치에서 다시 불러올 때 심각한 병목 현상이 발생합니다. 특히 CPU가 찾는 데이터가 RAM에 없어 저장장치를 직접 조회하는 페이지 폴트빈도가 급증할수록 시스템 전체가 대기 상태에 빠지게 됩니다. 결과적으로 압도적인 속도 차이를 가진 저장장치를 임시 메모리로 차용하면서 발생하는 거대한 입출력 지연이 컴퓨터의 전체적인 실행 속도를 극단적으로 떨어뜨리는 주원인이 됩니다. 이처럼 물리적 RAM의 용량 한계와 저장장치 간의 물리적인 대역폭 격차가 시스템 성능 저하를 유발하는 핵심적인 기술적 배경입니다

  • 안녕하세요.

    메모리가 부족하면 운영체제가 당장 사용하지 않는 프로그램의 데이터를 SSD나 저장장치의 일부 공간으로 옮겨 여유 공간을 확보해요. 이 기능을 가상 메모리 또는 페이징이라고 부르죠.

    문제는 RAM이 저장장치보다 데이터 처리 속도가 훨씬 빠르다는 점이에요. 따라서 필요한 데이터를 다시 불러오는 과정이 반복되면 프로그램 실행이 눈에 띄게 느려질 수 있어요.

    특히 메모리가 심하게 부족하면 데이터를 옮기고 다시 가져오는 작업만 반복하게 되어 컴퓨터가 크게 버벅거리기도 해요.

    감사합니다.