-
Notifications
You must be signed in to change notification settings - Fork 224
enable perf_evaluation notifier #4090
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| # Copyright (c) Microsoft Corporation. | ||
| # Licensed under the MIT license. | ||
|
|
||
| """ | ||
| Performance Evaluation Notifier Package | ||
|
|
||
| This package provides performance evaluation capabilities for LISA tests, | ||
| including criteria validation and test result modification based on | ||
| performance metrics. | ||
| """ | ||
|
|
||
| __all__ = ["PerfEvaluation", "PerfEvaluationSchema", "MetricCriteria"] | ||
|
|
||
| from .perfevaluation import MetricCriteria, PerfEvaluation, PerfEvaluationSchema |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,180 @@ | ||||||
| # Performance evaluation criteria for NVMe storage tests | ||||||
| # Global configuration | ||||||
| statistics_times: 3 # Default: run each test 3 times to calculate statistics | ||||||
| error_threshold: 0.1 # Default: 10% tolerance | ||||||
| statistics_type: average # Default statistics method | ||||||
|
|
||||||
| # Test suite groups | ||||||
| groups: | ||||||
| - name: "NVMe Performance - L64s_v2 Specific" | ||||||
| description: "Performance criteria for Standard_L64s_v2 VM" | ||||||
| error_threshold: 0.20 | ||||||
| statistics_type: average | ||||||
| statistics_times: 1 | ||||||
|
|
||||||
| conditions: | ||||||
| - name: "test_case" | ||||||
| type: "metadata" | ||||||
| value: "perf_nvme" | ||||||
| - name: "vm_size" | ||||||
| type: "information" | ||||||
| value: "Standard_L64s_v2" | ||||||
|
|
||||||
| metrics: | ||||||
| # 32 cores, 8 disks performance criteria for L64s_v2 | ||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_read_iops" | ||||||
| min_value: 800000.0 | ||||||
| target_value: 1033000.0 | ||||||
| error_threshold: 0.25 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_write_iops" | ||||||
| min_value: 750000.0 | ||||||
| target_value: 950000.0 | ||||||
| error_threshold: 0.25 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randread_iops" | ||||||
| min_value: 500000.0 | ||||||
| target_value: 1200000.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randwrite_iops" | ||||||
| min_value: 150000.0 | ||||||
| target_value: 650000.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_read_latency" | ||||||
| max_value: 50.0 | ||||||
| target_value: 10 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_write_latency" | ||||||
| max_value: 60.0 | ||||||
| target_value: 10 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randread_latency" | ||||||
| max_value: 80.0 | ||||||
| target_value: 25.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_32_iodepth_1_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randwrite_latency" | ||||||
| max_value: 100.0 | ||||||
| target_value: 80.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| # Higher queue depth tests | ||||||
| - name: "qdepth_64_iodepth_2_numjob_32_setup_raw_bs_4k_cores_32_disks_8_read_iops" | ||||||
| min_value: 1200000.0 | ||||||
| target_value: 1500000.0 | ||||||
| error_threshold: 0.25 | ||||||
|
|
||||||
| - name: "qdepth_64_iodepth_2_numjob_32_setup_raw_bs_4k_cores_32_disks_8_write_iops" | ||||||
| min_value: 1000000.0 | ||||||
| target_value: 1300000.0 | ||||||
| error_threshold: 0.25 | ||||||
|
|
||||||
| - name: "qdepth_64_iodepth_2_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randread_iops" | ||||||
| min_value: 800000.0 | ||||||
| target_value: 1100000.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_64_iodepth_2_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randwrite_iops" | ||||||
| min_value: 700000.0 | ||||||
| target_value: 1000000.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| # Highest queue depth tests | ||||||
| - name: "qdepth_128_iodepth_4_numjob_32_setup_raw_bs_4k_cores_32_disks_8_read_iops" | ||||||
| min_value: 1800000.0 | ||||||
| target_value: 2200000.0 | ||||||
| error_threshold: 0.25 | ||||||
|
|
||||||
| - name: "qdepth_128_iodepth_4_numjob_32_setup_raw_bs_4k_cores_32_disks_8_write_iops" | ||||||
| min_value: 1600000.0 | ||||||
| target_value: 2000000.0 | ||||||
| error_threshold: 0.25 | ||||||
|
|
||||||
| - name: "qdepth_128_iodepth_4_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randread_iops" | ||||||
| min_value: 1200000.0 | ||||||
| target_value: 1600000.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "qdepth_128_iodepth_4_numjob_32_setup_raw_bs_4k_cores_32_disks_8_randwrite_iops" | ||||||
| min_value: 1000000.0 | ||||||
| target_value: 1400000.0 | ||||||
| error_threshold: 0.30 | ||||||
|
|
||||||
| - name: "TCP NTTTCP SRIOV Performance - D2ads_v5 Specific" | ||||||
| description: "Performance criteria for Standard_D2ads_v5 VM - TCP NTTTCP SRIOV" | ||||||
| error_threshold: 0.20 | ||||||
| statistics_type: average | ||||||
| statistics_times: 1 | ||||||
|
|
||||||
| conditions: | ||||||
| - name: "test_case" | ||||||
| type: "metadata" | ||||||
| value: "perf_tcp_ntttcp_sriov" | ||||||
| - name: "vm_size" | ||||||
| type: "information" | ||||||
| value: "Standard_D2ads_v5" | ||||||
|
|
||||||
| metrics: | ||||||
| - name: "buffer_size_conn_1" | ||||||
| min_value: 0 | ||||||
|
||||||
| min_value: 0 | |
| min_value: 0.0 |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Inconsistent use of integer vs float for min_value and target_value. Lines 143, 158, 168, 178 use integers while other metrics use floats. For consistency with the rest of the file, use float literals (e.g., 0.0, 100000.0, 1400.0, 1500.0).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent documentation formatting. The "Parameters:" section header uses standard formatting, but sub-parameters use different header styles. The parameter
criteria_fileuses 13 apostrophes (line 980),criteriauses 8 (line 986), andoutput_fileuses 11 (line 992).For consistency with reStructuredText formatting, all parameter subsections should use the same underline length and style. Use a consistent pattern like:
criteria_file """""""""""""This ensures proper rendering in Sphinx documentation.