
Tailscale-მა ქსელის აჩქარების გეგმა გამოაქვეყნა — multi-queue, netmap caching და ნაკლები მეხსიერება
Tailscale-მა ქსელის დაჩქარებაზე მუშაობის მიმოხილვა გამოაქვეყნა: multi-queue დამუშავება როუტინგ კვანძებზე, ნაკლები მეხსიერების ხარჯი პატარა პაკეტებზე და netmap caching უფრო სწრაფი გაშვებისთვის.
Tailscale-მა ქსელის დაჩქარებაზე მუშაობის მიმოხილვა გამოაქვეყნა: როუტინგ კვანძებზე პაკეტების დამუშავება, მეხსიერების ხარჯი პატარა პაკეტებზე და გაშვების სიჩქარე, როცა control plane ძნელად მისაწვდომია.
ეს ადრინდელ მიღწევებს ეყრდნობა: Linux-ზე TCP გამტარუნარიანობა და bare metal-ზე wireguard-go-ს 10 Gb/s-ზე მეტი.
მცირე პაკეტები, ნაკლები მეხსიერების ხარჯი
პაკეტების უმეტესობა პატარაა — დაახლოებით 1 KiB — მაგრამ Tailscale 64 KiB-იან ნაწილებად კითხულობს. wireguard-go მხოლოდ ერთ 64 KiB-იან ბუფერს იძლეოდა, ამიტომ ყოველი პატარა პაკეტი საკუთარ სრულზომიან ბუფერში კოპირდებოდა. Linux-სა და Android-ზე კლიენტი ახლა მათ იქვე ტოვებს და ერთ დიდ წაკითხვაში თითოეულის საწყისსა და დასასრულს ნიშნავს — ბევრი პაკეტი ერთ განაწილებას იზიარებს; ამან ბევრ კონფიგურაციაში დაახლოებით 5% დაჩქარება მოიტანა. შემცირებულმა რიგებმა კი მეხსიერება subnet როუტერებსა და app connector-ებს გაუთავისუფლა.
Multi-queue და ნაკლები კოპირება
ადრე subnet როუტერები, app connector-ები და exit node-ები ერთ მოწესრიგებულ pipeline-ში მუშაობდნენ. გამოთავისუფლებულმა მეხსიერებამ multi-queue-ს ადგილი გააჩინა: რამდენიმე ზოლი, მოწყობილობის რესურსებზე მორგებული; ყოველი ნაკადი თავის ზოლზე რჩება და ზოლები CPU-ის ბირთვებზე პარალელურად მუშაობს. შედეგია მეტი ჯამური გამტარუნარიანობა და ნაკლები დაყოვნება, განსაკუთრებით ბევრ ხანმოკლე კავშირზე მომუშავე app connector-ებზე.
„ეს ნაკლებ დაყოვნებას ნიშნავს — მონაცემების უფრო სწრაფ დამუშავებას ქსელიდან წაკითხვიდან OS-ისთვის გადაცემამდე“, — აღნიშნა Tailscale-ის ალექს ვალიუშკომ.
ცალკე ცვლილება Linux-ის writev-ს იყენებს, რომ პაკეტის მონაცემები kernel-ს ნაკლები ოპერაციით გადაეცეს — ნაკლები კოპირება, მეტი გამტარუნარიანობა.
Netmap caching — უფრო სწრაფი გაშვება
tailnet-ს მოწყობილობა ჩვეულებრივ ჯერ Tailscale-ის control plane-ს უკავშირდება და ქსელის რუკას იღებს — ტიპურ ქსელში დაახლოებით 100 მილიწამში. სასტუმროს ან თვითმფრინავის ცუდ Wi-Fi-ზე ეს კავშირი ნელი ან შეუძლებელი შეიძლება იყოს. netmap caching რუკის ასლს დისკზე ინახავს, ამიტომ კლიენტს დაუყოვნებლივ შეუძლია პირდაპირი კავშირების დამყარება. Tailscale-ის თქმით, ცუდი მისაწვდომობის tailnet-ებზე გაგზავნა „თბილი“ ქეშიდან ერთი-ორი რიგით უფრო სწრაფად იწყება.
დანერგვის ვადები და ტესტირება
Linux-სა და Android-ზე მეხსიერების შემცირება v1.104 კლიენტშია მოსალოდნელი, subnet როუტერებსა და app connector-ებზე multi-queue კი მოგვიანებით გამოვა. netmap caching უკვე feature flag-ით ირთვება და v1.104-ში ნაგულისხმევად უნდა ჩაირთოს. Tailscale საკუთარი ტესტირების ხელსაწყოების კომპლექტსაც იკვლევს — ზოგადი ხელსაწყოები ვერ აჩვენებს, კავშირი პირდაპირია თუ DERP-ით მიდის.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.