Колькі ядраў патрэбна OpenVPN? Залежыць ад шляху
Адзін паток можа заняць адно ядро, пакуль сервер выглядае незагружаным. Параўнайце шлях у прасторы карыстальніка з выгрузкай у ядро, а потым вымерайце тую паднаснасць, якую вы сапраўды абслугоўваеце.
Два серверы з аднолькавай колькасцю працэсараў могуць падтрымліваць вельмі розную прапускную здольнасць, бо важны лік — колькі ядраў актыўны шлях даных можа фактычна выкарыстаць. Адзіны дэман у прасторы карыстальніка, які апрацоўвае пакеты аднаго кліента, абмежаваны адным ядром, а шлях з выгрузкай у ядро можа размеркаваць гэтую працу. Ні адно з гэтых сцверджанняў не кажа, што зробіць канкрэтная машына для вашага трафіку, таму вымярэнне ідзе перад падлікам ядраў.
Параўнанне ніжэй — пра тое, дзе апрацоўваюцца пакеты, а не пра тое, які прадукт хутчэйшы ў абстракцыі. Гэта розныя пытанні з рознымі адказамі.
Адно ядро на паток на шляху прасторы карыстальніка
У традыцыйным экзэмпляры Community OpenVPN канал даных апрацоўваецца ў прасторы карыстальніка, і занятае злучэнне можа замацаваць адзін працэсар, пакуль агульнае выкарыстанне машыны застаецца незаўважным. Менавіта таму даданне ядраў да хоста, ужо насычанага адным патокам, нічога не змяняе: планавальнік не мае спосабу падзяліць гэтую працу. Пабудова аднаго працэсу на кліента абмяжоўвае перадачу аднаго кліента ёмістасцю аднаго ядра, якой бы ні была агульная колькасць ядраў. Чытайце выкарыстанне кожнага ядра асобна падчас тэсту, а не агульную лічбу, інакш вузкае месца будзе выглядаць як запас.
Запуск некалькіх экзэмпляраў сервера на адным хосце размеркаваўвае асобных кліентаў паміж працэсамі. Ён не распаралельвае адно існае злучэнне і патрабуе асобных пулаў, слухачоў і рашэнняў маршрутызацыі.
Іншы шлях: пакеты ў ядры
Выгрузка канала даных пераносіць падтрымліваную апрацоўку пакетаў і крыптаграфію ў ядро, дзе праца можа выкарыстоўваць некалькі ядраў. Гэта змяняе пытанне ёмістасці з аднаго ядра на машыну, але толькі для канфігурацый, якія рэалізацыя падтрымлівае: сумяшчальны модуль ядра, прыдатны шыфр даных і канфігурацыя без функцый, якія выгрузка выключае. Усталяваць модуль — не тое самае, што выкарыстоўваць яго, таму пацвердзіце актыўны рэжым па ўласным журнале злучэння або па вывадзе стану. Банер версіі даказвае, што даступна, а не што працуе.
Выгрузка не выдаляе аўтэнтыфікацыю або канал кіравання і не робіць кожнае разгортванне шмат'ядравым. Гэта лакальнае паскарэнне сумяшчальнага шляху даных, і патрабаванні адрозніваюцца ў залежнасці ад платформы і версіі.
Што насамрэч вырашае параўнанне
Сапраўдны выбар — паміж прыняццем столі на паток, размеркаваннем кліентаў па экзэмплярах і пераходам да падтрымліванай канфігурацыі з выгрузкай. Кожны падыход вырашае іншую праблему, і выбар няправільнага каштуе грошай, не зрушваючы лічбу. Важны тэст — той, што падобны да спосабу выкарыстання сэрвісу.
Вымерайце тры формы: адзін кліент з адной перадачай, адзін кліент з некалькімі патокамі і некалькі кліентаў разам. Высокая сума ў трэцяй не даказвае, што адно спампоўванне можа яе дасягнуць, а павольная адзіночная перадача не даказвае, што сервер вычарпаў агульную ёмістасць. Вынікі адказваюць на розныя пытанні, і абодва маюць каштоўнасць.
Толькі сярэдняя форма кажа, ці дапамагае паднаснасць унутры аднаго кліента, што звычайна ўласціва транспарту і шляху, а не серверу. Толькі першая кажа пра столю, якую ўбачыць адно прыкладанне. Трымайце нагрузку аднолькавай паміж прагонамі, каб параўнанне мела сэнс.
Вымярэнне, каб лічба мела сэнс
Запішыце версіі сервера і кліента, актыўны шлях даных, узгоднены шыфр даных, кірунак перадачы, памеры пакетаў, колькасць патокаў і працягласць. Сачыце за актыўнасцю кожнага ядра і за стратамі пакетаў і чэргаў на абодвух канцах, бо ўласны інтэрфейс кліента, сетка правайдэра або служба прызначэння могуць стаць мяжой першымі. Змяняйце па адной зменнай за раз, бо прагон, які адначасова змяняе шыфр, сцісканне, MTU і выгрузку, не скажа, што мела значэнне. Падчас тэсту трымайце тую палітыку доступу, якую вы сапраўды плануеце разгортваць, бо лабараторная схема, якую ніхто не будзе выкарыстоўваць, даказвае няшмат.
Затым пакіньце запас для канала кіравання, для перападмовы і для ўсяго іншага, што працуе на хосце.
Паведамляйце, што канфігурацыя вытрымала пры планаванай паднаснасці, а не хуткасць, экстрапаляваную з чужога абсталявання. Лічба разам з умовамі тэсту карысная; абяцанне без іх — здагадка, якую вам яшчэ прыпомняць.