Command less는 FHS의 어디에 버퍼를 저장합니까?

Command less는 FHS의 어디에 버퍼를 저장합니까?

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합계의 변화를 관찰합니다.dffree

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메모리(아마도 스왑)에 보관됩니다.

관련 정보