LINUX.ORG.RU
ФорумAdmin

Может ли KVM vCPU overcommitting увеличить производительность старинного многопоточного приложения?

 


0

1

Особенно, если отдельные потоки такого приложения, выполняющиеся на KVM guest vCPUs, блокируются различными длительными синхронными запросами во внешние системы типа СУБД и т.п.? Подразумевается многопоточное приложение без greenthreads и другой самостоятельной эмуляции многозадачности.

Подразумевается, что на сервере относительно немного физических ядер, например 4 ядра, а приложение может создать десятки потоков, но ни одним из них не нагрузить отдельно взятое ядро даже и до 10% (ведь ожидание ответа от remote СУБД ядро не нагружает?). Т.е. без оверкомита имеем только 4 ядра и 10 потоков, только 4 из которых активны, а с оверкоммитом можем сделать активными все 10 потоков, и при этом всё равно ни виртуальные 10 ядер, ни физические 4 ядра не будут загружены на 100%, верно? Но по крайне мере это позволит запускать большее количество запросов, на которые ожидаются ответы, или это зависит от эффективности работы thread pooling и возможно даже и без оверкомита?



Последнее исправление: sanyo1234 (всего исправлений: 2)

Смотря как приложение написано. Если приложение написано нормально, то этот оверкоммит может только ухудшить его работу. Бывают приложения, которые размеры тредпулов выставляют в зависимости от числа видимых ядер и не дают их конфигурировать. В таком случае - да, может улучшить работу. Но вообще это адский костыль и такое приложение надо просто доработать, чтобы была возможность админу настраивать что ему надо.

vbr ★★★★
()