반응형

http://banasun.tistory.com/91

composer를 update 중에 composer가 뻗어버리는 일이 발생하였습니다. 개발용으로 Virtual server를 이용하고 있는데, 아무래도 메모리가 적어서 그런 것 같습니다.

구글링을 해보니, swap 설정을 해주어야 한다고 하니 오늘은 이 척박한(!) 서버에 스왑으로 일단 돌아가게는 해놔야 하겠습니다.


1. 일단 free 명령으로 swap 파일이 있는지 확인부터 해줍니다. :

sudo free -m


위와 같이 swap이 0 0 이 나옵니다. 


2. 그러면 일단, 스왑 파일을 생성하겠습니다. 아래와 같이 해주면 4기가 크기의 파일이 생성됩니다:

sudo fallocate -4G /swapfile

이렇게 해주면 /swapfile 이라는 4G짜리 파일이 만들어지겠지요.


3. 이제 이 파일을 swap으로 이용하도록 설정하겠습니다. 그 전에 안전을 위해서 생성한 파일의 permission을 root만 읽고 쓸 수 있게 변경하겠습니다:

sudo chmod 600 /swapfile


4. 이제 이 파일을 swap 파일로 인식하게 해주면 되겠습니다.

sudo mkswap /swapfile

이러면 아래와 같이 반응이 옵니다.




5. 이제 swapon으로 스왑 파일을 활성화시키면 됩니다.

sudo swapon /swapfile

-s 옵션을 주면 이제 스왑이 실행되고 있는지 확인 가능합니다.

sudo swapon -s


vi /etc/fstab

/swapfile    none    swap    defaults    0 0

출처: http://boricha.springnote.com/pages/7091447

https://help.ubuntu.com/community/SwapFaq

영어 잘하는 사람은 링크를 보는게 훨씬 낫다.

 

  • swap 필요한 이유
  • Memory consuming programs. 많은 메모리를 필요로 하는 프로그램
  • Hibernation (suspend-to-disk). 절전모드 진입시 메모리(RAM)를 디스크로 저장.
  • Unforeseeable Circumstances. 예측하지 못한 이벤트발생시 문제를 해결하거나 작업을 저장할 수 있는 시간 확보.
  • Optimizing memory usage. 빠른 응답속도를 위한 cached memory. 그 확장을 더 효율적으로 하기 위함.. (???)
  • Optimizing Swap performance. 시스템영역과 스왑영역을 같은 디스크에 두면 성능에 좋지않다.. 이건 스왑이 필요한 이유가 아닌데...?

 

  • swap 용량을 얼마나 잡아야 하는가?
  • 최소한, 물리적으로 장작된 RAM 용량과 같을 것을 매우 권장(highly recommended) 한다.
  • 물리적으로 장착된 RAM 용량의 두배정도를 걍 권장(Also, it's recommended) 한다.
    옛날 메모리가 넘 비쌀때... 그런 권장사항이 생겼단다
  • 근데 예를 든 경우를 보니까 2G RAM 에 30G disk 인 경우 1G 쯤 잡아도 되나보다.
    그러니까..... 디스크용량이 메모리에 비해 너무 적은 경우에는 별수 없다..쯤 될까...아씨..;;;
  • 그냥.. 메모리 2G 쯤 되면 자기 메모리 만큼만 잡으면 되지 않을까 싶다. 아, 이건 만고 내생각.

 

  • 어떻게 swap 을 추가할 수 있나?
    - 대부분, OS설치시 스왑파티션을 만들지만 이미 설치된 시스템에서 추가하는 경우를 말한다.
    - 적용된 후에는 free 명령으로 확인 가능하다.
  1. Creating a file the size you want.

    • sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512

  2. Formatting that file to create a swapping device.

    • sudo mkswap /mnt/512Mb.swap

  3. Adding the swap to the running system.

    • sudo swapon /mnt/512Mb.swap

  4. Making the change permanent.

    • gksudo gedit /etc/fstab

    • Add this line at the end of the file:
      /mnt/512Mb.swap  none  swap  sw  0 0

 

  • swappiness 변경 방법
    - 커널이 프로세스를 메모리영역에서 스왑영역으로 이동시키는 정도를 설정하는 파라미터값.
    - 0 에서 100 사이 (우분투 기본값 60). 0 에 가까울 수록 사용정도가 적어진다.
  1. 현재 값 체크 (To check the swappiness value)

    • cat /proc/sys/vm/swappiness

  2. 현재 시스템에 변경값 바로 적용 - 재부팅시 반영안됨.  (To change the swappiness value A temporary change (lost on reboot) with a swappiness value of 10 can be made with)

    • sudo sysctl vm.swappiness=10

  3. 부팅시마다 적용하기 위해 설정파일 수정 (To make a change permanent, edit the configuration file with your favorite editor:)

    • gksudo gedit /etc/sysctl.conf

  4. vm.swappiness 항목을 찾아서 수정하거나, 없다면 추가한다. (Search for vm.swappiness and change its value as desired. If vm.swappiness does not exist, add it to the end of the file like so:)

    • vm.swappiness=10

  5. 저장 후 재부팅. (Save the file and reboot.)





Ubuntu swap를 사용하지 않는 방법입니다.
저는 메모리가 많이 남아서 swap를 사용안하다가 최대 절전모드를 사용하지 않기에 swap를 제거하려고 합니다.
최대 절전모드를 사용할려면 swap 이 꼭 필요합니다. 용량은 메모리 크기만큼만 잡아주셔도 문제가 없습니다.

명령어에서 아래의 명령어를 입력합니다. swapon 명령어를 통해 swap 를 다시 사용 할 수도 있습니다.

명령어는 sudo swapoff -a 를 해주면 됩니다.
그외 명령은 아래 사진을 참고하시면 됩니다.

디스크를 로드하지 않아야 완전히 사용하지 않는 것이라고 생각됩니다. 그리고 그 swap 공간을 다른 디스크로 활용도 가능하구요. 

터미널 명령어에
  sudo vi /etc/fstab 을 입력하시거나 vi 편집기가 익숙하지 않으시다면 sudo gedit /etc/fstab 을 사용하셔도 됩니다.
 그리고 아래 화면에서 # swap was on ........ 의 내용 아래에 UUID 앞에 #을 붙여넣으시면 됩니다.

위의 명령어로 swap 사용을 하지 않고, auto mount도 해제됩니다. 이제 이 swap를 가지고 다른 백업폴더나 리눅스 디스크로 사용하지면 됩니다.

http://thdev.net/127



반응형

'연구개발 > Linux' 카테고리의 다른 글

ubuntu 방화벽  (0) 2016.03.14
zabbix mail setting  (0) 2016.03.03
zabbix 3.0 설치  (0) 2016.02.23
zabbix 설치  (0) 2015.11.17
리눅스 하드디스크 추가하기  (0) 2015.04.09

+ Recent posts