부하 심하지 않게 백그라운드 프로그램 실행 시키기
간혹 문제가 되기도 하고 이런것 까지 신경쓸 필요가 없기도 한 부분입니다.
서버에서 백그라운드로 무한 루프를 돌리다가 특정 조건이 되면 빠져 나오도록 하는 프로그램을 만들 필요가 있는 경우가 있는데요. 이럴때 쉴틈 없이 실행을 하게 되면 서버의 부하가 심해지는 경우가 있습니다. 이런경우 팁 같은 것입니다.
While( true )
{
# 디비인서트
# 계산
# 비교
# 부하 심하지 않게 하기
// $usleep = rand(555333, 888222);
// usleep($usleep);
$usleep = rand(111, 222);
usleep($usleep);
}
위와 같이 약간만 쉬어 줘도 실제 실행의 갯수에 따라 다를 수 있지만 서버의 부하가 심해지는 것을 방지 할 수 있습니다.
며칠씩 걸리는 것이라 111 마이크로초도 오래 쉬는 것이면 더 적은 수치를 줘도 없는것 보다 훨씬 부하가 심해지지 않습니다. 그러면서 일반적으로 처리 하는 방식에선 실제 처리 시간에는 큰 차이가 없습니다. 이 부분은 상황에 맞게 적절하게 조절하면 되는데 중요한것은 숨쉴 틈을 줘야 한다는 것이 핵심입니다.