crontab은 서버 성능과 관련이 있습니까?

crontab은 서버 성능과 관련이 있습니까?

저는 Solaris 10을 사용하고 있으며 서버의 crontab에 여러 cronjob을 추가했습니다.

현재 내 crontab에는 30개의 cronjob이 있습니다.

크론잡이 필요합니다8 시간다른 크론 작업을 완료하려면 다음이 필요합니다.5 시간완료하고 나머지는 일반적인 cronjob입니다(최대 30분 소요).

프로덕션 서버이다보니 서버 성능이 걱정되네요.

  1. 내 서버 성능과 어떤 관련이 있습니까?
  2. cronjob 수에 상한이 있나요?

답변1

짧은 대답: 그렇습니다.


더 긴 답변:

  1. 에 의존한다무엇cronjob이 할 것이고언제밤에(또는 서버의 용도에 따라 사무실에 아무도 없을 때) 계산량이 많은(성능 저하) 작업을 실행해도 문제가 발생하지 않도록(물론 근무 시간 전에 완료하는 경우) 그렇게 합니다.
  2. 제한이 있는 경우(확실하지 않음) 30개보다 훨씬 많을 수 있습니다. 어쨌든 너무 많은 cronjob을 갖는 것은 약간 이상해 보이지만(내가 틀렸다면 누군가 정정해 줌) 더 많은 정보가 없으면 더 나은 솔루션이 있는지 말할 수 없습니다.

(이것은 답변에 대한 첫 번째 근사치일 뿐이며, 이 일반성으로는 완전히 답변할 수 있을지 의문입니다.)

당신은 또한 읽을 수 있습니다nice(Solaris에 존재하는지 확실하지 않습니다). 이것솔라리스 리소스 관리 (1),(2)수행하는 작업 유형에 따라 유용할 수도 있습니다.

답변2

물론 크론 작업은 어떤 방식으로든 성능에 영향을 미칩니다. 크론 작업에 8시간이 걸린다면 아마도 뭔가 큰 일을 하고 있는 것일 것입니다. 근데 뭐? 여기에 문제가 있습니다.

리소스를 두고 경쟁하는 여러 백그라운드 작업이 있는 경우 완료하는 데 시간이 더 오래 걸립니다. 예를 들어, 8시간 작업과 5시간 작업이 별도로 실행되는 경우 두 작업을 동시에 실행하면 동일한 리소스(디스크 I/O, 네트워크 대역폭, RAM 등)를 두고 경쟁하게 됩니다. 반대로, 서로 다른 리소스를 사용하는 경우(예: 하나는 CPU에 바인딩되고 다른 하나는 디스크에 바인딩됨) 자정에 시작하면 오전 8시에 완료될 수 있습니다.

따라서 분산형 집약적 작업의 규칙은 자원을 광범위하게 할당하는 것입니다. 각 작업에 필요한 사항(디스크 I/O, 네트워크 대역폭, RAM, CPU 등)을 파악한 다음 리소스 경합이 없도록 일정을 만듭니다. 예를 들어, RAM이 4GB이고 작업 #1에 2GB가 필요하고 작업 #2와 작업 #3에 각각 2GB가 필요하며 일반 서버 작동에 2GB가 필요한 경우 작업 #1이 작업 #2와 동시에 실행되지 않도록 해야 합니다. 와 #3이 있지만, #2와 #3을 동시에 실행해도 괜찮습니다. 일반적으로 서로 다른 디스크 풀에 액세스하는 여러 작업이 없으면 디스크 집약적인 작업을 한 번에 하나씩 실행해야 합니다. CPU는 오버헤드 없이 공유될 수 있습니다. 프런트엔드 작업을 위해 약간의 여유 공간이 남아 있는지 확인하세요( nice도움이 될 수 있음).

관련 정보