diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_alloc_prof.html b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_alloc_prof.html new file mode 100644 index 000000000..96cb331a1 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_alloc_prof.html @@ -0,0 +1,3125 @@ + + + + + + + +

Allocation profile

+
  
+
Produced by async-profiler
+ +
+

+

Matched:

+ diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_cpu_prof.html b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_cpu_prof.html new file mode 100644 index 000000000..207e31a50 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_cpu_prof.html @@ -0,0 +1,9911 @@ + + + + + + + +

CPU profile

+
  
+
Produced by async-profiler
+ +
+

+

Matched:

+ diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_lock_prof.html b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_lock_prof.html new file mode 100644 index 000000000..3bd9787a2 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/get_lock_prof.html @@ -0,0 +1,1066 @@ + + + + + + + +

Lock profile

+
  
+
Produced by async-profiler
+ +
+

+

Matched:

+ diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_alloc_prof.html b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_alloc_prof.html new file mode 100644 index 000000000..7dbc22b49 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_alloc_prof.html @@ -0,0 +1,3166 @@ + + + + + + + +

Allocation profile

+
  
+
Produced by async-profiler
+ +
+

+

Matched:

+ diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_cpu_prof.html b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_cpu_prof.html new file mode 100644 index 000000000..a65351af9 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_cpu_prof.html @@ -0,0 +1,10526 @@ + + + + + + + +

CPU profile

+
  
+
Produced by async-profiler
+ +
+

+

Matched:

+ diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_lock_prof.html b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_lock_prof.html new file mode 100644 index 000000000..a1f9fe773 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/asyncprof/put_lock_prof.html @@ -0,0 +1,1046 @@ + + + + + + + +

Lock profile

+
  
+
Produced by async-profiler
+ +
+

+

Matched:

+ diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/report5.md b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/report5.md new file mode 100644 index 000000000..d34d381c1 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/report5.md @@ -0,0 +1,49 @@ +# Отчёт по 5 стейджу. + +К сожалению, так как 4 стейдж я не делал, сравнений не будет, +так как по сравнению с 3 серьёзные изменения в структуре. + +Также были изменены [скрипты](../scripts) в связи с добавлением +параметров `ack = 2 и from = 3`, а также в скрипты была добавлена +рандомизацией кластера. + +## wrk + +[пример](../report5/wrk/put) +Тестил на 4 тредах и 16 коннекшенах. Точка разладки `12500`, +соответственно тестим на 10000. Стоит отметить стабильную +работу с многопоточкой, и получается заметное улучшение по скорости +относительнно первых стейджей. + +## asyncprof + +### cpu + +[put cpu](../report5/asyncprof/put_cpu_prof.html) +[get cpu](../report5/asyncprof/get_cpu_prof.html) + +Сразу стоит отметить значительное изменение +распределие ресурсов процессора.
+Так `remote` занимает всего около 15% ресурсов процессора, так же как и +обработка таски `completableFeature` и обработка её завершения +в то время как почти вся остальная часть ресурсов уходит на скедулер и пакет +`jdk/internal/net` + +### alloc + +[put alloc](../report5/asyncprof/put_alloc_prof.html) +[get alloc](../report5/asyncprof/get_alloc_prof.html) + +Примерно 30 процентов приходится на всё тот же скедулер, +а аллокации непосредственно обработки запроса (50%) связаны +с хэдерами запросов, примерно 20%. Остальное это аллокации связанные с `CompletableFeature`, +локальными переменными и получением результата. + +### lock + +[put lock](../report5/asyncprof/put_lock_prof.html) +[get lock](../report5/asyncprof/get_lock_prof.html) + +С точки зрения локов картина довольно простая `CompletableFuture` +забирают примерно 80%, что вполне логично. + diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/wrk/get b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/wrk/get new file mode 100644 index 000000000..04e22b83e --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/wrk/get @@ -0,0 +1,121 @@ +/wrk -d 30 -t 4 -c 16 -R 10000 -L -s /home/sbread/Desktop/labs/HLS/2024-highload-dht/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/get.lua http://localhost:8080 +Running 30s test @ http://localhost:8080 + 4 threads and 16 connections + Thread calibration: mean lat.: 1.413ms, rate sampling interval: 10ms + Thread calibration: mean lat.: 1.369ms, rate sampling interval: 10ms + Thread calibration: mean lat.: 1.405ms, rate sampling interval: 10ms + Thread calibration: mean lat.: 1.378ms, rate sampling interval: 10ms + Thread Stats Avg Stdev Max +/- Stdev + Latency 1.58ms 2.27ms 44.00ms 98.69% + Req/Sec 2.63k 236.75 4.55k 80.29% + Latency Distribution (HdrHistogram - Recorded Latency) + 50.000% 1.32ms + 75.000% 1.77ms + 90.000% 2.21ms + 99.000% 5.20ms + 99.900% 38.49ms + 99.990% 42.56ms + 99.999% 43.55ms +100.000% 44.03ms + + Detailed Percentile spectrum: + Value Percentile TotalCount 1/(1-Percentile) + + 0.194 0.000000 1 1.00 + 0.702 0.100000 19992 1.11 + 0.877 0.200000 39985 1.25 + 1.023 0.300000 60009 1.43 + 1.166 0.400000 80055 1.67 + 1.315 0.500000 99965 2.00 + 1.394 0.550000 109939 2.22 + 1.478 0.600000 119966 2.50 + 1.568 0.650000 129905 2.86 + 1.666 0.700000 139942 3.33 + 1.772 0.750000 149863 4.00 + 1.830 0.775000 154863 4.44 + 1.892 0.800000 159889 5.00 + 1.959 0.825000 164901 5.71 + 2.031 0.850000 169865 6.67 + 2.113 0.875000 174931 8.00 + 2.157 0.887500 177393 8.89 + 2.207 0.900000 179830 10.00 + 2.263 0.912500 182392 11.43 + 2.327 0.925000 184852 13.33 + 2.405 0.937500 187361 16.00 + 2.449 0.943750 188567 17.78 + 2.505 0.950000 189855 20.00 + 2.569 0.956250 191084 22.86 + 2.647 0.962500 192318 26.67 + 2.751 0.968750 193573 32.00 + 2.827 0.971875 194188 35.56 + 2.923 0.975000 194811 40.00 + 3.051 0.978125 195436 45.71 + 3.233 0.981250 196054 53.33 + 3.507 0.984375 196680 64.00 + 3.699 0.985938 196992 71.11 + 3.979 0.987500 197303 80.00 + 4.531 0.989062 197615 91.43 + 5.899 0.990625 197927 106.67 + 7.459 0.992188 198242 128.00 + 8.479 0.992969 198396 142.22 + 11.551 0.993750 198552 160.00 + 15.055 0.994531 198708 182.86 + 18.927 0.995313 198865 213.33 + 22.879 0.996094 199020 256.00 + 24.815 0.996484 199100 284.44 + 26.799 0.996875 199177 320.00 + 28.991 0.997266 199254 365.71 + 31.199 0.997656 199333 426.67 + 33.567 0.998047 199410 512.00 + 34.623 0.998242 199450 568.89 + 35.519 0.998437 199488 640.00 + 36.511 0.998633 199527 731.43 + 37.663 0.998828 199568 853.33 + 38.591 0.999023 199609 1024.00 + 39.135 0.999121 199625 1137.78 + 39.551 0.999219 199644 1280.00 + 40.031 0.999316 199667 1462.86 + 40.287 0.999414 199684 1706.67 + 40.831 0.999512 199703 2048.00 + 41.055 0.999561 199713 2275.56 + 41.215 0.999609 199722 2560.00 + 41.375 0.999658 199734 2925.71 + 41.599 0.999707 199742 3413.33 + 41.983 0.999756 199753 4096.00 + 42.047 0.999780 199757 4551.11 + 42.143 0.999805 199763 5120.00 + 42.207 0.999829 199766 5851.43 + 42.335 0.999854 199771 6826.67 + 42.463 0.999878 199778 8192.00 + 42.559 0.999890 199783 9102.22 + 42.559 0.999902 199783 10240.00 + 42.559 0.999915 199783 11702.86 + 42.623 0.999927 199788 13653.33 + 42.623 0.999939 199788 16384.00 + 42.687 0.999945 199791 18204.44 + 42.687 0.999951 199791 20480.00 + 42.719 0.999957 199793 23405.71 + 42.719 0.999963 199793 27306.67 + 42.751 0.999969 199794 32768.00 + 42.911 0.999973 199795 36408.89 + 42.943 0.999976 199796 40960.00 + 42.943 0.999979 199796 46811.43 + 43.103 0.999982 199797 54613.33 + 43.103 0.999985 199797 65536.00 + 43.551 0.999986 199798 72817.78 + 43.551 0.999988 199798 81920.00 + 43.551 0.999989 199798 93622.86 + 43.903 0.999991 199799 109226.67 + 43.903 0.999992 199799 131072.00 + 43.903 0.999993 199799 145635.56 + 43.903 0.999994 199799 163840.00 + 43.903 0.999995 199799 187245.71 + 44.031 0.999995 199800 218453.33 + 44.031 1.000000 199800 inf +#[Mean = 1.575, StdDeviation = 2.271] +#[Max = 44.000, Total count = 199800] +#[Buckets = 27, SubBuckets = 2048] +---------------------------------------------------------- + 299922 requests in 30.00s, 19.94MB read +Requests/sec: 9997.21 +Transfer/sec: 680.65KB diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/wrk/put b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/wrk/put new file mode 100644 index 000000000..891aa39a3 --- /dev/null +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/report5/wrk/put @@ -0,0 +1,117 @@ +./wrk -d 30 -t 4 -c 16 -R 10000 -L -s /home/sbread/Desktop/labs/HLS/2024-highload-dht/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/put.lua http://localhost:8080 +Running 30s test @ http://localhost:8080 + 4 threads and 16 connections + Thread calibration: mean lat.: 6.402ms, rate sampling interval: 10ms + Thread calibration: mean lat.: 6.361ms, rate sampling interval: 10ms + Thread calibration: mean lat.: 6.064ms, rate sampling interval: 10ms + Thread calibration: mean lat.: 6.428ms, rate sampling interval: 10ms + Thread Stats Avg Stdev Max +/- Stdev + Latency 1.64ms 1.73ms 34.72ms 96.25% + Req/Sec 2.64k 236.32 4.55k 70.93% + Latency Distribution (HdrHistogram - Recorded Latency) + 50.000% 1.37ms + 75.000% 1.82ms + 90.000% 2.35ms + 99.000% 8.48ms + 99.900% 24.69ms + 99.990% 30.77ms + 99.999% 34.46ms +100.000% 34.75ms + + Detailed Percentile spectrum: + Value Percentile TotalCount 1/(1-Percentile) + + 0.241 0.000000 1 1.00 + 0.738 0.100000 19989 1.11 + 0.922 0.200000 40056 1.25 + 1.078 0.300000 60083 1.43 + 1.225 0.400000 79931 1.67 + 1.370 0.500000 99947 2.00 + 1.444 0.550000 109936 2.22 + 1.522 0.600000 119880 2.50 + 1.609 0.650000 129875 2.86 + 1.706 0.700000 139928 3.33 + 1.822 0.750000 149932 4.00 + 1.886 0.775000 154904 4.44 + 1.955 0.800000 159860 5.00 + 2.033 0.825000 164829 5.71 + 2.121 0.850000 169833 6.67 + 2.225 0.875000 174869 8.00 + 2.283 0.887500 177328 8.89 + 2.351 0.900000 179833 10.00 + 2.433 0.912500 182350 11.43 + 2.531 0.925000 184803 13.33 + 2.675 0.937500 187315 16.00 + 2.783 0.943750 188571 17.78 + 2.919 0.950000 189798 20.00 + 3.113 0.956250 191048 22.86 + 3.371 0.962500 192302 26.67 + 3.721 0.968750 193550 32.00 + 3.919 0.971875 194173 35.56 + 4.159 0.975000 194797 40.00 + 4.487 0.978125 195419 45.71 + 4.999 0.981250 196044 53.33 + 5.891 0.984375 196665 64.00 + 6.499 0.985938 196977 71.11 + 7.175 0.987500 197289 80.00 + 7.931 0.989062 197601 91.43 + 8.935 0.990625 197916 106.67 + 10.319 0.992188 198227 128.00 + 11.255 0.992969 198382 142.22 + 12.343 0.993750 198538 160.00 + 13.543 0.994531 198695 182.86 + 14.791 0.995313 198850 213.33 + 16.255 0.996094 199008 256.00 + 17.087 0.996484 199084 284.44 + 18.047 0.996875 199164 320.00 + 18.847 0.997266 199241 365.71 + 20.239 0.997656 199319 426.67 + 21.519 0.998047 199396 512.00 + 22.111 0.998242 199436 568.89 + 22.767 0.998437 199476 640.00 + 23.455 0.998633 199514 731.43 + 24.127 0.998828 199552 853.33 + 24.751 0.999023 199591 1024.00 + 24.975 0.999121 199612 1137.78 + 25.199 0.999219 199630 1280.00 + 25.439 0.999316 199650 1462.86 + 25.935 0.999414 199670 1706.67 + 26.207 0.999512 199689 2048.00 + 26.431 0.999561 199699 2275.56 + 26.671 0.999609 199708 2560.00 + 26.927 0.999658 199718 2925.71 + 27.359 0.999707 199729 3413.33 + 27.615 0.999756 199738 4096.00 + 27.919 0.999780 199743 4551.11 + 28.079 0.999805 199747 5120.00 + 28.415 0.999829 199752 5851.43 + 28.703 0.999854 199757 6826.67 + 29.119 0.999878 199762 8192.00 + 30.655 0.999890 199765 9102.22 + 30.863 0.999902 199767 10240.00 + 31.247 0.999915 199769 11702.86 + 31.999 0.999927 199772 13653.33 + 32.399 0.999939 199774 16384.00 + 32.895 0.999945 199776 18204.44 + 33.087 0.999951 199777 20480.00 + 33.407 0.999957 199778 23405.71 + 33.535 0.999963 199779 27306.67 + 33.951 0.999969 199780 32768.00 + 34.175 0.999973 199781 36408.89 + 34.239 0.999976 199782 40960.00 + 34.239 0.999979 199782 46811.43 + 34.271 0.999982 199783 54613.33 + 34.271 0.999985 199783 65536.00 + 34.463 0.999986 199784 72817.78 + 34.463 0.999988 199784 81920.00 + 34.463 0.999989 199784 93622.86 + 34.751 0.999991 199786 109226.67 + 34.751 1.000000 199786 inf +#[Mean = 1.644, StdDeviation = 1.726] +#[Max = 34.720, Total count = 199786] +#[Buckets = 27, SubBuckets = 2048] +---------------------------------------------------------- + 299909 requests in 30.00s, 16.87MB read +Requests/sec: 9997.09 +Transfer/sec: 576.00KB + diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/delete.lua b/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/delete.lua index b9f932bd4..9eddfe7d1 100644 --- a/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/delete.lua +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/delete.lua @@ -3,8 +3,8 @@ id = 0 function request() curId = id id = id + 1 - path = "/v0/entity?id=key" .. curId + path = "/v0/entity?id=key" .. curId .. "&ack=2&from=3" headers = {} - headers["Host"] = "localhost:8080" + headers["Host"] = "localhost:808" .. string.char(math.random(1, 4)) return wrk.format("DELETE", path, headers) end diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/get.lua b/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/get.lua index 3ed630fda..297c85668 100644 --- a/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/get.lua +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/get.lua @@ -3,8 +3,8 @@ id = 0 function request() curId = id id = id + 1 - path = "/v0/entity?id=key" .. curId + path = "/v0/entity?id=key" .. curId .. "&ack=2&from=3" headers = {} - headers["Host"] = "localhost:8080" + headers["Host"] = "localhost:808" .. string.char(math.random(1, 4)) return wrk.format("GET", path, headers) end diff --git a/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/put.lua b/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/put.lua index f87fed66c..03d96ab41 100644 --- a/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/put.lua +++ b/src/main/java/ru/vk/itmo/test/osipovdaniil/scripts/put.lua @@ -3,9 +3,9 @@ id = 0 function request() curId = id id = id + 1 - path = "/v0/entity?id=key" .. curId + path = "/v0/entity?id=key" .. curId .. "&ack=2&from=3" headers = {} - headers["Host"] = "localhost:8080" + headers["Host"] = "localhost:808" .. string.char(math.random(1, 4)) value = "value" .. curId return wrk.format("PUT", path, headers, value) end