저는 비대화형 작업 실행을 사용하고 batch
있으며 8개의 코어를 모두 사용하도록 로드 제한 요소를 늘리고 싶습니다. 저는 우분투 16.04 LTS를 사용하고 있습니다.
내가 이해한 바로는 작업을 완료하는 batch
데 사용됩니다 . atd
로드 비율이 임계값이라고 하는 임계값 아래로 떨어지면 작업이 시작됩니다.부하 제한 계수. options 을 man
사용하여 atd
이 요소를 변경할 수 있다고 합니다 -l
.
내 질문: 이 옵션을 어떻게 사용합니까 atd -l XX
? 예를 들어 atd -l 7.2
before 를 입력하면 batch
아무 것도 변경되지 않는 것 같습니다.
지금까지 내가 찾은 것 :
- 이 질문에는멀티스레딩을 통해 bash 스크립트를 실행하는 방법, 한 기여자는 "서비스 시작 스크립트"에서 이 작업을 수행할 것을 제안했습니다
atd
. 나는 그것이 그것을 언급하는 것 같지만/etc/init.d/atd
무엇을 변경해야할지 모르겠습니다. 다음 요점을 참조하십시오. - 이와 같은 페이지를 찾았습니다.http://searchitchannel.techtarget.com/feature/Understanding-run-level-scripts-in-Fedora-11-and-RHEL, 그들은 다음과 같이 제안합니다. "스크립트의 다음 줄(시작 부분) 수정
/etc/init.d/atd
: 매개변수를 사용하여 새로운 최소 시스템 로드 값을 지정하여daemon /usr/sbin/atd
이 줄로 바꿉니다 . ". 그러나 에는 그러한 줄이 없습니다 .-l
daemon /usr/sbin/atd -l 1.6
/etc/init.d/atd
여기서 소개하면 될 것 같은데 /etc/init.d/atd
, 어딘지 모르겠어요. 나는 그런 파일을 변경한 적이 없습니다.
batch
그렇다면 명령에 사용되는 부하 제한 요소를 어떻게 변경합니까 ?
답변1
해결책을 찾았습니다.
- 파일을 생성합니다:
/etc/init/atd.override
- 행 추가
exec atd -l 7.2
- 그 다음에
sudo service atd restart
이는 "Upstart init 데몬"의 작동 방식과 관련이 있습니다. 거기에 대한 설명:http://linux.die.net/man/5/init
파일이 /etc/init/atd.override
이미 존재하고 로 시작하는 줄이 포함되어 있으면 exec
해당 줄을 편집합니다.
답변2
/lib/systemd/system/atd.service
Ubuntu 16.04/systemd에서 편집되었습니다.
-l «load avg»
다음에 추가 ExecStart
:
$ cat /lib/systemd/system/atd.service
[Unit]
Description=Deferred execution scheduler
Documentation=man:atd(8)
[Service]
ExecStart=/usr/sbin/atd -f -l 7.2
IgnoreSIGPIPE=false
[Install]
WantedBy=multi-user.targe
실행하면 메시지 systemctl status atd
또는 ( service atd status
)가 표시됩니다.
경고: 디스크의 atd.service가 변경되었습니다. 장치를 다시 로드하려면 "systemctl daemon-reload"를 실행하세요.
이 명령을 실행하면 경고가 표시되지 않지만 실제로 변경 사항을 적용하려면 systemctl restart atd
( service atd restart)
.
답변3
이는 다음을 기반으로 합니다.웨슬리 B의 답변. 사용하는 경우 적용됩니다 systemctl
. 서비스 구성을 직접 업데이트하는 대신,씌우다정의될 수 있습니다. 운영 체제는 언제든지 서비스 구성을 대체할 수 있으므로 이렇게 하는 것이 가장 좋습니다. 이 답변은 Ubuntu 21.10에서 테스트되었습니다.
- 실행
sudo systemctl edit atd
하고 삽입하세요:
[Service]
ExecStart=
ExecStart=/usr/sbin/atd -f -l 3.0 -b 5
ExecStart=
위에서 이전 값을 무효화하려면 값이 없는 행이 필요합니다. 다음 줄에서는 필요 에 따라 -l
sum 값을 설정합니다.-b
남성페이지.
그러면 위의 줄이 작성됩니다 . /etc/systemd/system/atd.service.d/override.conf
이 파일을 추가할 때 추가되지 않은 경우 이를 실행해야 systemctl edit
할 수도 있습니다 .sudo systemctl daemon-reload
달리기
sudo systemctl restart atd
.확인 상태:
systemctl status atd
ps aux | grep [a]td
여기에는 맞춤 매개변수와 함께 서비스 및 프로세스 상태가 표시되어야 합니다.
답변4
내 근처에는 Ubuntu 16.04 LTS가 없지만 Debian 기반 시스템에서는 /etc/init.d/atd
일반적으로 다음과 같이 표시됩니다.
case "$1" in
start)
log_daemon_msg "Starting deferred execution scheduler" "atd"
start_daemon -p $PIDFILE $DAEMON -l 7
log_end_msg $?
-l 7
섹션을 추가한 위치를 확인하세요 . 그런 다음 재부팅 /etc/init.d/atd restart
하고 ps auxwww|grep atd
승인되었는지 확인 해야 합니다 .
때로는 /etc/default/atd
더 쉬운 접근 방식을 선택한다는 점에 유의하십시오(그리고 다음 업그레이드 시 변경 사항이 자동으로 지워지지 않기 때문에 더 좋습니다).