진실은 수백 개의 데이터 세트를 정의하는 것이 올바르게 수행되면 대부분의 최신 z/OS 시스템에 스트레스를 가하는 것이 아닙니다. 각 할당은 시스템 기능 (예 : 카탈로그 기능, 할당 기능, 보안, SMF 로깅 등)의 예측 가능한 순서를 거치며 확실한 차이점이 있지만, 사용자의 작업 방식에 관계없이 각각 비슷한 시간이 소요됩니다.
일반적으로 새로운 평균 파일 할당은 최신 평균 조정 메인 프레임에서 100 밀리 초를 넘지 않아야합니다. 500 개의 데이터 세트를 할당하는 데 1 분 이상 걸릴 경우 IDCAMS 사용과 관련이없는 잘못된 것이있을 수 있습니다.
예를 들어, 귀하의 직업이 특정 양을 소비하면 리소스가 부족해지는 우선 순위가 낮은 클래스에 속할 수도 있습니다.이 경우에는 전달되는 대신 대기하고있을 수도 있습니다 (간단한 계산 CPU 시간을 경과 시간으로 나눈 값이 문제인지 알려줍니다). 이것이 문제라면, "치트 (cheat)"하는 일반적인 방법은 IDCAMS가 아닌 JCL에서 GDG를 정의하는 것입니다 ... JCL 할당은 일괄 처리 자의 우선 순위에서 이루어지며 일반적으로 작업 단계 자체보다 높습니다 . 이것이 오류라는 것은 IDCAMS의 오류에서 얻을 수있는 0이 아닌 반환 코드가 아니라 JCL 오류가 발생한다는 것을 의미합니다.
GDG 기본 정의를 확인하는 것이 좋습니다. 많은 수의 세대를 유지하면 일이 느려지는 경향이 있습니다. 아마도 더 적은 세대의 세대를 저장하는 더 좋은 계획을 세울 수 있습니다.
해야 할 일은 시스템 프로그래머가 카탈로그 환경을 적절하게 조정하는 작업을 잘 수행했는지 확인하는 것입니다. 캐싱, 버퍼링 등을 제어하고 제대로 조정 된 많은 매개 변수가 있습니다 좋은 성능을 원하면 카탈로그가 필수입니다. this IBM document.에 많은 좋은 정보가 있습니다. 대부분의 작업에는 특별한 승인이 필요하므로 직접 처리 할 수없는 내용 일 수 있습니다.
실제로 새 데이터 세트에 디스크 공간을 할당하는 경우 할당 매개 변수가 올바른지 확인해야합니다. 예를 들어, 동일한 디스크 볼륨에 많은 데이터 세트를 저장하는 경우 이는 잘못된 것입니다. 할당은 볼륨 수준에서 많은 일련 번호를 처리하므로 데이터 집합을 여러 디스크 볼륨에 분산시킬수록 충돌 가능성이 줄어 듭니다. RMF (또는 사이트에있을 수있는 모든 공급 업체 제품)와 같은 도구를 사용하여 대기열 지연 등을 모니터링 할 수 있습니다. 이는 종종 느린 할당 성능의 주범입니다.
이것은 반복적 인 프로세스이며, 실제로 그것에 대해 체계적으로 다루기를 원한다면 많은 GDG 파일을 할당하고 성능 통계를 수집하는 테스트 작업을 만듭니다. 할당 매개 변수와 시스템 설정이 다르기 때문에 처리량이 달라 지므로 추측하기보다는 최상의 조합으로 집에 돌아가고 싶을 것입니다. 경과 시간에 관계없이 CPU 및 I/O에 대한 서비스 단위 수를 얻을 수 있으며 가장 적합한 방법을 찾는 데 가장 좋은 지침입니다.
시스템이 올바르게 조정되었고 불필요한 지연이 발생하지 않는다고 확신하면 병렬 처리와 같은 기술을 통해 더 나은 경과 시간을 위해 CPU 사용량을 교환할지 여부를 결정할 수 있습니다. 당신이하고있는 일은 대부분 입출력 작업입니다. 그래서 시스템이 잘 조정되었다고 가정하면 파일의 서브 세트를 가진 여러 작업으로 단일 작업을 분할하면 약간 더 많은 프로세서 자원이 사용되지만 경과 시간에서 훨씬 빠르게 실행됩니다 관점. 가장 좋은 경우는 프로세서 엔진이 부족한 경우 또는 카탈로그 나 디스크를 높은 사용률로 사용할 때입니다.
할당을 여러 작업으로 분할하는 것은 사이트에서 병렬로 실행할 수 있다고 가정 할 때 (즉, 일괄 처리 개시자가 충분하기 때문에) 병렬 처리에 대한 간단한 경로입니다. 당신이 이것을하고 경과 시간이 하나의 커다란 일을 수행하는 것보다 낫지 않다면, 나는 위에서 설명한 것처럼 경쟁이 어디에 있는지 조사하고 연구 할 때입니다.
약간의 모험을하고 있다면, 많은 양의 할당을 병렬로 수행하는 멋진 방법은 IDCAMS 대신 BPXWDYN과 같은 UNIX 서비스 셸을 사용하는 것입니다 (GDGNT 플래그를 BPXWDYN으로 지정해야합니다). 올바르게 수행하면 할당의 하위 집합을 수행하는 모든 하위 프로세스를 시작하는 쉘 스크립트를 작성할 수 있습니다. 제대로 구성하면 병렬 처리를 위해 여러 주소 공간이 필요한 일괄 처리 작업이 아니라 하나의 큰 주소 공간에서 실행되는 이점이 있습니다.
모든 파일의 +1 버전을 할당하는 단일 작업 (또는 단계)을 실행 한 다음 후속 작업이 현재 (0) 세대를 참조한다고 하시겠습니까? 또한, "더 효율적"이라는 말은 ... 경과 시간을 줄이고 시스템 자원을 적게 사용하며 카탈로그 경합을 줄이는 등 무엇을 의미합니까? –
@ ValerieR 예 1 개의 직무가 +1이고 다른 모든 직무는 0입니다. 의견의 두 번째 부분은. 무엇보다도 최소한의 시스템 리소스를 사용하여 실행하고 싶지만 가능한 경우 카탈로그 경합이 적고 경과 시간도 짧으면 좋을 것입니다. – SaggingRufus
나쁜 질문은 아니지만 직접 테스트 해 보는 것도 쉽습니다. 하나의 IEFBR14 또는 IDCAMS 스탑에 500 개의 새로운 GDS를 할당하는 테스트 작업과 5 개의 GDS를 할당하는 100 개의 단계로 동일한 테스트 작업을 작성하십시오. –