Linux CPU Frequency를 참조한다.
메모리를 스왑 영역으로 옮기는 비율을 정한다. 0~100 까지 정할 수 있으며, 0이면 거의 스왑을 사용하지 않다가 어쩔 수 없을 때 스왑을 사용한다. /etc/sysctl.conf 파일에 다음 값으로 지정한다. 기본값은 거의 60이다.
vm.swappiness=5
명령행에서 일시적 지정은
sudo sysctl vm.swappiness=5 cat /proc/sys/vm/swappiness # 확인
http://ubuntu.or.kr/wiki/doku.php?id=%EB%AA%A9%EC%B0%A8:vm.swap_%EC%A1%B0%EC%A0%95%ED%95%98%EA%B8%B0
혹은 /etc/fstab
에서 swap 파티션을 주석처리하고 재부팅하여 아예 꺼버릴 수도 있다. How do I disable swap
AWS 인스턴스의 경우 명시적으로 지정하지 않으면 아예 swap 공간을 만들지 않으므로 swappiness가 의미가 없는 듯.
vm.max_map_count=2147483642
(MAX_INT - 5
)sudo sysctl -w vm.max_map_count=2147483642
/etc/sysctl.d/99-vm-max-map-count.conf
파일을 만들어서 내용을 추가하면 부팅시 자동적용vm.max_map_count=2147483642
2147483642
적용될 수 있음.ulimit -u
명령으로 값을 볼 수 있다.ulimit -u 정수
로 임시 값 설정/etc/security/limits.conf
파일에서 값 지정* - nproc 10240
ulimit -n
명령으로 값을 볼 수 있다.ulimit -n 정수
로 임시 값 설정/etc/security/limits.conf
파일에서 값 지정* - nofile 10240
/etc/security/limits.conf
혹은 /etc/security/limits.d/*.conf
로 파일 생성soft
에 다다르면 경고, hard
는 절대로 해당값 이상으로는 설정할 수 없다.*
이면 전체 계정계정명 soft nofile 50000 계정명 hard nofile 50000 계정명 soft nproc 10000 계정명 hard nproc 10000
계정명에 *
으로 지정하면 나머지 다를 의미함.
AWS EC2 인스턴스의 경우 자동으로 인스턴스 타입에 따라 nproc
을 적정수로 지정하는 것으로 보임. 확인해보고 nproc
은 굳이 안해도 될 듯.
# 현재 프로세스 limits 확인 cat /proc/[PID]/limits # hardlimit 확인 ulimit -aH
limits.conf
가 적용이 안 된다./etc/systemd/system.conf
, /etc/systemd/user.conf
, /etc/systemd/system/unit.d/override.conf
, /etc/systemd/user.conf.d/원하는파일.conf
등을 사용해서 설정해야 한다./etc/systemd/user.conf.d/99-user-system-limits.conf
를 통한 각 사용자의 limit 설정[Manager] DefaultLimitNOFILE=50000 DefaultLimitNPROC=10000
$ ulimit -n -u open files (-n) 50000 max user processes (-u) 10000
net.ipv4.tcp_fin_timeout = 10 net.ipv4.ip_local_port_range = 15000 61000 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle
이 값은 1로 줄 경우 문제 발생의 소지가 있을 수 있다.egrep 'siblings|cpu cores' /proc/cpuinfo | head -2
명령의 결과 siblings
의 값이 cpu cores
의 2배이면 하이퍼쓰레딩이 켜져 있는 것이다. 두 값이 동일하면 꺼져있는 것이다.