>  기사  >  시스템 튜토리얼  >  Linux에서 SWAP, 캐시, 버퍼를 합리적으로 사용하는 방법은 무엇입니까?

Linux에서 SWAP, 캐시, 버퍼를 합리적으로 사용하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-13 15:30:171107검색

리눅스 시스템에서는 SWAP, Cache, Buffer라는 세 가지 개념이 우리 앞에 자주 등장하는데, 각각은 무엇을 의미하나요? 간단히 말하면 SWAP은 가상 메모리 스왑 영역을 의미하고, Cache는 버퍼 영역을 의미하며, Buffer는 입출력 버퍼 영역을 의미합니다. Linux 시스템에서의 사용은 시스템 성능에 중요한 역할을 합니다. 그러나 서로 다른 애플리케이션 시나리오와 서로 다른 애플리케이션은 이 세 가지 캐시 영역을 어떻게 더 합리적으로 점유하고 사용할 수 있습니까? 다음으로 이번 글에서는 이에 대해 자세히 소개하겠습니다. Linux에서 SWAP, 캐시, 버퍼를 합리적으로 사용하는 방법은 무엇입니까?

**1. 무료 명령을 통해 Linux 메모리 보기

**

Linux에서 SWAP, 캐시, 버퍼를 합리적으로 사용하는 방법은 무엇입니까?

total: 전체 메모리 크기.

used: 사용된 메모리 크기(여기에는 캐시된 메모리, 버퍼 및 공유 부분이 포함됩니다).

free: 무료 메모리 크기입니다.

shared: 프로세스 간 공유 메모리입니다(일반적으로 사용되지 않으며 무시할 수 있음).

버퍼: 메모리에 기록된 내용은 캐시에 저장되므로 요청에 신속하게 응답할 수 있으며 후속 데이터는 정기적으로 디스크에 플러시됩니다.

cached: 읽은 후 메모리에 캐시된 콘텐츠의 크기(다음 쿼리 시 빠른 반환을 위한 부분입니다).

-/+ 버퍼/캐시는 두 부분으로 간주될 수 있습니다.

-buffers/cache: 사용되는 메모리의 크기(사용되는 부분이 아니라는 점에 유의하세요. 버퍼와 캐시가 사용되지 않기 때문에 조직과 사람들은 이를 해제할 수 있는지 확인해야 합니다), 해당 값 = 사용됨- 버퍼 캐시.

+버퍼/캐시: 사용 가능한 메모리 크기(마찬가지로 free로 표시되는 부분이 아님), 해당 값 = free+buffers+cached.

스왑: 하드 디스크의 스왑 파티션에 사용된 크기입니다.

위에서 언급한 +버퍼/캐시로 표시되는 사용 가능한 메모리를 모두 사용한 후 새로운 읽기 및 쓰기 요청이 들어온 후 메모리에 있는 데이터의 일부가 디스크에 기록되어 처리되도록 하는 것이 설계의 목적입니다. 디스크 공간의 일부를 가상 메모리로 사용합니다.

2. 버퍼 및 캐시 소개

Linux에서 SWAP, 캐시, 버퍼를 합리적으로 사용하는 방법은 무엇입니까?

Cache(캐시)는 CPU와 메모리 사이의 데이터 교환을 증가시키기 위해 설계되었으며, Buffer(버퍼)는 메모리와 하드 디스크(또는 기타 I/O 장치) 사이의 데이터 교환을 증가시키기 위해 설계되었습니다.

Cache는 주로 읽기 작업을 위해 설계되었지만 Cache의 개념은 쉽게 혼동될 수 있습니다. CPU 자체에 1차 캐시, 2차 캐시, 3차 캐시가 포함되어 있다는 것을 알고 있습니다. CPU의 동작은 메모리에 연결되어 있고 CPU의 처리 능력은 메모리 속도보다 훨씬 높기 때문에 CPU 자원이 유휴 상태가 되는 것을 방지하기 위해 Intel 및 기타 회사에서는 CPU 내부에 일부 캐시를 통합했지만 이후에는 모두, 너무 많은 회로를 넣을 수 없기 때문에 캐시의 이 부분은 그다지 크지 않습니다. 주로 일반적으로 사용되는 명령과 일반적으로 사용되는 데이터를 저장하는 데 사용됩니다. 실제로 대부분의 캐시 데이터는 캐시를 위한 메모리 공간을 차지해야 합니다. 요청된 데이터, 즉 위의 Cached 부분(이 부분은 순전히 개인적인 이해이며, 정확한지 여부는 아직 알 수 없음) 연구입니다.

버퍼는 주로 쓰기 작업을 위해 설계되었으며, 특히 메모리와 하드 디스크 간의 쓰기 작업을 위해 설계되었습니다. 그 목적은 쓰기 작업을 집중시키고, 디스크 조각화와 반복적인 하드 디스크 주소 지정 프로세스를 줄이고, 성능을 향상시키는 것입니다.

Linux 시스템 내부에는 정기적으로 버퍼의 내용을 지우고 하드 디스크에 쓰는 데몬 프로세스가 있습니다. sync 명령이 수동으로 실행될 때도 위 작업이 트리거됩니다.

3. 일반적인 증상

증상 1: Linux에서 파일에 자주 액세스하고, 물리적 메모리가 빠르게 소모되며, 캐시가 계속 증가합니다.

설명: Linux는 요청한 각 데이터를 캐시에 캐시합니다. 장점은 CPU의 처리 속도가 메모리의 처리 속도보다 훨씬 빠르기 때문에 CPU와 메모리가 통신할 때 적중 결과를 캐시에서 빠르게 반환할 수 있다는 것입니다. .

증상 2: 스왑이 사용 중입니다.

설명: 메모리가 부족할 경우 Swap이 점유될 수 있으므로 주의를 끌기 위한 서버 모니터링 지표로 Swap을 사용할 수 있습니다.

4. 스왑 및 버퍼/캐시를 수동으로 정리합니다

(1) 클린 스왑

으아악

작업 지침: Swap을 사용했고 이를 지운 후에도 +버퍼/캐시에 공간이 남아 있는 경우, swapoff -a 작업을 수행하면 Swap의 내용이 메모리로 스왑되며 데이터는 손실되지 않습니다.

(2) 버퍼/캐시 정리:

으아악

작동 지침:

sync–>캐시된 콘텐츠를 다시 하드 디스크에 씁니다.

echo 3 >/proc/sys/vm/drop_caches–>drop_caches 값을 3으로 수정합니다. 기본값은 0입니다. 3으로 변경하면 캐시된 콘텐츠가 지워집니다.

sleep 2 –> 이전 단계가 완료되지 않을 경우를 대비해 잠시 기다리세요.

echo 0 >/proc/sys/vm/drop_caches –> 기본값으로 다시 변경

일반적으로 SWAP, Cache 및 Buffer의 세 가지 캐시 영역은 Linux 시스템의 중요한 부분이며 시스템의 성능과 안정성에 직접적인 영향을 미칩니다. 이를 적절하게 제어하고 사용하면 시스템이 더욱 안정적이고 효율적으로 실행되어 사용자 경험이 향상될 수 있습니다. 이 기사가 Linux 시스템에서 이 세 가지 캐시 영역의 사용을 이해하는 데 도움이 되기를 바랍니다. 추가할 내용이나 질문이 있는 경우 연락을 위해 메시지를 남겨주세요.

위 내용은 Linux에서 SWAP, 캐시, 버퍼를 합리적으로 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제