본문 바로가기

OS/Linux

Linux - CentOS 7/8 & Ubuntu 18/20 서버 튜닝: 성능과 안정성을 높이는 방법

728x90

리눅스 서버를 처음 설치한 뒤 안정성과 성능을 높이기 위해 꼭 필요한 OS 튜닝 작업을 정리했습니다.

이 가이드는 CentOS 7/8Ubuntu 18/20에서 공통적으로 적용할 수 있는 설정입니다.


1. OS 기본 설정

1.1 패키지 업데이트

* CentOS

yum update -y

 

* Ubuntu

apt update && apt upgrade -y

 

1.2 타임존 설정 및 시간 동기화

서버 시간을 정확히 설정하여 로그 관리 및 작업 스케줄에 오류가 없도록 합니다.

* 타임존 설정

timedatectl set-timezone Asia/Seoul

* 시간 동기화

- Chrony 사용

yum install -y chrony # CentOS
apt install -y chrony # Ubuntu
systemctl enable --now chronyd

- rdate 사용(옵션)

yum install -y rdate # CentOS
apt install -y rdate # Ubuntu
rdate -s time.bora.net

 

1.3 호스트명 변경

서버 식별을 위해 호스트명을 변경합니다.

hostnamectl set-hostname samsosamso

1.4 SELinux 설정

SELinux는 보안을 강화하지만 복잡성을 초래하거나 일부 서비스와 충돌할 수 있습니다.

* 비활성화 방법

vi /etc/selinux/config
SELINUX=disabled
reboot

* 로그는 유지하면서 해제

setenforce 0
vi /etc/selinux/config
SELINUX=permissive

 


2. 네트워크 및 SSH 보안 튜닝

2.1 방화벽 설정

기본적으로 SSH 포트만 열고 나머지는 차단합니다.

* CentOS

systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

* Ubuntu

ufw allow ssh
ufw enable


2.2 SSH 보안 강화

* 설정 파일 수정

vi /etc/ssh/sshd_config

 

* 주요 설정

Port 2222
PermitRootLogin no
PasswordAuthentication no

 

* SSH 서비스 재시작

systemctl restart sshd

 


3. 커널 및 시스템 리소스 튜닝

3.1 /etc/sysctl.conf 설정

커널 파라미터를 수정하여 네트워크 성능과 리소스 사용량을 최적화합니다.

* TCP FIN Timeout 조정 : 연결 종료 후 포트 해제 시간 단축

net.ipv4.tcp_fin_timeout = 10

 

* 수신 연결 큐 크기 증가 : 대기 연결 요청 처리 능력 향상

net.core.somaxconn = 65000

 

* 사용 가능한 포트 범위 확장 : 다중 연결 지원 증가

net.ipv4.ip_local_port_range = 1024 65535

 

* 파일 디스크립터 한계 설정

fs.file-max = 100000

 

* TCP 재사용 활성화

net.ipv4.tcp_tw_reuse = 1

 

* UDP 대기열 크기 증가

net.core.netdev_max_backlog = 250000

 

* 스왑 사용 최소화

vm.swappiness = 10

 

* ICMP 요청 차단

net.ipv4.icmp_echo_ignore_all = 1

 

* 설정적용

sysctl -p

 

3.2 /etc/security/limits.conf 설정

ulimit를 사용하여 사용자 계정별 리소스 제한을 조정합니다.

* 파일 오픈 개수 증가

* hard nofile 65000
* soft nofile 65000

 

* 프로세스 생성 한도 증가

* hard nproc 64000
* soft nproc 64000

 

* 스택 크기 증가

* hard stack 65536
* soft stack 65536

 

* 코어 덤프 허용

* hard core unlimited
* soft core unlimited

 


4. 불필요한 서비스 비활성화

서버 리소스를 절약하기 위해 필요하지 않은 서비스를 비활성화합니다.

* 실행 중인 서비스 확인

systemctl list-unit-files | grep enabled

 

* 비활성화 예시

systemctl disable postfix

 


5. 추가적인 팁

5.1 시간 단위 로그 관리

서버의 로그를 시간대별로 확인하려면 로그 파일의 설정을 조정합니다.

* logrotate 활용

vi /etc/logrotate.conf

5.2 리소스 모니터링 도구 설치

성능 모니터링을 위해 유용한 도구를 설치합니다.

* htop: 실시간 프로세스 모니터링

yum install -y htop # CentOS
apt install -y htop # Ubuntu

* iotop: 디스크 I/O 모니터링

yum install -y iotop
apt install -y iotop



 

728x90
반응형