이 문서는 다음 주소의 내용을 발 번역한 것입니다. http://tonylixu.blogspot.kr/2014/01/linux-kernel-tuning-swappiness-and.html 리눅스 커널 튜닝 – swappiness and overcommit_memory 리눅스 커널 튜닝가능한 파라메터 vm.swappiness (/proc/sys/vm/swappiness) 는 어떻게 메모리 페이지들이(memory pages) 적극적으로 디스크에 스왑(swap)되어질 수 있는지를 정의하는데 사용되어질 수 있습니다. 리눅스는 활용할 수 있는 free 메모리양이 충분하더라도 오랫동안 메모리 페이지에 접근하지 않는 것들을 스왑 공간으로 이동시킵니다. 이러한 동작은 “swappiness” 커널 파라메터 값을 /proc/sys/vm/swappiness 에서 변경할 수 있습니다. 높은 swappiness 값은 커널은 매핑된 페이지를 좀 더 해제하라는 의미 입니다. 낮은 swappiness 값은 반대의 의미로 […]
CentOS IPv6 비활성화
IPv4 의 부족분을 대체하기 위해서 IPv6 가 개발되었지만 아직까지 사용빈도가 높지않아 리눅스 IPv6 비활성화 시켜서 자원을 아낄 수 있습니다. 기본적으로 CentOS 6, 7 에서는 IPv6 가 활성화 되어 있습니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 소켓 리스닝 상태 netstat -lpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1550/rpcbind tcp 0 0 0.0.0.0:39698 0.0.0.0:* LISTEN 1568/rpc.statd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1622/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1698/master tcp 0 0 :::111 :::* LISTEN 1550/rpcbind tcp 0 0 :::22 :::* LISTEN 1622/sshd tcp 0 0 ::1:25 :::* LISTEN 1698/master tcp 0 0 :::57468 :::* LISTEN 1568/rpc.statd udp 0 0 0.0.0.0:877 0.0.0.0:* 1550/rpcbind udp 0 0 0.0.0.0:111 0.0.0.0:* 1550/rpcbind udp 0 0 0.0.0.0:896 0.0.0.0:* 1568/rpc.statd udp 0 0 0.0.0.0:46387 0.0.0.0:* 1568/rpc.statd udp 0 0 0.0.0.0:68 0.0.0.0:* 1462/dhclient udp 0 0 :::877 :::* 1550/rpcbind udp 0 0 :::111 :::* 1550/rpcbind udp 0 0 :::46198 :::* 1568/rpc.statd # 커널 모듈 상태 lsmod | grep ipv6 nf_conntrack_ipv6 8337 2 nf_defrag_ipv6 11156 1 nf_conntrack_ipv6 nf_conntrack 79758 7 xt_conntrack,ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state ipv6 318183 153 ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6 |
위와같이 IPv6 가 사용 됩니다. CentOS 6 1. IPv6 커널 모듈 비활성화 다음과 같이 IPv6 커널 모듈이 로딩되지 않도록 해줍니다.
|
1 |
echo "install ipv6 /bin/true" > /etc/modprobe.d/disable_ipv6.conf |
2. 커널 파라메터 추가 다음과 같이 IPv6 커널 파라메터를 추가해 줍니다.
|
1 2 |
echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf |
이제 재부팅을 해주면 IPv6 가 비활성화 됩니다. CentOS 7 1. Grub2 IPv6 비활성화 옵션 추가
|
1 2 3 4 5 6 7 8 |
# vim /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="ipv6.disable=1 vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko crashkernel=auto rhgb quiet" GRUB_DISABLE_RECOVERY="true" |
이와같이 […]
RabbitMQ 설정
RabbitMQ 는 기본적으로 효율적으로 RabbitMQ 서버을 운영하기에 충분할만큼 내장된 설정으로 가지고 있습니다. 만약에 이 설정을 변경하고자 한다면 설정을 해야 합니다. RabbitMQ 설정은 기본적으로 다음과 같이 3가지 방법을 제공 합니다. 환경변수들(environment variables) : 포트(port), 파일 위치(file location), 파일 이름(file name)들을 정의. 이것은 쉘 환경변수로부터 가지고 올수 있으며 rabbitmq-env.conf 파일에 설정할 수 있다. 설정파일 : 허가권(permission), 제한과 클러스터, 플러그인 세팅과 같은 서버 컨포넌트들을 정의. 런타임 파라미터와 정책들 : 클러스터 전체 세팅을 런타임에서 변경할 수 있다. 설정파일의 위치는 배포판의 경우에 /etc/rabbitmq 를 루트하며, […]
리눅스 아파치 설치
Apache 는 전세계 웹 서버로 가장 많이 쓰이는 HTTP 서버 입니다. Apache 는 최신 2.4 으로 넘어오면서 많은 변화를 겪었습니다. 이 문서는 리눅스 아파치 설치 하는 방법을 설명한 것입니다. 1. 개요 CentOS 7 배포판은 RHEL 7 을 재컴파일해서 만들어진 배포판 입니다. 이전 버전과 달리 서비스 데몬 관리로 Systemd 를 채용했고 기본 파일 시스템으로 XFS 를 채용하는등 많은 변화를 겪었습니다. CentOS 7 에 서버 프로그램을 설치하게 될 경우에 이 Systemd 와 결합을 시키는 것도 중요한 일로 떠올랐습니다. Systemd 는 단순하게 서비스 […]
Man 페이지 텍스트, PDF로 저장
Man 페이지 텍스트 파일로 저장.
|
1 |
man grep | col -b > grep.man |
Man 페이지 PDF 파일로 저장.
|
1 |
man -t grep | ps2pdf - > grep.pdf |
Man 페이지 HTML 파일로 저장. 먼저 패키지를 설치해야 합니다.
|
1 |
yum install man2html-core.x86_64 netpbm-progs.x86_64 psutils.x86_64 |
그리고 다음과 같이 해줍니다.
|
1 |
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml > a.html |
Man Page 컬러로 보기
리눅스의 Man Page 는 컬러가 아닙니다. 흑백으로만 나옵니다. 중요한 내용에 컬러를 입히면 눈에 잘 들어올텐데, 이걸 가능하게 하는 방법입니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
]$ vim .bashrc man() { env \ LESS_TERMCAP_mb=$(printf "\e[1;31m") \ LESS_TERMCAP_md=$(printf "\e[1;31m") \ LESS_TERMCAP_me=$(printf "\e[0m") \ LESS_TERMCAP_se=$(printf "\e[0m") \ LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ LESS_TERMCAP_ue=$(printf "\e[0m") \ LESS_TERMCAP_us=$(printf "\e[1;32m") \ man "$@" } |
‘source ~/.bashrc’ 를 해주면 바로 적용 됩니다. 그런데, xterm 을 사용하고 있다면 다음과 같이 .Xdefaults 에 다음과 같이 해줍니다.
|
1 2 3 4 |
*VT100.colorBDMode: true *VT100.colorBD: red *VT100.colorULMode: true *VT100.colorUL: cyan |
그리고 다음과 같이 적용을 해줍니다.
|
1 |
]$ xrdb -load ~/.Xdefaults |
출처: http://www.cyberciti.biz/faq/linux-unix-colored-man-pages-with-less-command/
Bash 패스워드 생성기.
쉘 스크립트에서 간단하게 패스워드를 생성할 수 있습니다.
|
1 2 3 4 5 6 7 8 |
]$ vim .bashrc genpasswd() { local l=$1 [ "$l" == "" ] && l=8 tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs } ]$ source .bashrc |
사용법은 다음과 같습니다.
|
1 |
genpasswd [자릿수] |
Python 3 설치
Python 3 설치. 현재 Python 2.x 버전이 2019년까지 수면을 연장했지만 이미 많은 모듈들이 2.x 버전에서 개발이 중단되거나 Python 3.x 를 지원하기 시작했다. 앞으로는 Python 2.x 를 개발하더라도 Python 3.x 와 호환을 고려해서 작성해야 한다. 1. Downloads and Unpack 다운로드는 Python 홈페이지에서 받는다.
|
1 2 3 |
wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz tar xvzf Python-3.4.1.tgz -C /usr/src |
2. Configure and Compile and Install
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
export LDFLAGS=-L/usr/lib64 export LINKCC="gcc" if pkg-config openssl ; then export CFLAGS="$CFLAGS `pkg-config --cflags openssl`" export LDFLAGS="$LDFLAGS `pkg-config --libs-only-L openssl`" fi export CHOST="x86_64-pc-linux-gnu" export CC=gcc ./configure --prefix=/usr/local/python3 --enable-shared --with-system-expat --with-signal-module --with-threads make make install |
3. 후속작업 설치한 후에 python3 을 실행하면 다음과 같이 실행이되지 않는다.
|
1 2 |
/usr/local/python3/bin/python3 /usr/local/python3/bin/python3: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory |
공유라이브러리가 없기 때문에 나타나는 현상으로 다음과 같이 공유라이브러리를 인식시켜준다.
|
1 2 3 4 |
]# vim /etc/ld.so.conf.d/python3.conf /usr/local/python3/lib ldconfig |
KVM 의 Bridege 를 OpenvSwitch 로 바꾸기.
KVM은 리눅스 커널 기반의 가상화 시스템이다. KVM 을 이용하면 네트워크도 가상화를 해주는데, 이는 KVM 의 네트워크 가상화는 Bridege 네트워크를 이용하도록 되어 있다. 위 그림은 KVM 하이퍼바이저의 가상 네트워킹을 보여준다. 네트워크 가상화를 하이퍼바이저내에서 이루어지다보니 가상 시스템을 모아놓은 상태에서 전체 네트워킹을 설정하고 변경하기가 쉽지가 않게 된다. 가상 네트워킹을 관리하기 좀 더 쉽게 하이퍼바이저내에서 빼내서 가상 네트워킹을 가능하도록 한다면 어떨까. OpenvSwitch 가 이것을 가능하게 해준다. 1. 환경. CentOS 7 의 KVM 환경이다. OpenvSwitch 는 2.0 버전이며 이는 OpenStack IceHouse 패키지 저장소에 있는 것을 […]
Virtual networking in Linux.
이 포스트의 내용은 다음의 영문내용을 번역한 것 입니다. Virtual networking in Linux Virtual networking in Linux 플랫폼 가상화의 폭발적인 성장과 함께, 기업 생태계의 다른 부분이 가상화되고 있다는 건 놀라운 일이 아니다. 아주 최근에 영역은 가상 네트워킹(virtual networking) 이다. 플랫폼 가상화의 초기 구현은 가상 NIC 생성지만 오늘날에는 네트워크의 큰 부분들이 가상화되어지고 있는데, 서버의 VM 간에 통신을 지원하거나 서버간의 분산된 스위치같은 것들이다. 가상 네트워킹의 배경이되는, NIC 및 스위치 가상화에 초점을 맞춰, 아이디어를 설명한다. Computing today is undergoing something of a revival. 비록 […]