This repository has been archived by the owner on Sep 3, 2023. It is now read-only.
Releases: poseidonos/air
Releases · poseidonos/air
AIR 0.8.7-beta
🔨 Updated
- Remove 'node sampling' option
AIR 0.8.6-beta
⭐ New Feature
- Add file related config option:
FileWrite
,RemainingFileCount
- Add file related cli option:
air-file-write
,air-remain-file-count
AIR 0.8.5-beta
🔨 Updated
- Remove 'new_' prefix of variables
- Remove latency data(vector) reserve scheme
AIR 0.8.4-beta
🔨 Updated
- Modify AIR configuration filter rule: Doesn't need to use "AIR_" prefix anymore
- Reinforce filter syntax
AIR 0.8.3-beta
🔨 Updated
- Support Address Sanitizer(ASAN) to detect memory corruption bugs
- Improve latency sampling scheme in a small workload
- Send output data even if periodic data is empty but cumulated data is not empty
- Update build sequence to perceive config file change
AIR 0.8.2-beta
🔨 Updated
- Updated compile option for debug friendly
- Updated config rule to check forbidden words(Node's key)
- Replaced Preprocessor's vector to an array to avoid dynamic memory reallocation
🚧 Fixed
- Fixed memory leak when Transfer::SendData(void) call
AIR 0.7.4-beta
[SHPOS-746] Change vector to array - Change Preprocessor's std::vector to array for avoiding dynamic memory reallocation - Add debug option Signed-off-by: isaac.baek <[email protected]>
AIR 0.8.0-beta
⭐ New Feature
- AIR output format is changed to distinguish between period data and cumulation data from object data.
- TUI supports
--file(f)=<filename>
option to read an offline output data. - In TUI, user can see previous timeline data.
TUI mode: [online], status: [pause], page: [7/12], interval: [1], timestamp: 2022-3-4:15:34:39, pid: 18544
key {↑/↓}: move, {→/←}: (un)fold, {b}: perv page, {n}: next page, {space}: play/pause
{1~9}: streaming interval, {i}: init, {o}: run, {x}: stop, {q(esc)}: quit
(*) Top
( ) +Group:COMMON
( )[O]++Node:LAT_PROCESS("latency")
""(0), index:0x200, filter:"AIR_0~AIR_1" Period(avg:650ns, median:610ns, max:3.0us, sample:100 ), Cumulation(avg:833ns, median:575ns, max:14us , sample:598 )
""(0), index:0x201, filter:"AIR_0~AIR_1" Period(avg:567ns, median:415ns, max:3.7us, sample:99 ), Cumulation(avg:807ns, median:554ns, max:11us , sample:597 )
( )[O]++Node:PERF_BENCHMARK("performance")
SUM Period(iops:2.0M , bw:8.1GB ), Cumulation(iops:2.4M , bw:9.9GB )
"CompleteIO"(18552), index:0x200, filter:"AIR_READ" Period(iops:967.4K , bw:4.0GB , count:[{"4096": 1131761}]), Cumulation(iops:1.2M , bw:4.7GB )
"CompleteIO"(18552), index:0x201, filter:"AIR_READ" Period(iops:1.0M , bw:4.2GB , count:[{"4096": 1187940}]), Cumulation(iops:1.3M , bw:5.1GB )
( ) +Group:COMPLETE
( )[O]++Node:LAT_COMPLETE("latency")
""(0), index:0x0, filter:"AIR_0~AIR_1" Period(avg:131ns, median:94ns , max:677ns, sample:100 ), Cumulation(avg:153ns, median:99ns , max:5.3us, sample:600 )
( )[.]..Node:Q_COMPLETION
⚡ Performance
- Benchmarked
airlog(...)
API
Run on (160 X 3700 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x80)
L1 Instruction 32 KiB (x80)
L2 Unified 1024 KiB (x80)
L3 Unified 28160 KiB (x4)
Logging type | Time | Iterations |
---|---|---|
Performance | 7.69ns | 1,000,000,000 |
Queue | 7.12ns | 1,000,000,000 |
Latency | 10.7ns | 1,000,000,000 |
Utilization | 5.42ns | 1,000,000,000 |
Count | 6.25ns | 1,000,000,000 |
Histogram_Linear | 14.4ns | 968,453,298 |
Histogram_Exponential | 60.2ns | 233,138,692 |
AIR 0.7.2-beta
⭐ New Feature
- Add a new logging type
Histogram
forairlog(node_name, filter_item, node_index, data)
API to support histogram information.
Now, user can define Histogram type node at AIR configuration file.
[BUCKET]
"Bucket: BUCKET_3, Bounds: [-100, 80), Scale: 20"
"Bucket: BUCKET_6, Bounds: (-10^3, 10^5), Scale: 10^"
[/BUCKET]
[NODE]
"Node: HIST_SAMPLE_3, Filter: AIR_Basic, Type: Histogram, Group: COMMON, IndexSize: 10, Bucket: BUCKET_3"
"Node: HIST_SAMPLE_6, Filter: AIR_Basic, Type: Histogram, Group: COMMON, IndexSize: 10, Bucket: BUCKET_6"
[/NODE]
And here is a reference code to use histogram type airlog(...)
airlog("HIST_SAMPLE_3", "AIR_BASE", 0, -100);
...
airlog("HIST_SAMPLE_6", "AIR_BASE", 1, 99999);
And also, user can read data using air_tui
( )[O]++Node:HIST_SAMPLE_3("histogram")
"HistogramLog"(19471), index:0x0, filter:"AIR_0", bucket_type:"linear"
Unit value:(minimum/average/maximum) count:(underflow -100 -80 -60 -40 -20 0 20 40 60 80 overflow)
Period -101 -50 -20 18.9K |18.9K |18.9K |18.9K |18.9K |18.9K |0 |0 |0 |0 | 0
Cumulation -101 -50 -20 94.3K |94.3K |94.3K |94.3K |94.3K |94.3K |0 |0 |0 |0 | 0
"HistogramLog"(19471), index:0x1, filter:"AIR_0", bucket_type:"linear"
Unit value:(minimum/average/maximum) count:(underflow -100 -80 -60 -40 -20 0 20 40 60 80 overflow)
Period 0 40 80 0 |0 |0 |0 |0 |0 |18.9K |18.9K |18.9K |18.9K | 18.9K
Cumulation 0 40 80 0 |0 |0 |0 |0 |0 |94.3K |94.3K |94.3K |94.3K | 94.3K
( )[O]++Node:HIST_SAMPLE_6("histogram")
"HistogramLog"(19471), index:0x0, filter:"AIR_0", bucket_type:"exponential"
Unit value:(minimum/average/maximum) count:(underflow -1.0K -100 -10 -1 0 1 10 100 1.0K 10.0K 100.0K overflow)
Period -1.0K 6.7K 100.0K 18.9K |18.9K |18.9K |18.9K |18.9K |18.9K |18.9K |18.9K |18.9K |18.9K | 18.9K
Cumulation -1.0K 6.7K 100.0K 94.3K |94.3K |94.3K |94.3K |94.3K |94.3K |94.3K |94.3K |94.3K |94.3K | 94.3K
⚡ Performance
- Benchmarked
airlog(...)
API
Run on (160 X 3700 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x80)
L1 Instruction 32 KiB (x80)
L2 Unified 1024 KiB (x80)
L3 Unified 28160 KiB (x4)
Logging type | Time | Iterations |
---|---|---|
Performance | 7.68ns | 1,000,000,000 |
Queue | 7.23ns | 1,000,000,000 |
Latency | 10.6ns | 1,000,000,000 |
Utilization | 5.49ns | 1,000,000,000 |
Count | 6.24ns | 1,000,000,000 |
Histogram_Linear | 14.4ns | 968,453,307 |
Histogram_Exponential | 60.0ns | 233,138,718 |
🚧 Fixed
- Fixed a bug in
air_tui
hang issue when a number overflowed - Fixed latency logging mismatch issue cause of too small buffer
AIR 0.7.1-beta
✔ Optimizations
-
Optimized
airlog(node_name, filter_item, node_index, data)
APIs
Run on (160 X 3700 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x80)
L1 Instruction 32 KiB (x80)
L2 Unified 1024 KiB (x80)
L3 Unified 28160 KiB (x4)
AIR_API/Type_Performance: 8.46ns -> 7.51ns (11% improvement)
AIR_API/Type_Latency: 12.6ns -> 10.7ns (15% improvement)
AIR_API/Type_Queue: 9.76ns -> 7.29ns (25% improvement)
AIR_API/Type_Utilization: 7.07ns -> 5.44ns (23% improvement)
AIR_API/Type_Count: 7.31ns -> 6.41ns (12% improvement) -
Optimized latency post-processing
Latency stress test on PSD server
AIR CPU Utilization: 80+% -> 20%
🚧 Fixed
- Fixed latency format in
air_tui
to float type if the value is one digit number - Fixed a bug in
air_tui
that ignored STDIN