Данные
processes <- 1:24
times <- c(
28.727,
29.91,
30.116,
31.021,
31.036,
30.863,
30.855,
32.821,
36.895,
41.233,
45.261,
49.398,
53.7,
57.640,
61.820,
65.882,
69.829,
74.414,
78.419,
83.051,
86.963,
92.243,
95.622,
99.274
)
#Default point mark for a graphic
mark = 19
# Chunk size for a synthetic table
q_uncompressed = 2048
# Compression ratio
q_compressed = 2048 / 4
Время исполнения команды copy в зависимости от количества
параллельных процессов команды copy
Синяя отсечка означает превышение количества слушающих процессов
postgres и обращение к уже занятым.
mybar <-
barplot(
height = times,
names = processes,
col = "#69b3a2",
main = expression("Время" ~ bold("copy") ~ "vs количество параллельных процессов"),
xlab = "процессы",
ylab = "время, с",
ylim = c(0, max(times) + 2),
cex.main = 1,
font.main = 1
)
lines(mybar, times, type = "o", pch = mark)
text(x = mybar,
y = times / 2,
labels = round(y, 0))
abline(v = mean(mybar[12:13]), col = "blue")

Расжатые данные
Скорость выполнения процессов copy в зависимости от
количества параллельных процессов
plot(
processes,
y = processes * q_uncompressed / times,
xaxt = "n",
type = "o",
bty = "l",
pch = mark,
ylim = c(0, q_uncompressed / times[1] * 24),
col = "#69b3a2",
main = expression(
"Процессы" ~ bold("copy") ~ "vs количество параллельных процессов"
),
xlab = "процессы",
ylab = "МБ/с",
)
axis(1, at = x, las = 2)
expected_speed = q_uncompressed / times[1] * processes
lines(expected_speed,
type = "o",
pch = mark,
col = "red")
legend(
"topleft",
legend = c("реальные значения", "максимальные теоретические"),
col = c("#69b3a2", "red"),
pch = c(mark, mark),
inset = c(0.03, 0.03)
)
abline(v = mean(12:13), col = "blue")

Скорость выполнения процесса copy в зависимости от
количества параллельных процессов
plot(
x = processes,
y = q_uncompressed * processes / times / processes,
xaxt = "n",
ylim = c(0, q_uncompressed / times[1]),
type = "o",
bty = "l",
pch = mark,
col = "#69b3a2",
main = expression("Скорость выполнения" ~ bold("copy") ~ "приведённо на процесс"),
xlab = "процессов",
ylab = "МБ/с",
)
abline(v = mean(12:13), col = "blue")
axis(1, at = processes, las = 2)

Сжатые данные
Скорость выполнения процессов copy в зависимости от
количества параллельных процессов
plot(
processes,
y = processes * q_compressed / times,
xaxt = "n",
type = "o",
bty = "l",
pch = mark,
ylim = c(0, q_compressed / times[1] * 24),
col = "#69b3a2",
main = expression(
"Процессы" ~ bold("copy") ~ "vs количество параллельных процессов"
),
xlab = "процессы",
ylab = "МБ/с",
)
axis(1, at = x, las = 2)
expected_speed = q_compressed / times[1] * processes
lines(expected_speed,
type = "o",
pch = mark,
col = "red")
legend(
"topleft",
legend = c("реальные значения", "максимальные теоретические"),
col = c("#69b3a2", "red"),
pch = c(mark, mark),
inset = c(0.03, 0.03)
)
abline(v = mean(12:13), col = "blue")

Скорость выполнения процесса copy в зависимости от
количества параллельных процессов

LS0tCnRpdGxlOiAicG9zdGdyZXMgcGFyYWxsZWwgY29waWVzIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIGNvZGVfZm9sZGluZzogaGlkZQplY2hvOiBmYWxzZQotLS0KCiMg0JTQsNC90L3Ri9C1CgpgYGB7cn0KcHJvY2Vzc2VzIDwtIDE6MjQKdGltZXMgPC0gYygKICAyOC43MjcsCiAgMjkuOTEsCiAgMzAuMTE2LAogIDMxLjAyMSwKICAzMS4wMzYsCiAgMzAuODYzLAogIDMwLjg1NSwKICAzMi44MjEsCiAgMzYuODk1LAogIDQxLjIzMywKICA0NS4yNjEsCiAgNDkuMzk4LAogIDUzLjcsCiAgNTcuNjQwLAogIDYxLjgyMCwKICA2NS44ODIsCiAgNjkuODI5LAogIDc0LjQxNCwKICA3OC40MTksCiAgODMuMDUxLAogIDg2Ljk2MywKICA5Mi4yNDMsCiAgOTUuNjIyLAogIDk5LjI3NAopCgojRGVmYXVsdCBwb2ludCBtYXJrIGZvciBhIGdyYXBoaWMKbWFyayA9IDE5CgojIENodW5rIHNpemUgZm9yIGEgc3ludGhldGljIHRhYmxlCnFfdW5jb21wcmVzc2VkID0gMjA0OAoKIyBDb21wcmVzc2lvbiByYXRpbwpxX2NvbXByZXNzZWQgPSAyMDQ4IC8gNApgYGAKCi0tLQoKIyMg0JLRgNC10LzRjyDQuNGB0L/QvtC70L3QtdC90LjRjyDQutC+0LzQsNC90LTRiyAqY29weSog0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC60L7Qu9C40YfQtdGB0YLQstCwINC/0LDRgNCw0LvQu9C10LvRjNC90YvRhSDQv9GA0L7RhtC10YHRgdC+0LIg0LrQvtC80LDQvdC00YsgKmNvcHkqCgrQodC40L3Rj9GPINC+0YLRgdC10YfQutCwINC+0LfQvdCw0YfQsNC10YIg0L/RgNC10LLRi9GI0LXQvdC40LUg0LrQvtC70LjRh9C10YHRgtCy0LAg0YHQu9GD0YjQsNGO0YnQuNGFINC/0YDQvtGG0LXRgdGB0L7QsiAqcG9zdGdyZXMqINC4INC+0LHRgNCw0YnQtdC90LjQtSDQuiDRg9C20LUg0LfQsNC90Y/RgtGL0LwuCgpgYGB7cn0KbXliYXIgPC0KICBiYXJwbG90KAogICAgaGVpZ2h0ID0gdGltZXMsCiAgICBuYW1lcyA9IHByb2Nlc3NlcywKICAgIGNvbCA9ICIjNjliM2EyIiwKICAgIG1haW4gPSBleHByZXNzaW9uKCLQktGA0LXQvNGPIiB+IGJvbGQoImNvcHkiKSB+ICJ2cyDQutC+0LvQuNGH0LXRgdGC0LLQviDQv9Cw0YDQsNC70LvQtdC70YzQvdGL0YUg0L/RgNC+0YbQtdGB0YHQvtCyIiksCiAgICB4bGFiID0gItC/0YDQvtGG0LXRgdGB0YsiLAogICAgeWxhYiA9ICLQstGA0LXQvNGPLCDRgSIsCiAgICB5bGltID0gYygwLCBtYXgodGltZXMpICsgMiksCiAgICBjZXgubWFpbiA9IDEsCiAgICBmb250Lm1haW4gPSAxCiAgKQpsaW5lcyhteWJhciwgdGltZXMsIHR5cGUgPSAibyIsIHBjaCA9IG1hcmspCnRleHQoeCA9IG15YmFyLAogICAgIHkgPSB0aW1lcyAvIDIsCiAgICAgbGFiZWxzID0gcm91bmQoeSwgMCkpCmFibGluZSh2ID0gbWVhbihteWJhclsxMjoxM10pLCBjb2wgPSAiYmx1ZSIpCmBgYAoKLS0tCgojINCg0LDRgdC20LDRgtGL0LUg0LTQsNC90L3Ri9C1CgojIyMg0KHQutC+0YDQvtGB0YLRjCDQstGL0L/QvtC70L3QtdC90LjRjyDQv9GA0L7RhtC10YHRgdC+0LIgKmNvcHkqINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQutC+0LvQuNGH0LXRgdGC0LLQsCDQv9Cw0YDQsNC70LvQtdC70YzQvdGL0YUg0L/RgNC+0YbQtdGB0YHQvtCyCgpgYGB7cn0KcGxvdCgKICBwcm9jZXNzZXMsCiAgeSA9IHByb2Nlc3NlcyAqIHFfdW5jb21wcmVzc2VkIC8gdGltZXMsCiAgeGF4dCA9ICJuIiwKICB0eXBlID0gIm8iLAogIGJ0eSA9ICJsIiwKICBwY2ggPSBtYXJrLAogIHlsaW0gPSBjKDAsIHFfdW5jb21wcmVzc2VkIC8gdGltZXNbMV0gKiAyNCksCiAgY29sID0gIiM2OWIzYTIiLAogIG1haW4gPSBleHByZXNzaW9uKAogICAgItCf0YDQvtGG0LXRgdGB0YsiIH4gYm9sZCgiY29weSIpIH4gInZzINC60L7Qu9C40YfQtdGB0YLQstC+INC/0LDRgNCw0LvQu9C10LvRjNC90YvRhSDQv9GA0L7RhtC10YHRgdC+0LIiCiAgKSwKICB4bGFiID0gItC/0YDQvtGG0LXRgdGB0YsiLAogIHlsYWIgPSAi0JzQkS/RgSIsCikKYXhpcygxLCBhdCA9IHgsIGxhcyA9IDIpCmV4cGVjdGVkX3NwZWVkID0gcV91bmNvbXByZXNzZWQgLyB0aW1lc1sxXSAqIHByb2Nlc3NlcwpsaW5lcyhleHBlY3RlZF9zcGVlZCwKICAgICAgdHlwZSA9ICJvIiwKICAgICAgcGNoID0gbWFyaywKICAgICAgY29sID0gInJlZCIpCmxlZ2VuZCgKICAidG9wbGVmdCIsCiAgbGVnZW5kID0gYygi0YDQtdCw0LvRjNC90YvQtSDQt9C90LDRh9C10L3QuNGPIiwgItC80LDQutGB0LjQvNCw0LvRjNC90YvQtSDRgtC10L7RgNC10YLQuNGH0LXRgdC60LjQtSIpLAogIGNvbCA9IGMoIiM2OWIzYTIiLCAicmVkIiksCiAgcGNoID0gYyhtYXJrLCBtYXJrKSwKICBpbnNldCA9IGMoMC4wMywgMC4wMykKKQphYmxpbmUodiA9IG1lYW4oMTI6MTMpLCBjb2wgPSAiYmx1ZSIpCmBgYAoKIyMjINCh0LrQvtGA0L7RgdGC0Ywg0LLRi9C/0L7Qu9C90LXQvdC40Y8g0L/RgNC+0YbQtdGB0YHQsCAqY29weSog0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC60L7Qu9C40YfQtdGB0YLQstCwINC/0LDRgNCw0LvQu9C10LvRjNC90YvRhSDQv9GA0L7RhtC10YHRgdC+0LIKCmBgYHtyfQpwbG90KAogIHggPSBwcm9jZXNzZXMsCiAgeSA9IHFfdW5jb21wcmVzc2VkICogcHJvY2Vzc2VzIC8gdGltZXMgLyBwcm9jZXNzZXMsCiAgeGF4dCA9ICJuIiwKICB5bGltID0gYygwLCBxX3VuY29tcHJlc3NlZCAvIHRpbWVzWzFdKSwKICB0eXBlID0gIm8iLAogIGJ0eSA9ICJsIiwKICBwY2ggPSBtYXJrLAogIGNvbCA9ICIjNjliM2EyIiwKICBtYWluID0gZXhwcmVzc2lvbigi0KHQutC+0YDQvtGB0YLRjCDQstGL0L/QvtC70L3QtdC90LjRjyIgfiBib2xkKCJjb3B5IikgfiAi0L/RgNC40LLQtdC00ZHQvdC90L4g0L3QsCDQv9GA0L7RhtC10YHRgSIpLAogIHhsYWIgPSAi0L/RgNC+0YbQtdGB0YHQvtCyIiwKICB5bGFiID0gItCc0JEv0YEiLAopCmFibGluZSh2ID0gbWVhbigxMjoxMyksIGNvbCA9ICJibHVlIikKYXhpcygxLCBhdCA9IHByb2Nlc3NlcywgbGFzID0gMikKYGBgCgotLS0KCiMg0KHQttCw0YLRi9C1INC00LDQvdC90YvQtQoKIyMjINCh0LrQvtGA0L7RgdGC0Ywg0LLRi9C/0L7Qu9C90LXQvdC40Y8g0L/RgNC+0YbQtdGB0YHQvtCyICpjb3B5KiDQsiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0LrQvtC70LjRh9C10YHRgtCy0LAg0L/QsNGA0LDQu9C70LXQu9GM0L3Ri9GFINC/0YDQvtGG0LXRgdGB0L7QsgoKYGBge3J9CnBsb3QoCiAgcHJvY2Vzc2VzLAogIHkgPSBwcm9jZXNzZXMgKiBxX2NvbXByZXNzZWQgLyB0aW1lcywKICB4YXh0ID0gIm4iLAogIHR5cGUgPSAibyIsCiAgYnR5ID0gImwiLAogIHBjaCA9IG1hcmssCiAgeWxpbSA9IGMoMCwgcV9jb21wcmVzc2VkIC8gdGltZXNbMV0gKiAyNCksCiAgY29sID0gIiM2OWIzYTIiLAogIG1haW4gPSBleHByZXNzaW9uKAogICAgItCf0YDQvtGG0LXRgdGB0YsiIH4gYm9sZCgiY29weSIpIH4gInZzINC60L7Qu9C40YfQtdGB0YLQstC+INC/0LDRgNCw0LvQu9C10LvRjNC90YvRhSDQv9GA0L7RhtC10YHRgdC+0LIiCiAgKSwKICB4bGFiID0gItC/0YDQvtGG0LXRgdGB0YsiLAogIHlsYWIgPSAi0JzQkS/RgSIsCikKYXhpcygxLCBhdCA9IHgsIGxhcyA9IDIpCmV4cGVjdGVkX3NwZWVkID0gcV9jb21wcmVzc2VkIC8gdGltZXNbMV0gKiBwcm9jZXNzZXMKbGluZXMoZXhwZWN0ZWRfc3BlZWQsCiAgICAgIHR5cGUgPSAibyIsCiAgICAgIHBjaCA9IG1hcmssCiAgICAgIGNvbCA9ICJyZWQiKQpsZWdlbmQoCiAgInRvcGxlZnQiLAogIGxlZ2VuZCA9IGMoItGA0LXQsNC70YzQvdGL0LUg0LfQvdCw0YfQtdC90LjRjyIsICLQvNCw0LrRgdC40LzQsNC70YzQvdGL0LUg0YLQtdC+0YDQtdGC0LjRh9C10YHQutC40LUiKSwKICBjb2wgPSBjKCIjNjliM2EyIiwgInJlZCIpLAogIHBjaCA9IGMobWFyaywgbWFyayksCiAgaW5zZXQgPSBjKDAuMDMsIDAuMDMpCikKYWJsaW5lKHYgPSBtZWFuKDEyOjEzKSwgY29sID0gImJsdWUiKQpgYGAKCiMjIyDQodC60L7RgNC+0YHRgtGMINCy0YvQv9C+0LvQvdC10L3QuNGPINC/0YDQvtGG0LXRgdGB0LAgKmNvcHkqINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQutC+0LvQuNGH0LXRgdGC0LLQsCDQv9Cw0YDQsNC70LvQtdC70YzQvdGL0YUg0L/RgNC+0YbQtdGB0YHQvtCyCgpgYGB7ciBlY2hvPWZhbHNlfQpwbG90KAogIHggPSBwcm9jZXNzZXMsCiAgeSA9IHFfY29tcHJlc3NlZCAqIHByb2Nlc3NlcyAvIHRpbWVzIC8gcHJvY2Vzc2VzLAogIHhheHQgPSAibiIsCiAgeWxpbSA9IGMoMCwgcV9jb21wcmVzc2VkIC8gdGltZXNbMV0pLAogIHR5cGUgPSAibyIsCiAgYnR5ID0gImwiLAogIHBjaCA9IG1hcmssCiAgY29sID0gIiM2OWIzYTIiLAogIG1haW4gPSBleHByZXNzaW9uKCLQodC60L7RgNC+0YHRgtGMINCy0YvQv9C+0LvQvdC10L3QuNGPIiB+IGJvbGQoImNvcHkiKSB+ICLQv9GA0LjQstC10LTRkdC90L3QviDQvdCwINC/0YDQvtGG0LXRgdGBIiksCiAgeGxhYiA9ICLQv9GA0L7RhtC10YHRgdC+0LIiLAogIHlsYWIgPSAi0JzQkS/RgSIsCikKYWJsaW5lKHYgPSBtZWFuKDEyOjEzKSwgY29sID0gImJsdWUiKQpheGlzKDEsIGF0ID0gcHJvY2Vzc2VzLCBsYXMgPSAyKQpgYGA=