Чаму сумесны доступ да файлаў праз VPN здаецца павольным: кругі, а не Mbps
Пратаколы сумеснага доступу да файлаў разлічваюць на латэнтнасць лакальнай сеткі. Балбатлівыя метаданыя, аперацыі з дробнымі файламі і праблемы MTU выклікаюць прыпынкі, якія не выправіць большай прапускной здольнасцю.
Адкрыць агульную папку праз VPN і чакаць, пакуль пералік каталога ледзь рухаецца, — знаёмае адчуванне, і першае жаданне — вінаваціць прапускную здольнасць. Звычайна канал амаль прастойвае. Пратакол праводзіць час у чаканні адказаў, і кожнае чаканне каштуе поўнага круга, якога лакальная сетка ніколі не брала. Выпраўце форму працы, і агульны доступ зноў стане прыдатным.
Аддаленая працоўная копія мае няправільную форму
SMB адкрывае файлы, чытае метаданыя і пацвярджае ў мностве дробных абменаў. Працоўная копія сістэмы кантролю версій на падключаным дыску разлічвае на латэнтнасць лакальнай файлавай сістэмы і чытае шмат дробных файлаў. Настольная база даных цягне старонкі, пакуль карыстальнік працуе. Кожнае з гэтага ператварае затрымку ў множнік, бо кошт расце з колькасцю абменаў, якія выконвае аперацыя; таму тунель з 40 мс ператварае некалькі сотняў аперацый у некалькі секунд. Памер карыснай нагрузкі ў гэтай арыфметыцы амаль не мае значэння.
Накладныя выдаткі на шыфраванне — малая частка гэтага; страты горш, бо адна паўторная перадача плюс сціснутае акно перагрузкі каштуюць куды больш за тыя байты.
Лічыце кругі раней за мегабайты
Вымерайце затрымку перад купляй прапускной здольнасці. Адзін ping паказвае, за што плаціць кожны абмен.
ping -c 10 fileserver.example.netЗводка дае мінімальны, сярэдні і максімальны час круга, і разбег важны не менш за сярэдняе. Памножце сярэдняе на колькасць абменаў, якія робіць пералік каталога, і параўнайце з часам, які вы насамрэч назіраеце. Калі адзін вялікі файл перадаецца хутка, а прагляд павольны, абмежаваннем з’яўляюцца затрымка і колькасць запытаў. Дадаць дзесяць разоў больш прапускной здольнасці каналу, які ніколі не насычаецца, не змяняе нічога зусім.
Пераносьце працу, а не байты
Змяніце месца, дзе адбываецца праца, замест таго каб плаціць за шырэйшую трубу. Аддавайце рэпазіторый, а не мантуйце яго, і капіруйце гуртам прыладай, якая перадае толькі адрозненні.
rsync -av --info=progress2 ./project/ [email protected]:/srv/share/project/Калі рэпазіторый аддаецца, як гэта робіць hgweb ці аддалены Git, кліент працуе на лакальным клоне, і яго выклікі файлавай сістэмы ніколі не перасякаюць тунель. rsync праходзіць абодва бакі і перадае змененыя блокі, што ліквідуе большасць абменаў, за якія плаціць наіўнае капіраванне. Настольнай базе даных месца на серверным рухавіку, а кліент зводзіцца да інтэрфейсу, альбо ўвесь кліент працуе на ўнутраным хосце. Кожны варыянт змяняе, наколькі пратакол схільны да затрымкі, і ў гэтым сэнс.
Завісанні каля аднаго памеру — сімптом MTU
Вялікія перадачы, што спыняюцца пасля прыкладна аднолькавай колькасці даных, калі ping і дробныя старонкі працуюць, паказваюць на памер пакета, а не на прапускную здольнасць.
ping -M do -s 1400 -c 3 fileserver.example.netПаспяховая проба азначае, што IP-пакет памерам 1428 байт праходзіць шлях без фрагментацыі, бо загалоўкі ICMP і IP дадаюць 28 байт. Няўдача з сцягам забароны фрагментацыі гаворыць пра тое, што прыдатны MTU тунеля меншы, чым меркаваў сервер. Сервер, які шле буферы на 9000 байт у шлях на 1500 байт, вымушае фрагментацыю або скід, а выяўленне MTU шляху можа моўчкі праваліцца, калі ICMP фільтруецца. Панізьце MTU тунеля, уключыце mssfix у OpenVPN або паменшыце серверныя буферы, потым паўтарыце тую ж перадачу для пацверджання.
Вымерайце разрыў, які мае значэнне
Выканайце тую ж аперацыю трыма шляхамі, дзе дазваляе палітыка: лакальна, праз тунель і праз прамы інтэрнэт-шлях. Для кожнага адзначце час круга, хуткасць аднаго вялікага патоку і колькі часу займае пералік каталога або адкрыццё праграмы. Параўнанне лакальнага запуску з запускам праз тунель паказвае, які кошт пераважае. Копія, што завяршаецца павольна, указвае на праблему хуткасці або затрымкі, а копія, што гіне ў адной і той жа кропцы, — на памер пакета або на прыладу з станам на шляху.
Калі тармозяць толькі першыя мегабайты, глядзіце на аўтэнтыфікацыю і метаданыя; калі ўсё поўзе, глядзіце на прапускную здольнасць і страты. Выпраўце адпаведную прычыну і перастаньце чакаць, што канал WAN павядзе сябе як кабель лакальнай сеткі.