4G램 이하에서 Arch linux를 데스크탑으로 쓰기 위한 최적화.

램이 4G라면 적은 건 아니다. 하지만 무거운 프로그램을 돌리려면 부족한 게 사실이다. 이를 해결하려고 Desktop Environment을 바꿔 보았지만 별 효과를 보지 못했다. 그래서 몇 가지 더 손을 본 결과 쓸만한 데스크탑 환경을 구축했다.

가장 큰 효과를 본 것은 스왑 메모리의 설정이었다. SSD에 자주 쓰고 지우면 수명이 단축된다고 하지만, 내 수명이 단축되지 않으려면 스왑을 써야했다. 스왑영역을 잡아주었더니, 버츄어 박스와 IDE 크롬과 파이어폭스를 띄워도 시스템이 멈추지 않는다.

스왑 할당하기

우선 아래 명령어로 할당된 스왑을 확인한다.
sudo swapon -s
free -m

공간이 충분히 남아있는지도 확인한다.
df -h

스왑 파일을 만든다.
sudo fallocate -l 4G /swapfile

root 유저만 읽고 쓰도록 스왑 파일의 권한을 설정한다.
sudo chmod 600 /swapfile

스왑 파일이 잘 만들어 졌는지 확인한다.
ls -lh /swapfile

스왑 영역을 할당한다.
sudo mkswap /swapfile

스왑 영역을 활성화한다.
sudo swapon /swapfile

아래 명령어로 할당된 스왑을 확인한다.
sudo swapon -s
free -m

/etc/fstab 파일에 스왑 설정을 추가한다.
/swapfile none swap sw 0 0

/etc/sysctl.conf 파일에 다음을 추가한다.
vm.swappiness=10
vm.vfs_cache_pressure = 50

스왑 영역을 지울 땐 아래 명령어를 쓰면 된다.
swapoff -a
rm -f /swapfile

gnome-pty-helper 비활성화

사용자가 얼마나 많은 터미널을 열었나 기록하는 헬퍼로 데스크톱 환경에서는 필요가 없다.

chmod 644 /usr/lib/vte/gnome-pty-helper
chmod 644 /usr/lib64/vte/gnome-pty-helper
chmod 644 /lib64/vte/gnome-pty-helper
chmod 644 /lib/vte/gnome-pty-helper

Core dump 비활성화

코어 덤프가 디버깅엔 유용하지만 평소에는 성능에 저하를 가져오므로 비활성화 한다.
/etc/sysctl.conf 파일에 다음을 추가한다.
fs.suid_dumpable = 0

SSD trim 기능 켜기

sudo pacman -S util-linux
sudo systemctl enable fstrim.timer

윈도우 메니저의 변경이 도움이 될 수도 있다.
가벼운 윈도우 메니져가 많다. FVWM과 ICEWM이 가벼운 편이었지만, 보기가 너무 안좋아서 지워버렸다. OpenBox는 좋은 모습을 보여주지만 XFCE의 기본 WM인 XFWM(14M)보다 두배가 넘는 메모리(31M)를 사용한다. 그래도 여전히 가벼운 편이니 취향에 따라 OpenBox로 윈도우메니져를 바꿔 보는 것도 괜찮겠다.

xfce 윈도우 메니저 변경하기

설정 파일을 가져온다.

cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml 파일을 열어 xfwm4를 openbox로 변경한다.

<value type="string" value="xfwm4"/>to
<value type="string" value="window_manager_executable"/>

오픈박스용 설정 설치

pacman -S obconf

단축키가 제대로 동작하지 않으면 vi .config/openbox/rc.xml 에서 사용하지 않는 단축키를 제거한다.

지금 사용하는 윈도우 메니저 보기

pacman -S wmctrl
wmctrl -m

가볍고 쓸만한 앱을 찾다가 보조 터미널로 좋은 tilda와 자원 점유율을 보여주는 htop을 설치했다.

pacman -S tilda
pacman -S htop


혹시 이 환경에서도 시스템이 불안정한 일이 자주 발생한다면 쓰는 자주 프로그램을 가벼운 걸로 바꾸어 보는 것도 괜찮을 것 같다. 예를 들면 이메일 클라이언트를 썬더버드에서 Trojita나 Geary등으로 바꾸는 것이다. 하지만 설정을 다시 하기는 귀찮으니 우선은 이대로 써야겠다.


문제 해결

키보드 단축키가 작동하지 않을 때

로그아웃 하고 tty1(ctrl+alt+F1)에서 로그인 하여 rm -rf ~/.cache/sessions/* 로 세션 캐쉬를 삭제한다.

Failed to fork (Resource temporarily unavailable) 오류가 날 때

/etc/sysctl.conf 파일에 다음을 추가한다.
fs.file-max = 204708

QT5에서 한글 입력이 안될 때

yaourt -S uim-qt5 --force

SHELL의 변경 (zsh)

pacman -S zsh
zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f
chsh -s $(which zsh)
echo $SHELL

재부팅 하지 않고 sysctl 적용

sudo sysctl -p /etc/sysctl.d/99-sysctl.conf

그 밖에 읽어볼 만한 자료.

SSD 최적화

베터리를 오래가게 돕는 도구

실행중인 프로세스가 어떻게 자원을 사용할 지 제어하는 데몬