Einführung
Bei der Bereitstellung oder Wartung einer SAS© Viya™-Umgebung stellt sich immer wieder die Frage: "Kann die Infrastruktur die Last bewältigen?".
Oft beschränken sich die Tests auf das Laden großer CSV-Dateien (Disk-I/O-Test) oder das Ausführen komplexer Modelle auf kleinen Tabellen. Um jedoch die Rechenleistung (CPU) und die verteilte Speicherverwaltung der CAS-Knoten (Cloud Analytic Services) wirklich zu testen, ist ein anderer Ansatz erforderlich.
Dieser Artikel stellt eine "Pure Code"-Methodik vor, um einen massiven Stresstest zu generieren, ohne Abhängigkeit von externen Dateien und vollständig im RAM ausgeführt.
Die Methodik
Unser Ansatz basiert auf drei technischen Säulen, um sicherzustellen, dass der Test die Infrastruktur und nicht die Festplatte beansprucht.
1. Die "Data Factory" im Speicher (In-Memory Generation)
Anstatt Terabytes an Daten von einer Festplatte zu laden (was die Netzwerk-/Speicherbandbreite testen würde), verwenden wir die CAS-Engine, um die Daten zu generieren.
Technik: Verwendung der Anweisung data / single=no.
Effekt: Der Code wird parallel auf allen CAS-Workern ausgeführt. Jeder verfügbare Prozessorkern wird verwendet, um Datenzeilen zu erstellen.
Volumen: Aus der kleinen Tabelle sashelp.cars wenden wir einen Multiplikationsfaktor (z.B. x100 000) an, um sofort Dutzende Millionen Zeilen zu erreichen.
2. ALU- und FPU-Sättigung (CPU-Stress)
Das Verschieben von Daten reicht nicht aus, um die Prozessoren aufzuheizen. Sie müssen komplexe Berechnungen durchführen.
Technik: Einführung transzendenter mathematischer Funktionen (SIN, COS, TAN, EXP, LOG) und Generierung von Zufallszahlen (RAND).
Effekt: Diese Operationen zwingen die Gleitkomma-Einheit (FPU) des Prozessors, zu 100% zu arbeiten, wodurch Arbeitslasten vom Typ Machine Learning oder komplexe Score-Berechnungen simuliert werden.
3. Das Netzwerk "Shuffle" und die Aggregation
Sobald die Daten erstellt sind, muss die Fähigkeit des Clusters zur Kommunikation getestet werden.
Technik: Verwendung von PROC MDSUMMARY mit einem GROUP BY über mehrere Variablen.
Effekt: Um die Daten zu gruppieren, muss CAS die Zeilen zwischen den verschiedenen Knoten neu verteilen (Shuffling). Dies testet die Inter-Knoten-Latenz und die Speicherbandbreite, während weiterhin CPU für statistische Berechnungen (Mittelwert, Standardabweichung) verbraucht wird.
4. Integrierte Metrologie
Der Code enthält ein Makrosystem (%tick / %tock), das die genaue Ausführungszeit jedes Schritts erfasst und einen automatischen Abschlussbericht generiert.
Der vollständige Code
Hier ist das vollständige Programm. Es ist eigenständig (benötigt keine externen Daten außer sashelp) und kann direkt in SAS© Studio kopiert und eingefügt werden.