이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 24.1. 일상 윈 토토 청소기버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

23.1. 일상적인 진공 스포츠 토토

포스트그레SQLPostgreSQL : 문서 : 8.3 : 토토 사이트명령은 정기적으로 실행되어야 합니다. 여러 가지 이유로 기초:

  1. 업데이트된 디스크 공간을 복구하거나 재사용하려면 행이 삭제되었습니다.

  2. 다음에서 사용하는 데이터 통계를 업데이트하려면PostgreSQL쿼리 플래너.

  3. 다음으로 인해 매우 오래된 데이터의 손실을 방지하기 위해거래 ID 랩어라운드.

의 표준형진공실행 가능 프로덕션 데이터베이스 작업과 병행하여. 다음과 같은 명령은선택, 삽입, 업데이트삭제하지만 계속해서 정상적으로 작동할 것입니다. 다음을 사용하여 테이블 정의를 수정할 수 없습니다. 다음과 같은 명령은테이블 변경 열 추가스포츠 토토되는 동안. 또한,진공상당한 양의 I/O 트래픽이 필요합니다. 이로 인해 다른 활성 세션의 성능이 좋지 않습니다. 있다 줄이기 위해 조정할 수 있는 구성 매개변수 백그라운드 진공 청소가 성능에 미치는 영향 — 참조섹션 18.4.4.

다행히도,자동 진공 데몬테이블 활동을 모니터링하고 수행진공필요할 때. 자동 진공 작동 동적으로 실행되므로 관리 일정이 더 잘 맞는 경우가 많습니다. 진공 청소기로 청소 중입니다.

23.1.1. 디스크 복구 중 공간

정상적으로포스트그레SQL작업, an업데이트또는삭제행은 즉시 제거되지 않습니다. 행의 이전 버전입니다. 이러한 접근 방식은 다음과 같은 이점을 얻기 위해 필요합니다. 다중 버전 동시성 제어의 이점(참조13장): 행 버전은 다음과 같을 수 없습니다. 잠재적으로 다른 사람에게 표시되는 동안 삭제되었습니다. 거래. 하지만 결국에는 오래되었거나 삭제된 행이 버전은 더 이상 어떤 거래에도 관심이 없습니다. 공간 이를 방지하려면 새 행에서 재사용하기 위해 차지하는 공간을 회수해야 합니다. 디스크 공간 요구 사항이 무한히 증가합니다. 이는 다음에 의해 수행됩니다. 달리기진공.

다음에는 두 가지 변형이 있습니다.진공명령. 첫 번째 형식은"게으른 진공"또는 그냥진공, 테이블과 인덱스에 죽은 스포츠 토토를 표시합니다. 향후 재사용을 위해; 그렇죠아님공간 회수 시도 공간이 스포츠 토토의 끝에 있지 않는 한 이 죽은 스포츠 토토에 의해 사용됩니다. 테이블 전용 잠금 장치와 테이블 전용 잠금 장치를 쉽게 얻을 수 있습니다. 파일의 시작 부분이나 중간 부분에 사용되지 않은 공간이 발생하지 않습니다. 파일이 단축되고 공간이 운영 체제로 반환됩니다. 시스템. 이 변형은진공될 수 있습니다 일반 스포츠 토토베이스 작업과 동시에 실행됩니다.

두 번째 형태는진공이 가득 참명령. 이는 회수를 위해 보다 공격적인 알고리즘을 사용합니다. 데드 로우 버전이 소비하는 공간. 그 어떤 공간이라도 에 의해 해제됨진공이 가득 참즉시 운영 체제로 반환되고 테이블 스포츠 토토는 디스크에 물리적으로 압축되어 있습니다. 불행하게도 이 변종은 의진공명령은 각 테이블에 대한 독점 잠금 동안진공 전체처리 중입니다. 따라서 자주 사용하는진공이 가득 참극단적으로 동시 스포츠 토토베이스 성능에 부정적인 영향 쿼리.

다행히도,자동 진공 데몬테이블 활동을 모니터링하고 수행진공14438_14579

제어를 원하는 관리자용진공자신, 표준 형식진공은(는) 디스크 공간의 안정적인 상태 사용. 디스크를 반납해야 하는 경우 운영 체제에 공간을 사용할 수 있습니다.진공 가득 참, 그러나 테이블이 앞으로 다시 성장할 것입니다. 보통 빈도 표준진공달리는 것이 더 좋습니다 드물게 접근함진공이 가득 참대량 업데이트된 테이블을 유지하기 위해 실행됩니다. 그러나 일부 경우 많이 업데이트된 테이블이 너무 오래 지속되어 자주 발생하지 않습니다.진공, 사용할 수 있습니다진공 가득 참또는클러스터성능을 회복하기 위해(테이블을 스캔하는 것이 훨씬 느림) 거의 데드 행만 포함).

autovacuum을 사용하지 않는 경우 한 가지 접근 방식은 예약하는 것입니다. 스포츠 토토베이스 전체진공하루에 한 번 사용량이 적은 기간에는 더 자주 보충 필요한 경우 많이 업데이트된 테이블을 진공 청소기로 청소합니다. (일부 업데이트 속도가 매우 높은 설치는 가장 바쁜 테이블은 몇 분에 한 번씩 자주 발생합니다.) 클러스터에 여러 데이터베이스가 있는 경우 잊지 마세요.진공각각; 프로그램vacuumdb도움이 될 것 같아요.

진공 가득 참다음에 권장됩니다. 당신이 행의 대부분을 삭제했다는 것을 알고 있는 경우 테이블의 안정된 상태 크기를 줄일 수 있도록 실질적으로진공이 가득 참더보기 공격적인 접근. 일반 사용진공, 아님진공 가득 참, 일상적인 진공 청소용 공간회복을 위해.

전체 내용이 삭제된 테이블이 있는 경우 주기적으로 수행하는 것을 고려하십시오.잘라내기사용하는 것보다삭제다음에 이어진공. 잘라내기없이 테이블의 전체 내용을 즉시 제거합니다. 후속 조치가 필요함진공또는진공이 가득 참지금은 사용하지 않는 것을 되찾기 위해 디스크 공간.

23.1.2. 플래너 업데이트 중 통계

포스트그레SQL질의 플래너는 콘텐츠에 대한 통계 정보에 의존합니다. 쿼리에 대한 좋은 계획을 생성하기 위한 테이블입니다. 이것들 통계는 다음에 의해 수집됩니다.분석명령으로 호출할 수 있습니다. 자체적으로 또는 선택적인 단계로진공. 합리적으로 갖는 것이 중요하다 정확한 통계가 없으면 잘못된 계획 선택이 발생할 수 있습니다. 데이터베이스 성능이 저하됩니다.

공간 복구를 위한 진공 청소와 마찬가지로 자주 업데이트되는 통계는 테이블보다 자주 업데이트되는 테이블에 더 유용합니다. 거의 업데이트되지 않는 것. 그러나 크게 업데이트된 테이블의 경우에도 다음과 같은 경우 통계 업데이트가 필요하지 않을 수 있습니다. 데이터의 통계적 분포는 크게 변하지 않습니다. 에이 간단한 경험 법칙은 최소 및 테이블 열의 최대값이 변경됩니다. 예를 들어, 에타임스탬프시간을 포함하는 열 행 업데이트의 최대값은 지속적으로 증가합니다. 행이 추가되고 업데이트됨에 따라; 그러한 열에는 아마도 필요할 것입니다 다음을 포함하는 열보다 더 자주 통계가 업데이트됩니다. 웹사이트에서 액세스한 페이지의 URL입니다. URL 열은 다음과 같습니다. 변경사항은 자주 수신되지만 통계적 분포는 해당 값 중 일부는 상대적으로 느리게 변경될 수 있습니다.

실행이 가능합니다분석켜짐 특정 테이블, 심지어는 테이블의 특정 열만 일부 통계를 더 많이 업데이트할 수 있는 유연성이 존재합니다. 애플리케이션에 필요한 경우 다른 것보다 자주. 에서 그러나 일반적으로 단지 분석하는 것이 가장 좋습니다. 빠른 작업이기 때문에 전체 데이터베이스. 그것은 통계적 무작위 샘플링이 아닌 테이블 행의 통계적 무작위 샘플링 모든 행을 읽습니다.

팁:열별로 조정했지만분석빈도가 그리 높지 않을 수 있습니다. 생산적이라면, 당신은 그 일을 할 가치가 있다고 생각할 수도 있습니다 열별로 세부 수준 조정 통계 수집자:분석. 에서 많이 사용되는 열어디절이 있고 매우 불규칙한 스포츠 토토가 있습니다. 분포에는 더 세밀한 스포츠 토토 히스토그램이 필요할 수 있습니다. 다른 칼럼보다 참조테이블 설정 변경 통계.

다행히도,자동 진공 데몬테이블 활동을 모니터링하고 수행분석필요할 때. 이는 다음을 제거합니다. 관리자가 수동으로 예약해야 함분석.

autovacuum을 사용하지 않는 경우 한 가지 접근 방식은 일정을 예약하는 것입니다. 스포츠 토토베이스 전체분석하루에 한 번 하루 중 사용량이 적은 시간; 이는 다음과 유용하게 결합될 수 있습니다. 매일 밤진공. 그러나 다음과 같은 사이트는 상대적으로 느리게 변화하는 테이블 통계는 다음과 같은 사실을 발견할 수 있습니다. 이건 과잉이고 빈도도 낮습니다.분석실행이면 충분합니다.

23.1.3. 거래 ID 방지 랩어라운드 실패

포스트그레SQL의 MVCC 트랜잭션 의미론은 비교 능력에 달려 있습니다. 거래 ID(XID) 숫자: 삽입 XID가 다음보다 큰 행 버전 현재 거래의 XID는"안에 미래"현재는 볼 수 없어야 합니다. 거래. 하지만 트랜잭션 ID의 크기가 제한되어 있으므로(32개) 이 글을 쓰는 시점의 비트) 오랫동안 실행되는 클러스터(자세한 내용은 40억 건 이상의 거래)이 어려움을 겪을 것입니다.트랜잭션 ID 랩어라운드: XID 카운터 0으로 돌아가고 갑자기 거래가 발생합니다. 과거에는 미래에 있는 것처럼 보입니다. 즉, 출력이 보이지 않게 됩니다. 즉, 치명적인 데이터 손실입니다. (실제로 데이터는 아직 남아 있지만, 당신은 그것에 접근할 수 없습니다.) 이를 방지하려면 진공청소기가 필요합니다. 모든 데이터베이스의 모든 테이블은 적어도 20억마다 한 번씩 거래.

주기적인 진공 청소로 문제가 해결되는 이유는 그PostgreSQL구별하다 특수 XIDFrozenXID. 이 XID는 항상 모든 일반 XID보다 오래된 것으로 간주됩니다. 일반 XID는 다음과 같습니다. 모듈로-2를 사용하여 비교31산술. 이는 다음을 의미합니다. 모든 일반 XID에는 20억 개의 XID가 있습니다."나이가 많은"그리고 20억이"최신"; 또 다른 말로는 일반 XID 공간은 끝점이 없는 원형입니다. 따라서 행 버전이 생성되면 특정 일반 XID, 행 버전은 다음과 같이 나타납니다."과거에"다음 2개를 위해 10억 개의 거래, 우리가 말하는 일반 XID에 관계없이 약. 행 버전이 2개 이상 후에도 여전히 존재하는 경우 10억 건의 거래가 갑자기 발생하는 것처럼 보일 것입니다. 미래. 데이터 손실을 방지하려면 이전 행 버전을 XID를 재할당함FrozenXID때때로 20억 건의 거래 기록에 도달하기 전에. 한 번 이 특별한 XID가 할당되면 다음과 같이 나타납니다."과거에"모두 정상으로 랩어라운드 문제와 관계없이 트랜잭션 등의 행 버전은 삭제되기 전까지는 유효합니다. 이다. 이전 XID의 재할당은 다음에서 처리됩니다.진공.

진공의 행동은 다음에 의해 제어됩니다. 구성 매개변수vacuum_freeze_min_age: 다음보다 오래된 모든 XIDvacuum_freeze_min_age트랜잭션이 대체됩니다. 으로FrozenXID. 더 큰 값vacuum_freeze_min_age보존 거래 정보는 길어지고 가치가 작아지면 증가합니다. 테이블 이전에 경과할 수 있는 트랜잭션 수 다시 진공청소기로 청소해야 합니다.

테이블이 진공 상태가 될 수 있는 최대 시간은 2입니다 10억 거래에서 마이너스vacuum_freeze_min_age그 당시 사용되었던 것입니다. 마지막으로 진공 청소기로 청소했습니다. 그 이상 오랫동안 진공 상태로 방치된다면 그러면 데이터가 손실될 수 있습니다. 이런 일이 발생하지 않도록 하려면 일어나다,자동 진공 데몬이보다 오래된 XID를 포함할 수 있는 모든 테이블에서 호출됩니다. 구성 매개변수에 의해 지정된 연령autovacuum_freeze_max_age. (이것은 autovacuum이 그렇지 않은 경우에도 발생합니다. 비활성화되었습니다.)

이것은 테이블이 달리 진공청소되지 않으면, autovacuum은 대략 한 번씩 호출됩니다.autovacuum_freeze_max_age마이너스vacuum_freeze_min_age거래. 공간 활용을 위해 정기적으로 진공 청소를 하는 테이블의 경우 목적상 이것은 별로 중요하지 않습니다. 그러나 정적의 경우 테이블(삽입을 수신하지만 업데이트는 수신하지 않는 테이블 포함) 또는 삭제), 공간을 확보할 필요가 없습니다. 매립을 극대화하는 것이 유용할 수 있습니다. 매우 큰 정적 환경에서 강제 autovacuum 사이의 간격 테이블. 분명히 다음 중 하나를 증가시켜 이를 수행할 수 있습니다.autovacuum_freeze_max_age또는 작성자 감소하는vacuum_freeze_min_age.

증가의 유일한 단점autovacuum_freeze_max_age그건요pg_clog데이터베이스 클러스터의 하위 디렉토리 커밋 상태를 저장해야 하므로 더 많은 공간을 차지합니다. 모든 거래에 대해 다시autovacuum_freeze_max_age수평선. 커밋 상태는 트랜잭션당 2비트를 사용하므로, 만약autovacuum_freeze_max_age최대값이 있습니다 허용되는 값은 20억입니다.pg_clog약 0.5GB까지 증가할 것으로 예상됩니다. 이것이라면 전체 스포츠 토토베이스 크기에 비해 사소한 설정입니다.autovacuum_freeze_max_age그쪽으로 최대 허용 값을 권장합니다. 그렇지 않으면 설정하십시오. 귀하가 기꺼이 허용하는 것에 따라pg_clog저장. (기본값은 2억 거래는 약 50MB로 해석됩니다.pg_clog저장.)

감소의 한 가지 단점vacuum_freeze_min_age그것이 원인이 될 수도 있다는 것입니다진공쓸모없는 일을 하기 위해: 테이블 행의 XID를FrozenXID은 그 후 곧 행이 수정되면 시간 낭비가 됩니다. 새로운 XID를 얻으려면). 따라서 설정이 충분히 커야 합니다. 해당 행은 변경될 가능성이 없을 때까지 고정되지 않습니다. 더. 이 설정을 줄이는 데 따른 또 다른 단점은 다음과 같습니다. 어떤 트랜잭션이 삽입되거나 수정되었는지에 대한 세부정보 행이 더 빨리 손실됩니다. 이런 정보가 가끔 들어옵니다 특히 무엇이 잘못되었는지 분석하려고 할 때 편리합니다. 데이터베이스 오류 후. 이 두 가지 이유로 인해 감소 이 설정은 완전히 정적인 경우를 제외하고는 권장되지 않습니다. 테이블.

데이터베이스에서 가장 오래된 XID의 나이를 추적하려면,진공XID 통계를 다음 위치에 저장합니다. 시스템 테이블pg_class그리고pg_database. 특히,relfrozenxid테이블의 열pg_class행에 동결이 포함되어 있습니다. 마지막으로 사용된 컷오프 XID진공해당 테이블에 대해. 이전의 모든 일반 XID 이 컷오프 XID보다 다음으로 대체됨이 보장됩니다.FrozenXID테이블 내. 마찬가지로,datfrozenxid열 스포츠 토토베이스의pg_database행은 해당 데이터베이스에 나타나는 일반 XID의 하한 — 테이블당 최소값입니다.relfrozenxid데이터베이스 내의 값. 에이 이 정보를 조사하는 편리한 방법은 다음을 실행하는 것입니다. 다음과 같은 쿼리:

pg_class에서 relname, age(relfrozenxid) 선택 WHERE relkind = 'r';
pg_database에서 datname, age(datfrozenxid) 선택;

나이열은 숫자를 측정합니다 컷오프 XID부터 현재까지의 거래 거래의 XID. a 직후진공, 나이(relfrozenxid)다음보다 조금 더 커야 합니다.vacuum_freeze_min_age설정 사용되었습니다(이후 시작된 트랜잭션 수에 따라 더 많음진공시작됨). 만일나이(relfrozenxid)초과autovacuum_freeze_max_age, autovacuum은 곧 테이블에 앉게 될 거예요.

어떤 이유로 autovacuum이 장치에서 이전 XID를 지우지 못하는 경우 테이블에서 시스템은 다음과 같은 경고 메시지를 보내기 시작합니다. 데이터베이스의 가장 오래된 XID가 천만 트랜잭션에 도달할 때 랩어라운드 지점에서:

경고: 스포츠 토토베이스 "mydb"는 177009986 트랜잭션 내에서 비워져야 합니다
힌트: 스포츠 토토베이스 종료를 방지하려면 "mydb"에서 전체 스포츠 토토베이스 VACUUM을 실행하세요.

이 경고를 무시하면 시스템이 종료되고 거래 수가 줄어들면 새로운 거래 실행을 거부합니다. 마무리까지 100만 개 이상의 거래가 남았습니다.

오류: 스포츠 토토베이스가 "mydb" 스포츠 토토베이스의 랩어라운드 스포츠 토토 손실을 방지하기 위한 명령을 허용하지 않습니다.
힌트: 포스트마스터를 중지하고 "mydb"에서 VACUUM에 대한 독립형 백엔드를 사용하십시오.

1백만 거래의 안전 마진은 다음을 허용하기 위해 존재합니다. 관리자는 수동으로 실행하여 데이터 손실 없이 복구합니다. 필수진공명령. 그러나, 시스템이 종료되면 시스템은 명령을 실행하지 않으므로 안전 종료 모드로 전환하는 유일한 방법은 다음과 같습니다. 서버를 중지하고 단일 사용자 백엔드를 사용하여 실행합니다.진공. 종료 모드가 아닙니다. 단일 사용자 백엔드에 의해 시행됩니다. 참조포스트그레자세한 내용은 참조 페이지 단일 사용자 백엔드 사용에 대해 알아보세요.

23.1.4. 자동 진공 데몬

시작포스트그레SQL8.1, 다음과 같은 선택적 기능이 있습니다.자동 진공, 그 목적은 실행진공그리고분석명령. 활성화되면 자동 진공화 다수의 테이블이 삽입되었는지 확인하고, 업데이트되거나 삭제된 튜플. 이러한 검사에서는 통계를 사용합니다. 수집 시설; 따라서 autovacuum을 사용할 수 없습니다. 않는 한track_counts다음으로 설정됨. 기본적으로 구성에서는 autovacuuming이 활성화되고 관련 구성 매개변수가 적절하게 설정되었습니다.

시작PostgreSQL8.3, autovacuum에는 다중 프로세스 아키텍처가 있습니다. 데몬 프로세스(라고 함)자동 진공화 런처, 시작을 담당하는자동 진공 작업자모든 데이터베이스에 대한 프로세스입니다. 런처는 시간에 따라 작업을 배포하지만 시도는 매 데이터베이스마다 하나의 작업자를 시작합니다.autovacuum_naptime초. 각 데이터베이스마다 하나의 작업자가 시작됩니다. 최대autovacuum_max_workers프로세스가 동시에 실행 중입니다. 개 이상인 경우autovacuum_max_workers데이터베이스가 처리되면 다음 데이터베이스가 처리됩니다 첫 번째 작업자가 끝나자마자. 작업자 프로세스는 데이터베이스 내의 각 테이블을 확인하고 실행합니다.진공및/또는분석필요에 따라.

autovacuum_max_workers설정은 언제든지 실행할 수 있는 작업자 수를 제한합니다. 만약에 여러 개의 대형 테이블을 모두 진공 청소기로 청소할 수 있습니다. 짧은 시간 안에 모든 autovacuum 작업자가 종료될 수 있습니다. 아주 오랫동안 그 테이블을 진공청소기로 청소했어요. 이로 인해 다른 테이블과 데이터베이스는 작업자가 청소할 때까지 비워지지 않습니다. 사용 가능해졌습니다. 근로자 수에는 제한이 없습니다. 단일 데이터베이스에 있을 수도 있지만 작업자는 피하려고 노력합니다. 다른 작업자가 이미 수행한 작업을 반복합니다. 실행 중인 작업자 수는 계산에 포함되지 않습니다.max_connections그렇지도superuser_reserved_connections한계.

다음 테이블relfrozenxid값 이상입니다autovacuum_freeze_max_age오래된 거래는 항상 비워집니다. 그렇지 않으면 두 가지 조건 적용할 작업을 결정하는 데 사용됩니다. 만약 마지막 이후 사용되지 않는 튜플 수진공초과"진공 임계값", 테이블이 진공청소되었습니다. 진공 임계값 다음과 같이 정의됩니다:

진공 임계값 = 진공 기본 임계값 + 진공 배율 인수 * 튜플 수

여기서 진공 베이스 임계값은autovacuum_vacuum_threshold, 진공 스케일 인수는autovacuum_vacuum_scale_factor, 튜플 수는pg_class.reltuples. 쓸모없는 튜플의 수는 다음과 같습니다. 통계 수집기에서 얻었습니다. 그것은 반정확하다 각각 업데이트된 개수업데이트그리고삭제작업. (그것은 단지 일부 정보가 손실될 수 있으므로 준정확합니다. 무거운 하중.) 분석을 위해 유사한 조건이 사용됩니다. 임계값은 다음과 같이 정의됩니다.

임계값 분석 = 기본 임계값 분석 + 배율 인자 분석 * 튜플 수

삽입된 총 튜플 수와 비교되거나 마지막 이후 업데이트됨분석.

기본 임계값 및 배율 인수는 다음에서 가져옵니다.postgresql.conf하지만 가능합니다 항목을 작성하여 테이블별로 재정의합니다. 시스템 카탈로그pg_autovacuum. 만약에pg_autovacuum35691_35820섹션 18.9더 보기 전역 설정에 대한 세부정보입니다.

기본 임계값 및 배율 인수 외에 각 테이블에 대해 설정할 수 있는 5개의 매개변수가 더 있습니다.pg_autovacuum. 첫 번째,pg_autovacuum.활성화됨, 다음으로 설정할 수 있습니다.거짓autovacuum 데몬에게 건너뛰도록 지시 그 특정 테이블은 완전히요. 이 경우 autovacuum은 거래 ID를 방지하기 위해 필요한 경우에만 테이블을 터치하세요. 랩 어라운드. 다음 두 매개변수인 진공 비용 지연 (pg_autovacuum.vac_cost_delay) 및 진공 비용 한도 (pg_autovacuum.vac_cost_limit)은 설정하는 데 사용됩니다. 에 대한 테이블별 값비용 기반 진공 지연기능. 마지막 두 매개변수는 (pg_autovacuum.freeze_min_age) 및 (pg_autovacuum.freeze_max_age)는 설정하는 데 사용됩니다. 에 대한 테이블별 값vacuum_freeze_min_age그리고autovacuum_freeze_max_age각각.

다음 값 중 하나라도pg_autovacuum음수로 설정되어 있습니다. 또는 행이 전혀 존재하지 않는 경우pg_autovacuum특정 테이블의 경우 해당 값은postgresql.conf사용됩니다.

현재 제작에 대한 지원은 없습니다pg_autovacuum항목(수동 수행 제외)삽입s를 카탈로그에 추가합니다. 이 기능 향후 릴리스에서는 개선될 예정이며, 카탈로그 정의가 변경됩니다.

주의

다음의 내용pg_autovacuum시스템 카탈로그는 현재는 생성된 데이터베이스 덤프에 저장되지 않습니다. 도구pg_dump그리고pg_dumpall. 당신이 덤프/다시 로드 주기 전반에 걸쳐 이를 보존하고 싶다면 카탈로그를 수동으로 덤프해야 합니다.

여러 작업자가 실행 중인 경우 비용 한도는 다음과 같습니다."균형"달리는 모든 것 중에서 작업자가 시스템에 미치는 총 영향이 동일하도록 실제로 실행 중인 작업자 수에 관계없이.