Chromium-Browser 디스크 캐시 사이즈 조절 (Kiosk in web browser)

김세환·2021년 10월 21일
0

Chromium-Browser의 Disk Cache 사이즈 조절

문제의 발생..

우리회사는 Kiosk 화면을 Web Application으로 제작하여, Debian 기반 Linux(라즈베리파이와 비슷한 놈에서..)에서 운영하고있다.

이 Kisok 화면을 보여줄 하드웨어의 저장공간이 매우 작다보니(Total은 4GB인데.. OS가 2.4~2.6GB 까먹고, 크로미움 자체가 거의 1기가 가까이 된다) 각종 캐쉬가 쌓이거나, 로그가 쌓임에 따라 Disk 용량이 부족해져서 부팅이 안된다던지, X-server(화면)이 먹통이 되는 경우가 자주 발생했다.

그렇게 먹통이 된 친구를 하나 까서 조사해보던 도중... 다음과 같은걸 발견했다..!

Chromium이 쌓아올린 캐시파일 용량이 무려 162Mb....!

chromium-browser의 disk cache를 저장하는 위치는 다음과 같다.

/home/{user}/.cache/chromium/Default/cache

각 캐시파일의 용량은 500bytes 정도로 매우 작았다.

그런데 그 작은 캐시파일이 무려 4만개가 쌓였다 -_-

캐시파일의 내용은 Socketio 관련 로그였다. (우리 Web Application은 백엔드와 프론트엔드 사이를 socketio로 연결해놓았고. Web Application에서는 console.log를 찍고있었다..)

디스크 캐시 사이즈 제한 방법

웹 어플리케이션이 문제였겠지만. 그래도 사전에 이런 캐쉬가 미친듯이 쌓이는걸 방지하고자 내용을 찾아보았고. 방법은 매우 단순했다.

Chromium 브라우저를 startup 하는 스크립트 / 커맨드에서. Chromium을 실행할때 --disk-cache-size 옵션으로 최대 캐시 사이즈를 조절할수있다.

관련한 내용은 여기에 있다.
https://peter.sh/experiments/chromium-command-line-switches/

그래서 우리는 chromium startup 스크립트를 다음과 같이 변경하기로 했다.

/usr/bin/chromium-browser --disk-cache-size=2048 \
--noerrdialogs --kiosk --disable-pinch --overscroll-history-navigation=0 \
-app=http://127.0.0.1:8888

--disk-cache-size 뒤에 들어올 값은, 'Bytes' 단위이다

이후, 다음과 같으 쉘 스크립트를 만들어 실행해놓고 캐시가 어떻게 쌓이는지 모니터링 해보았당

#/bin/bash


while :
do
  echo "------------------------------------------"
  echo "file counts in chormium-cache directory"
  # counting cache files
  ls -l /home/pi/.cache/chromium/Default/Cache | grep ^- | wc -l
  echo "file disk usage in chromium-cache directory"
  # caculcating cache files size
  du -sh /home/pi/.cache/chromium/Default/Cache
  echo "------------------------------------------"
  sleep 1
done

그 결과..

2Mbytes 이상으로 캐시파일이 쌓이지 않는다 ^_^

Kiosk 앱을 웹으로 개발하시는 분들은 참고하셔서.. 저처럼 뻗어버린 하드웨어를 보지 않길 기윈합니다

profile
DevOps 엔지니어로 핀테크 회사에서 일하고있습니다. 아직 많이 부족합니다.

0개의 댓글