cgroups

cgroups(Control Groups)는 프로세스를 그룹으로 묶어 리소스를 제한하고 모니터링할 수 있는 기능을 제공한다. cgroups를 통해 CPU, 메모리, 디스크 I/O 등 다양한 시스템 리소스를 효율적으로 관리할 수 있다.

Systemd

Systemd는 리눅스 운영체제에서 시스템 및 서비스 매니저로 사용되며, cgroups를 사용해 리소스를 관리하고 제한하는 기능을 제공한다. 이를 통해 서비스나 애플리케이션에 대해 세밀한 리소스 제어가 가능하다.

cpulimit

cpulimit는 특정 프로세스의 CPU 사용률을 제한하는 데 사용된다. 주로 단일 프로세스의 CPU 사용률을 제어하고자 할 때 유용하다.

ulimit

ulimit는 셸 내에서 자원 사용을 제한하는 명령어로, 파일 핸들 수, 프로세스 수, 메모리 사용량 등을 제한할 수 있다.

rlimit

rlimit는 특정 프로세스에 대해 자원 사용 제한을 설정하는 시스템 호출로, 주로 프로그래밍에서 사용된다.

프로세스 우선순위 관리 도구

nice

nice는 프로세스의 우선순위를 설정하거나 변경하는 데 사용되는 명령어로, 프로세스가 실행될 때 CPU 스케줄러가 프로세스를 처리하는 우선순위를 조정할 수 있다.

renice

renice는 이미 실행 중인 프로세스의 우선순위를 변경하는 데 사용된다. 주로 시스템 관리자가 시스템 성능 최적화를 위해 사용한다.

시스템 성능 모니터링 도구

top

top은 실시간으로 시스템의 프로세스와 자원 사용 상태를 모니터링하는 데 유용한 도구이다. CPU, 메모리, 스왑 사용량 등을 실시간으로 확인할 수 있다.

htop

htop은 top 명령어의 향상된 버전으로, 더 나은 사용자 인터페이스와 다양한 기능을 제공한다. 프로세스 관리를 더 직관적이고 효율적으로 할 수 있다.

vmstat

vmstat는 가상 메모리 및 시스템 성능을 모니터링하는 도구로, CPU, 메모리, I/O 시스템의 성능 통계를 제공한다.

iostat

iostat는 시스템 입출력 장치의 성능을 모니터링하는 도구로, 디스크 및 기타 I/O 장치의 성능을 분석할 수 있다.

mpstat

mpstat는 멀티 프로세서 시스템의 CPU 사용률을 모니터링하는 도구로, 각 CPU의 사용률을 개별적으로 확인할 수 있다.