점점 늘어나는 디렉토리를 메모리에 잠그는 방법은 무엇입니까?

점점 늘어나는 디렉토리를 메모리에 잠그는 방법은 무엇입니까?

나는 일정 기간 동안 tmpfs에서 읽는 것처럼 디렉토리를 빠르게 읽길 원합니다.

가장 가까운 것은 다음과 같습니다.

vmtouch -L -m 2G /path/to/mydir

그러나 이는 새 파일이나 삭제된 파일을 감지하지 못합니다.

답변1

구현된 해결 방법:https://gist.github.com/vi/77717d7076618af92344

여기 거울:

#!/bin/bash

# vmtouchpoll: Keep some files locked in memory (including new files, dropping deleted files)

# Usage: vmtouchpoll '/path/to/some/files/*.idx'

# Works by periodically restarting vmtouch with a new set of files
# Implemented by Vitaly "_Vi" Shukela in 2015, License=MIT


F=($(eval echo $1))

vmtouch -L -m 2G "${F[@]}"&
P1=$!
P2=0
disown

trap 'kill $P1; [[ $P2 -gt 0 ]] && kill $P2' EXIT

while true; do
    sleep 55;
    F=($(eval echo $1))

    vmtouch -q -L -m 2G "${F[@]}"&
    P2=$!
    disown

    sleep 5;
    kill $P1
    P1=$P2
    P2=0
done

관련 정보