Systemd의 장점과 스케줄링 구성은 프로세스 성능에 영향을 미치지 않습니다.

Systemd의 장점과 스케줄링 구성은 프로세스 성능에 영향을 미치지 않습니다.

우리 팀은 세 개의 Python 스크립트를 실행하고 우리 제품에서 다른 제품으로 데이터를 전송하는 역할을 하는 프로세스를 생성하는 서비스 코드의 관리 및 유지 관리를 물려받았습니다. 한 프로세스는 당사 제품에서 생성된 파일을 한 유형에서 다른 유형으로 변환하고, 다른 프로세스는 X 파일을 압축하며, 세 번째 프로세스는 SFTP를 통해 해당 파일을 다른 컴퓨터로 전송합니다. 당사의 제품과 상속된 서비스는 모두 CentOS 7에서 실행됩니다.

제품을 구현한 이후 성능이 약간 저하되는 것을 확인했습니다. 내 임무는 서비스 발생률을 줄이고 CPU 소비가 낮을 때만 서비스가 실행되도록 하여 활동이 가장 많은 동안 주요 제품에 필요한 모든 리소스를 확보하도록 하는 것입니다. 서비스의 .service 파일을 사용하고, "[서비스]" 아래에 다음 매개변수를 추가하고, 성능 테스트 자동화를 실행하여 각 단계 후에 효과를 확인해 보았습니다.

  1. 나이스=19
  2. Nice=19 + ExecStart의 bin 경로에 "chrt -p 0; Nice; ionice"를 추가합니다.
  3. 좋음 = 19 + CPUSchedulingPolicy = 일괄 처리
  4. 좋음 = 19 + CPUSchedulingPolicy = 일괄 처리 + IOSchedulingClass = 최선의 노력 + IOSchedulingPriority = 7
  5. 좋음 = 19 + CPUSchedulingPolicy = 배치 + IOSchedulingClass = 유휴 + IOSchedulingPriority = 7
  6. 좋음 = 19 + CPUSchedulingPolicy = 유휴 + IOSchedulingClass = 유휴 + IOSchedulingPriority = 7

모든 변경 후 성능 테스트 자동화를 실행하기 전에 systemctl daemon-reloadsystemctl restart <application>.service.

성능 테스트 결과에 큰 변화는 보이지 않았습니다. 지난 두 달 동안의 평균 테스트 결과에는 변화가 없었으며, 테스트 결과 자체도 비교하지 않았습니다. 완전히 올바르게 구성하지 않은 것 같습니다. 내가 무엇을 놓치고 있나요?

서비스의 .service 파일이 있는 위치를 편집 /etc/systemd/system/하고 실행한 systemctl enable <application>.service다음 systemctl list-unit-files파일이 거기에 있고 활성화된 것으로 표시되었는지 확인했습니다.

관련 정보