cache 메모리 방출 을 통 해 ubuntu 다운 문제 해결
작업 기 계 는 ubuntu 시스템 으로 16G 의 물리 적 메모 리 를 갖 추고 있다.이치 대로 말 하면 이 메모 리 는 이미 적지 않 지만 동시에 windows 가상 기 를 운행 하기 때문에 기계 의 자원 이 약간 부족 할 것 이다.매번 시스템 이 얼마 운행 되 지 않 고 많 으 면 3, 5 일, 적 으 면 하루 이틀 동안 시스템 이 끊 겨 죽 을 지경 이다.어떤 조작 도 이 문 제 를 해결 할 수 없다. 매번 대 법 을 다시 시작 하고 파워 키 를 길 게 눌 러 기 계 를 다시 시작 할 수 밖 에 없다.마침내 어느 날 하루 에 두 번 재 개 된 후 본인 은 정말 참 을 수 없어 서 이 문 제 를 해결 하기 로 결심 했다.
이전의 몇 번 의 경험 을 보면 매번 다운 되 기 전에 free 로 기계 의 메모리 사용 상황 을 살 펴 보면 cache 의 메모리 가 매우 크다 는 것 을 발견 하고 메모리 가 부족 한 귀신 이 라 고 초보 적 으로 의심 했다.Liux 시스템 에 cache 메모리 방출 전략 이 있 지만 Liux 커 널 이라는 것 을 누가 알 겠 습 니까?좋아, 그럼 우리 스 크 립 트 를 써 서 캐 치 를 강제로 풀 어 주자...
2. cache 메모리 사용
간단 한 스 크 립 트 를 썼 습 니 다:
#!/bin/bash
sync && echo 1 | sudo tee /proc/sys/vm/drop_caches
sync && echo 2 | sudo tee /proc/sys/vm/drop_caches
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
그리고 crontab 에 넣 고 한 시간 에 한 번 씩 실행 하고 정시 에 cache 를 방출 합 니 다.며칠 후 대본 이 효과 가 없 는 걸 발 견 했 어 요...메모리 사용 상황 을 볼 때마다 cache 가 풀 리 지 않 았 습 니 다.다운 되 나, 다운 되 나...생각해 보 니
/proc/sys/vm/drop_caches
이 경 로 는 일반 계 정 이 조작 할 수 있 는 권한 이 없 을 것 같 습 니 다.이 스 크 립 트 를 루트 의 crontab 에 과감하게 추가 하여 시간 당 한 번 씩 달 립 니 다.효과 가 있 었 다 는 걸...지난번 강제 재 개 2 주 만 에 완벽 하 게 해결...3. sync 명령
sync 명령 은 변 경 된 내용 을 즉시 디스크 에 기록 하고 초 블록 정 보 를 업데이트 하 는 데 사 용 됩 니 다.Linux/Unix 시스템 에 서 는 파일 이나 데이터 처리 과정 에서 메모리 버퍼 에 먼저 넣 고 적당 한 때 에 디스크 에 기록 하여 시스템 운행 효율 을 높 인 다.sync 명령 은 메모리 버퍼 의 데 이 터 를 디스크 에 즉시 기록 하도록 강제 할 수 있 습 니 다.사용 자 는 보통 sync 명령 을 실행 하지 않 아 도 됩 니 다. 시스템 은 update 나 bdflush 작업 을 자동 으로 실행 하여 버퍼 의 데 이 터 를 디스크 에 기록 합 니 다.update 나 bdflush 가 실행 되 지 않 거나 사용자 가 비정상적 으로 꺼 져 야 할 때 만 sync 명령 을 수 동 으로 실행 해 야 합 니 다.
4. cache 메모리 와 buffer 메모리 의 차이
메모리 보기 일반 free 명령 사용:
xxx@xxx:~/xxx/code/shell/base$ free -m
1 total used free shared buffers cached
2 Mem: 15929 11503 4425 991 35 1328
3 -/+ buffers/cache: 10139 5789
4 Swap: 16263 5 16258
free 의 출력 은 모두 네 줄 이 있 습 니 다. 네 번 째 행위 교환 구역 의 정 보 는 교환 총량 (totalk), 사용량 (used) 과 얼마나 남 은 교환 구역 (free) 입 니 다. 이것 은 비교적 명확 하고 많 지 않 습 니 다.
free 출력 지 두 번 째 줄 과 세 번 째 줄 은 비교적 사람 을 현혹 시킨다.이 두 줄 은 모두 메모리 사용 상황 을 설명 하 는 것 이다.첫 번 째 열 은 총량 (totalk) 이 고, 두 번 째 열 은 사용량 (used) 이 며, 세 번 째 열 은 사용량 (free) 이다.
두 번 째 줄 의 출력 은 운영 체제 (OS) 에서 보 았 다.OS 차원 에서 봤 을 때 말이다.그 중에서 Mem shared 는 몇 개의 프로 세 스 가 공유 하 는 메모 리 를 표시 합 니 다.Mem buffers 는 OS buffer 에 저 장 된 메모 리 를, Mem cached 는 OS cache 에 저 장 된 메모 리 를 나 타 냅 니 다.buffers 와 cached 의 차 이 는 다음 과 같다. buffer 는 disk (블록 장치) 에 출력 할 데 이 터 를 저장 하 는 데 사용 되 고 cache 는 disk 에서 읽 은 데 이 터 를 저장 하 는 데 사용 된다.이 두 가 지 는 IO 성능 을 향상 시 키 고 OS 에서 관리 하기 위 한 것 이다.Linux 와 다른 성숙 한 운영 체제 (예 를 들 어 windows) 는 IO read 의 성능 을 향상 시 키 기 위해 항상 cache 데 이 터 를 많이 해 야 하기 때문에 cache 데 이 터 를 많이 해 야 합 니 다.
세 번 째 줄 은 응용 프로그램의 측면 에서 시스템 메모리 의 사용 상황 을 보 는 것 이다.시스템 cache 와 buffer 가 사용 하 는 메모리 가 빠르게 회수 되 기 때문에 세 번 째 줄 은 free 열 에 대응 하 는 값 이 매우 큽 니 다.
마지막 으로 ubuntu 다운 케이스 를 정리 해 보면 시스템 cache 의 메모리 가 너무 많아 서 제때에 방출 되 지 않 아 시스템 이 다운 되 었 습 니 다!해결 방안 은 우리 가 스 크 립 트 를 써 서 정기 적 으로 cache 메모 리 를 방출 하면 다운 되 는 것 을 피 할 수 있다 는 것 이다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.