1. 시스템 업데이트 시스템 성능을 최적화하려면 우선적으로 최신 패치와 업데이트를 적용 최신 보안 패치와 성능 개선이 포함되어 있으므로, 시스템의 안정성을 보장 apt update apt upgrade 2. 불필요한 서비스 비활성화 불필요한 서비스 확인 : systemctl list-units --type=service 서비스 비활성화 : systemctl disable [서비스명] 3. 불필요한 패키지 및 의존성 제거 사용하지 않는 패키지나 의존성은 시스템 성능에 영향을 미칠 수 있습니다. apt를 사용하여 불필요한 패키지를 정리 sudo apt autoremove -y # 불필요한 패키지 제거 sudo apt clean # 패키지 캐시 삭제 4. 부팅 속도 개선 시작 시 불필요한 프로그램들이 실행되는 것을 방지하면 부팅 속도를 빠르게 할 수 있습니다. systemd-analyze 명령어로 부팅 시간을 확인하고, 불필요한 서비스나 애플리케이션을 비활성화할 수 있습니다. 5. Swap 관리 디스크 스왑을 사용하면 물리적인 메모리가 부족할 때 디스크를 가상 메모리로 사용할 수 있습니다. 그러나 디스크 속도는 RAM보다 훨씬 느리므로, swap을 잘 관리하는 것이 중요합니다. swap 사용량 확인 swapon --show Swap 파일 크기 조정 sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 # 4GB swap 파일 생성 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile 6. 커널 튜닝 우분투에서 성능을 최적화하려면 커널 파라미터를 조정할 수 있습니다. sysctl 명령어로 커널 매개변수를 변경하거나 /etc/sysctl.conf 파일을 수정하여 시스템의 성능을 개선할 수 있습니다. sudo sysctl -w vm.swappiness=10 # swap 사용을 줄이고, 더 많이 RAM을 사용하도록 설정 sudo sysctl -w net.core.rmem_max=16777216 # 네트워크 버퍼 크기 증가 sysctl.conf 파일을 영구적으로 수정 sudo vi /etc/sysctl.conf에 다음 추가 vm.swappiness=10 net.core.rmem_max=16777216 7. 디스크 성능 최적화 디스크 I/O 성능을 향상시키기 위해 noatime 옵션을 사용하여 파일 접근 시간을 기록하지 않도록 설정할 수 있습니다. 또한, 디스크의 트리밍을 주기적으로 수행하여 SSD 성능을 최적화할 수 있습니다. sudo nano /etc/fstab 파일 시스템에 noatime을 추가하여 디스크 성능을 향상시킬 수 있습니다. /dev/sda1 / ext4 defaults,noatime 0 1 SSD 트리밍 활성화 sudo systemctl enable fstrim.timer 8. CPU 성능 최적화 CPU의 성능을 최적화하려면, CPU 주파수 조정 및 성능 모드를 관리할 수 있습니다. CPU 주파수 조정 : sudo apt install cpufrequtils CPU 성능 상태 확인 : cpufreq-info 성능모드 설정 sudo cpufreq-set -g performance # 최대 성능으로 설정 sudo cpufreq-set -g powersave # 전력 절약 모드로 설정 9. RAM 최적화 zswap이나 zram을 활성화하면 압축된 메모리를 사용하여 RAM을 보다 효율적으로 사용할 수 있습니다. zswap 활성화 : sudo nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT에 zswap.enabled=1 추가 : GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1" 이후 GRUB 설정을 업데이트하고 재부팅 sudo update-grub sudo reboot 10. NTP (Network Time Protocol) 최적화 시간 동기화가 시스템 성능에 영향을 미칠 수 있기 때문에, NTP를 적절히 설정하여 서버의 시간을 정확히 유지하는 것이 중요합니다. chrony나 ntpd를 사용하여 시간 동기화를 설정(2개 동시 사용 불가능) apt install chrony 11. 불필요한 로그 파일 제거 로그 파일이 너무 커지면 시스템 성능에 영향을 줄 수 있습니다. 주기적으로 로그를 정리하거나, 로깅 수준을 조정하여 성능을 개선할 수 있습니다. 로그 파일 크기 확인 : du -sh /var/log/* 로그 파일 삭제 : sudo rm -rf /var/log/*.log 12. 시스템 모니터링 도구 사용 htop: 프로세스 및 시스템 성능을 실시간으로 모니터링(top 상위) sudo apt install htop htop iotop: 디스크 I/O를 모니터링 sudo apt install iotop sudo iotop netstat: 네트워크 연결을 모니터링 netstat -tuln 13. GRUB 부팅 최적화 부팅 시간을 단축하려면 GRUB 부팅 로더의 설정을 최적화할 수 있습니다. GRUB 설정 최적화 : sudo nano /etc/default/grub GRUB_TIMEOUT을 0으로 설정하여 부팅 시간을 최소화 : GRUB_TIMEOUT=0 GRUB 업데이트 : sudo update-grub 14. 시스템 캐시 및 메모리 청소 리눅스 시스템은 자주 사용되는 데이터를 메모리에 캐시합니다. 이 캐시를 정기적으로 비워 시스템 자원을 해제할 수 있습니다. sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches # 페이지 캐시, 디렉토리 항목, inode 캐시를 비웁니다. 15. ulimit 프로세스의 자원 한도를 설정하는 명령, soft한도,hard한도 두가지로 나뉨 soft : 새로운 프로그램을 생성하면 기본으로 적용되는 한도 hard : 소프트한도에서 최대로 늘릴 수 있는 한도 apache 와 같이 웹 서비스를 운영 시 동접자가 많은 경우 구동되는apache 프로세스 수와 해당 프로세스가 처리하게되는 파일 수 또한 증가 하게 됩니다. 참고 : https://sysops.tistory.com/99 그 외 ps aux --sort=-%mem | head -n 10 # 메모리 사용량 상위 10개 프로세스 확인