3상 전압, 전류, kW, kVA 및 역률 변환 방법
균형 잡힌 3상 공식을 배우고, 선간 전압, 전류, kW, kVA 및 역률을 단계별로 변환하는 방법을 예제와 함께 확인하고 점검 범위를 살펴보세요.
만약 특정 명령어가 우분투 데스크톱 속도를 저하시키거나 서버 메모리 부족 현상을 일으킨다면, 해당 명령어와 그 자식 프로세스들을 CPU 할당량과 메모리 사용량 제한이 있는 systemd 관리형 cgroup에 넣어두세요. 최신 우분투 버전에서는 `cgroup.com` 명령어가 systemd-run --scope가장 빠르고 실용적인 방법입니다. 이 명령어는 명령어를 임시 스코프에서 실행하고, systemd는 cgroup 제어를 통해 제한을 적용합니다.
아래 예시는 작업 부하를 CPU 용량의 절반과 1GiB의 메모리로 제한합니다. 이러한 제한은 자식 프로세스를 포함한 전체 범위에 적용되며, 프로그램이 특정 속도로 실행될 것이라는 보장은 아닙니다.
사용량이 많은 프로세스는 대화형 애플리케이션과 경쟁할 수 있으며, 메모리 사용량이 많은 프로세스는 시스템이 메모리 회수 요청이나 메모리 부족 상태를 유발하게 할 수 있습니다. cgroup은 프로세스와 그 하위 프로세스를 그룹화하여 커널이 해당 그룹을 관리하고 제한할 수 있도록 합니다. 우분투의 systemd는 이러한 제어에 편리한 인터페이스를 제공합니다.
CPU 및 메모리 설정은 서로 다르게 동작합니다. CPUQuota=50%CPU 사용 시간은 스케줄링 기간 동안 평균적으로 하나의 CPU 용량의 절반으로 제한됩니다. 1 값은 200%사용 가능한 경우 최대 두 개의 CPU에 해당하는 시간을 나타냅니다. 이는 상한선이며, CPU 우선순위 또는 예약이 아닙니다. MemoryMax=1Gcgroup에 할당되는 메모리에 대한 엄격한 상한선을 설정합니다. 작업 부하가 이 상한선 이하로 유지되지 않으면 커널은 메모리를 회수하거나 해당 cgroup에 속한 프로세스에 대해 메모리 부족으로 인한 종료를 호출할 수 있습니다. 애플리케이션과 자식 프로세스를 위한 여유 공간을 확보하여 제한값을 선택하십시오.
systemd를 사용하는 Ubuntu 시스템은 일반적으로 통합 cgroup v2 계층 구조를 사용합니다. 다음에 표시되는 경로를 사용하기 전에 현재 설정을 확인하십시오.
stat -fc %T /sys/fs/cgroup
systemctl --version | head -n 1
첫 번째 명령은 올바른 파일 시스템 유형을 반환해야 합니다 cgroup2fs. 다른 파일 시스템 유형이 반환되면 이 문서의 cgroup v2 파일 경로는 그대로 적용할 수 없습니다. systemd 속성은 다른 계층 구조에서도 지원될 수 있지만, v2 경로를 복사하는 대신 해당 배포판의 문서를 참조하십시오.
속성이 거부되는 경우 정확한 systemd 버전을 확인하십시오. Ubuntu의 Noble 문서에서는 CPUQuota=이를 MemoryMax=리소스 제어 설정으로 설명하고 있으며, 이전 Ubuntu 릴리스에는 다른 systemd 버전이 포함될 수 있습니다.
프로그램을 실행하려면 systemd-run실제 실행 파일과 인수를 입력하세요. 현재 디렉터리의 명령을 실행하려면 를 사용 ./하고 모든 인수를 뒤에 전달하세요 --.
systemd-run --scope \
-p CPUQuota=50% \
-p MemoryMax=1G \
-- ./my-program --input data.csv

사용자 소유 명령의 경우, sudo먼저 루트 권한 없이 시도해 보세요. systemd에서 요청한 컨트롤러 또는 속성을 사용할 수 없다고 보고하는 경우, 사용자 관리자에게 해당 권한을 위임할 권한이 없을 수 있습니다. 시스템 전체 워크로드의 경우 루트 권한으로 다시 시도하는 것이 적절할 수 있지만, 이렇게 하면 명령의 보안 컨텍스트가 변경됩니다. 신뢰할 수 없는 프로그램을 루트 권한으로 함부로 실행하지 마세요. 시스템 관리자를 루트 권한으로 사용해야 하는 경우, sudo systemd-run --scope ...해당 변경 사항을 고려한 후에만 사용하세요.
명령이 실행되는 동안 터미널은 스코프에 연결된 상태를 유지합니다. 키를 누르면 Ctrl+C포그라운드 작업이 중단됩니다. 스코프는 일시적이며 일반적으로 프로세스가 종료되면 사라집니다. 이는 향후 실행에 대한 영구적인 정책이 아니라, 제한된 조건 하에서 명령을 시작하는 편리한 방법입니다.
systemd-run명령이 생성된 유닛 이름을 출력합니다. 일반적으로 와 같은 형식입니다 run-….scope. 명령이 실행 중인 동안 cgroup 트리를 나열합니다.
systemd-cgls
임시 스코프를 찾고 대상 프로그램과 그 하위 프로그램이 해당 스코프 아래에 나타나는지 확인하십시오. 이는 중요합니다. 스코프 외부에서 실행되는 하위 프로그램은 동일한 cgroup 상한의 적용을 받지 않기 때문입니다.

다음 명령에서 출력된 범위 이름을 사용하십시오. <범위 이름> 부분을 run-abc.scope실제 이름으로 바꾸십시오.
systemctl show run-abc.scope \
-p ControlGroup -p CPUQuotaPerSecUSec -p MemoryMax
CPUQuotaPerSecUSec=50000systemd의 할당 주기가 100ms일 때 50% 할당량과 일치합니다. MemoryMax=10737418241GiB는 바이트 단위입니다. 상위 cgroup 및 사용 가능한 컨트롤러가 실제 결과에 영향을 미칠 수 있으므로 모든 호스트가 모든 요청을 변경 없이 수락한다고 가정하는 것보다 실시간 값을 사용하는 것이 더 유용합니다.

이 ControlGroup속성은 cgroup 경로를 기준으로 상대적인 경로를 제공합니다 /sys/fs/cgroup. 이 경로를 셸 변수에 저장하면 명령어가 컴퓨터에 실제로 할당된 경로를 따라 실행됩니다.
UNIT=run-abc.scope
CG=$(systemctl show "$UNIT" -p ControlGroup --value)
printf 'Group: %s\n' "$CG"
cat "/sys/fs/cgroup$CG/cpu.max"
cat "/sys/fs/cgroup$CG/memory.max"
cgroup v2에서는 cpu.max할당량과 주기를 마이크로초 단위로 지정합니다. 예를 들어, 50000 100000는 100ms 주기마다 50ms의 CPU 시간을 의미합니다. 는 memory.max메모리 상한을 바이트 단위로 표시합니다. 파일이 누락된 경우, 스코프가 여전히 활성화되어 있고 커널이 cgroup v2를 사용하고 있는지 확인하십시오.

이름이 지정된 장기 실행 유닛을 시작하고 해당 유닛의 제한을 조정해야 하는 경우, systemd는 활성 유닛의 리소스 속성을 변경하는 기능을 지원합니다 sudo systemctl set-property --runtime my-worker.service CPUQuota=50% MemoryMax=1G. 예를 들어, `service_unique_resource_property`와 같은 속성을 변경할 수 있습니다. 이 기능은 해당 서비스의 cgroup에 적용되며 적절한 권한이 필요합니다. systemd는 PID를 알고 있다는 이유만으로 이미 실행 중인 프로세스를 임의로 연결하지 않습니다. 일회성 프로세스의 경우, 해당 프로세스를 정상적으로 종료한 후 제한된 범위에서 다시 시작하십시오. 지속적인 서비스의 경우, 서비스 유닛 또는 systemd 드롭인에서 속성을 구성하고 적절한 유지 관리 기간 동안 다시 시작하십시오.
검사하는 동안 작업 부하를 활성 상태로 유지하십시오. systemd-cgls프로세스와 그 하위 프로세스가 의도한 범위 내에 배치되는지, systemctl show요청된 속성이 보고되는지, 그리고 해당 cpu.max파일 memory.max이 유한한 값을 가지고 존재하는지 확인하십시오. 프로세스가 종료되면 임시 범위가 제거되므로 cgroup 파일이 사라질 수 있습니다.
할당량은 CPU 시간을 제한하지만 데스크톱 모니터에서 고정된 백분율을 보장하지는 않으며, 하드웨어 메모리 제한은 애플리케이션이 제한량보다 더 많은 메모리를 필요로 할 경우 오류를 발생시킬 수 있습니다. 작업 부하가 불안정해지면 애플리케이션을 중지하고 측정된 안전 값으로 제한량을 높이거나, MemoryHigh=더 높은 할당량과 함께 더 완화된 부하 임계값을 사용하십시오 MemoryMax=. 정확한 동작 방식은 설치된 systemd 및 커널 문서를 참조하십시오. 가장 권위 있는 참조 자료는 Ubuntu systemd-run 설명서 , Ubuntu systemd 리소스 제어 설명서 및 Linux 커널 cgroup v2 설명서 입니다 .
균형 잡힌 3상 공식을 배우고, 선간 전압, 전류, kW, kVA 및 역률을 단계별로 변환하는 방법을 예제와 함께 확인하고 점검 범위를 살펴보세요.
CPUQuota 및 MemoryMax를 사용하여 systemd 범위 내에서 워크로드를 실행한 다음 cgroup v2를 통해 제한 사항을 확인합니다.
Ubuntu 24.04에서 dnscrypt-proxy를 Pi-hole의 로컬 DoH 브리지로 설정하고, localhost 전용 리스너, 리졸버 선택, DNS 전환 전 검사 기능을 추가합니다.
앱이나 하드웨어 문제를 해결하기 전에 우분투의 터치패드 설정을 확인하고, 웨이랜드(Wayland)가 제대로 작동하는지 확인하고, GNOME에 내장된 스와이프 기능을 테스트해 보세요.
데비안 12에서 디스크 두 개를 사용하여 RAID 1 데이터 어레이를 생성 및 검증하고, 안전하게 포맷한 다음, 재부팅 후 자동으로 구성 및 마운트되도록 설정합니다.
기존 Debian 12 스왑 파티션에 대한 임의 키 암호화를 설정하고, 활성 dm-crypt 매핑을 확인하고, 최대 절전 모드의 장단점을 이해합니다.
Ubuntu 24.04 SSH 계정을 chroot 환경, 적절한 권한, 일치 규칙 및 안전한 테스트를 통해 지정된 SFTP 폴더로 제한하고 셸 액세스 권한은 부여하지 않습니다.
우분투의 dpkg 프런트엔드 잠금을 소유하는 프로세스를 찾아 패키지 작업이 완료될 때까지 기다리고, 잠금 파일을 삭제하지 않고 중단된 설치를 복구합니다.
Timeshift를 사용하여 Ubuntu Desktop에서 Btrfs 시스템 스냅샷을 예약 설정하고, Ubuntu 서브볼륨 레이아웃을 확인하고, 보존 기간을 선택하고, 스냅샷으로 보호할 수 없는 항목을 이해합니다.
보다 안전한 데비안 12에서 테스팅 버전으로의 마이그레이션을 계획하세요: 스테이블 버전을 거쳐 업그레이드하고, 백업하고, APT 소스를 정리하고, 종속성 변경 사항을 시뮬레이션하고, 변경 사항을 확인하세요.