USB 스틱에서 실행되는 Kubuntu 20.04 사용. 따라서 /cow
오버레이 파일 시스템이 위에 마운트됩니다 /
. USB 스틱의 총 용량은 32GB이지만 cow
오버레이 파일 시스템에는 16GB만 할당됩니다. 내 컴퓨터의 RAM 크기는 32GB입니다(총 유틸리티 "무료"에 표시됨).
현재 상태의 이유는 인터넷 연결을 비활성화하는 것을 잊었기 때문입니다.
이전에 적성을 이용해 검색한 적은 있지만 일부러 아무것도 다운로드한 적은 없습니다. 밤새 "소"의 16GB 중 약 2GB가 사용되었습니다. df -Th -a
"중고" 표시가 21%에서 33%로 증가했습니다.
지금은 누가 무엇을 했는지 조사 중입니다.
wels_fullpath
이를 위해 나는 (bash globstar 및 globstar 기반 **
) 내가 작성한 프로그램을 실행하고(몇 시간 동안) /
출력을 정렬 sort
(시간별 정렬을 위해)하고 sort에서 less
. 실행되는 동안 어떤 메모리가 어떤 sort
버퍼 에 사용되는지 주의 깊게 살펴보아야 합니다 less
. (지금은 정렬을 무시하고 있습니다).
이를 위해 이 유틸리티를 계속 실행하여 watch
합계의 변화를 관찰합니다.df
free
watch -d "df -T -a >/tmp/WEx_df__2; diff -U0 /tmp/WEx_df__1 /tmp/WEx_df__2; free -w -h"
strace
작동하고 있음 을 보여주세요 wels_fullpath
.
df
그러나 내부 또는 외부에서는 변경 사항이 보고되지 않았습니다 free
.
따라서 질문은 df
증가하는 버퍼가 목록의 어디에 나타나야 하는가입니다.
나는 문서를 읽고 less
인터넷에서 긴 Google 검색을 수행했습니다. less와 buffer에 관한 좋은 기사가 있습니다. 그러나 FHS에서 더 적은 버퍼를 볼 수 있는 위치와 이름은 어디에도 설명되어 있지 않습니다.
- 부록:
새로운 문제가 발생합니다.
통화 순서를 변경했으며 더 이상 여기서 "less"를 사용하지 않습니다.
그래도 내 질문은 나에게 중요합니다.
어쩌면 나는 less의 버퍼가 있는 곳에 "저장소"라는 적절한 용어를 쓰지 않았을 수도 있습니다. "메모리 또는 디스크에"가 있습니다. 버퍼 수가 적을수록 "free" 또는 "df"에 영향을 미칩니다. 일부 문서에서는 이 점을 언급해야 합니다.
이제 내 명령 체계는 다음과 같습니다.
/.../wels_fullpath -d / 2>/dev/null | grep -v -e "^fd1" | grep -v -e "^fd1" | r -k7,8 >/tmp/WEx01
"top"("htop"은 기본적으로 설치되지 않음)에서 볼 수 있듯이 실행이 아직 시작되지 않았습니다.
상단 -p <PID>
보여주다:
PID 사용자 PR NI VIRT RES
2159985 루트 20 0 242132 235816
SHR S %CPU %MEM 시간 +
3160R 99.3 0.7 1634:33
주문하다
wels_전체 경로
내 프로그램에서는 배열을 사용합니다. 그리고 소스 "/"의 파일을 읽을 때 배열에 씁니다. 그래서 VIRT와 RES는 계속 성장하고 있습니다.
그러나 영구적으로 실행되는 "df" 및 "free" "watch"에는 이러한 변경 사항이 표시되지 않습니다. "무료"의 값은 위아래로 거의 변경되지 않습니다.
따라서 추가 질문은 다음과 같습니다.
내 프로그램의 증가하는 메모리 사용량이 "유휴"에 반영되지 않는 이유는 무엇입니까?
Linux, Kubuntu에 메모리의 다양한 측면(예: "df", "du")을 분석하고 표시할 수 있는 유틸리티가 있습니까?
인사말Antandhidh
아, 미안해요. 나는 기억하고 발견했습니다 :
/proc/meminfo는 좋은 개요를 제공합니다. pmap은 각 프로세스의 메모리 사용량을 제공합니다.
귀찮게 해서 미안해요.
인사말Antandhidh
답변1
less
파일 시스템의 어느 곳에도 버퍼를 저장하지 마십시오. --buffers
및 옵션을 사용하여 구성할 수 있는 버퍼는 --auto-buffers
메모리(아마도 스왑)에 보관됩니다.