Ubuntu systemd는 100% CPU를 사용하고 sudo를 사용하여 수동으로 실행할 때는 20%만 사용합니다.

Ubuntu systemd는 100% CPU를 사용하고 sudo를 사용하여 수동으로 실행할 때는 20%만 사용합니다.

Golang에서 프로그램을 작성(컴파일)하고 systemd를 사용하여 실행했습니다. 장기 실행, 자동 재시작 및 부팅 시 실행이 필요하기 때문입니다. 하지만 CPU가 100%로 고정됩니다. 이에 비해 터미널을 통해 sudo로 실행하면 약 20% 정도만 사용된다. 도움이 된다면 이 프로그램은 I/O 집약적입니다.

나도 읽고 있어요이 게시물비슷한 문제가 있는 것 같습니다. 화면 뒤에서 실행하고 nohup에 systemd를 사용해 보았지만 여전히 같은 문제가 발생했습니다. 또한 I/O용 tty를 추가해 보았으나 그것도 작동하지 않는 것 같습니다.

작동시키거나 시스템화된 대안을 찾는 데 도움을 주시면 대단히 감사하겠습니다.

[Unit]
Description=Program Description
Documentation=N/A
After=network.target

[Service]
Environment=PORT=54731
Type=simple
User=root
ExecStart=/home/ubuntu/GoProxy/proxy
Restart=on-failure

[Install]
WantedBy=multi-user.target

편집: 내 프로그램은 내가 작성한 사용자 정의 프록시 솔루션입니다. 인증 확인 및 로그 파일에 기록되는 런타임 정보를 위해 파일을 읽어야 하기 때문에 집중적인 I/O입니다.

편집: sudo(루트 권한)가 있는 데몬을 사용하여 실행하고 충돌 시 다시 시작했는데 지금까지는 잘 작동했습니다. 그런데 cron을 사용하기 시작할 때 데몬을 자동으로 사용하여 서버를 시작하려고 시도했는데 이 작업을 수행할 때에도 동일한 문제가 발생했습니다. (저는 sudo를 통해 cron을 사용하므로 루트로 실행해야 합니다.)

관련 정보