tmpfs 를 이용 하여 gnome - shell overview 모드 Applications 색인 가속 화

gnome - shell 의 overview 모델 은 정말 유 물 입 니 다. 동적 작업 공간 과 작업 관 리 는 Lion 의 Mission Control 에 뒤지 지 않 습 니 다. Applications 와 Lion 의 LaunchPad 도 똑 같 습 니 다.
그러나 조금 불쾌 하 다. 애플 리 케 이 션 을 불 러 올 때마다 느 리 고 하 드 디스크 가 미 친 듯 이 돌아 다 니 며 아름 다운 기능 을 거의 사용 하지 않 는 다.속 도 를 낼 필요 가 있다.
속도 병목 을 고려 하면 주로 디스크 읽 기/* MBA SSD 에 대한 부 러 움 과 질투 */ ,Applications 의 내용 을 메모리 에 미리 캐 시 할 수 있 었 으 면 좋 겠 습 니 다. Applications 에 서 는/usr/share/applications 의 파일 을 불 러 왔 습 니 다. 그래서/usr/share/applications 를 tmpfs 로 마 운 트 할 생각 이 들 었 습 니 다./모두 [0 - 9] M 의 파일 에 불과 하 다. 이 메모리 는 우리 가 가지 고 있다.

mkdir -p /tmp/app_temp
cp -aR /usr/share/applications/* /tmp/app_temp #先把文件备份出来
mount -t tmpfs none /usr/share/applications
cp -aR /tmp/app_temp/* /usr/share/applications

지금 해 봐, 속도 가 훨씬 빠 르 지 않 아?
신마bug 있어 요?이게 기적 인가요?믿 어?어차피 믿 었 으 니까!tmpfs 로 속도 가 빨 라 졌 지만 꺼 지면 모든 데 이 터 를 잃 어 버 립 니 다!/차 머리 가 묻 힌 것 처럼 ~
해결 방법 도 간단 하 다. 적당 할 때 내용 을 하 드 디스크 로 복사 하고 켜 질 때마다 복사 하면 된다.
'적당 한 때' 에 대해 멍청 한 방법 은 crond 주기 로 동기 화 할 수 있 습 니 다. 본인 은 똑똑 한 방법 으로 - inotify 를 이용 합 니 다.
Inotify 는 강력 하고 세밀 하 며 비동기 파일 시스템 모니터링 체제 로 다양한 파일 모니터링 수 요 를 만족 시 키 고 파일 시스템 의 접근 속성, 읽 기 쓰기 속성, 권한 속성, 삭제 생 성 이동 등 작업 을 모니터링 할 수 있 습 니 다.
즉, inotify 모니터링/usr/share/applications 디 렉 터 리 를 이용 하여 변화 가 발생 하면 디스크 에서 데 이 터 를 동기 화하 고 켜 질 때마다 디스크 에서 복구 하면 된다.생산 환경 에서 자주 사용 되 는 inotify + rsync 는 실시 간 동기 화 를 실현 하지만 이런 작은 hack 는 rsync 를 사용 하 는 것 이 정말 불쾌 합 니 다. 직접 cp 와 rm 을 사용 하면 됩 니 다.

#!/bin/bash
MEM_DIR="/usr/share/applications"
HD_DIR="/var/lib/app_db"
cp -aR ${HD_DIR}/* ${MEM_DIR}/
inotifywait -mrq --format '%e%%%f' \
   -e modify,delete,move,create ${MEM_DIR} \
  |while read raw_data
do
	DO=`echo $raw_data|cut -d% -f1`
	FILE=`echo $raw_data|cut -d% -f2`
	case "$DO" in
	  CREATE|MOVED_TO|MODIFY)
		cp ${MEM_DIR}/${FILE} ${HD_DIR}/
		;;
	  DELETE|MOVED_FROM)
		rm ${HD_DIR}/${FILE}
		;;
	esac
done

이 스 크 립 트 를 sync 로 저장 합 니 다.tmpfs. sh,/etc/rc. loal 에 가입 하여 자동 으로 작 동 합 니 다:

(bash /path/to/script/sync_tmpfs.sh ) &

fstab 다시 수정 해 주세요.

tmpfs /usr/share/applications tmpfs defaults,mode=0755 0 0

다시 시작 해 주세요. 큰 성 과 를 거 두 었 습 니 다.

좋은 웹페이지 즐겨찾기