რუკაზე თბილისი უფრო ახლოსაა, მაგრამ მომხმარებელი რუკის ხაზს არ მიჰყვება. მისი მოთხოვნა გადის პროვაიდერის ქსელში, შეიძლება CDN-ს შეეხოს და ბოლოს ისეთ აპლიკაციას მიადგეს, რომელიც სხვა ქვეყანაში მდებარე ბაზას ელოდება. ამიტომ „საქართველო თუ ევროპა?“ სასარგებლო კითხვად მაშინ იქცევა, როცა მას კონკრეტული მომხმარებელი და კონკრეტული მოქმედება ახლავს.
ორი რიცხვი, რომლებიც ხშირად ერთმანეთში ერევათ
RTT არის მოთხოვნა-პასუხის ქსელური ორმხრივი გზის დრო. TTFB ზომავს პირველი ბაიტის მიღებამდე გასულ დროს და გაზომვის მეთოდის მიხედვით კავშირის მომზადებასა და სერვერის დამუშავებასაც შეიძლება მოიცავდეს. არც ერთი მათგანი საიტის სრული ვიზუალური ჩატვირთვის ტოლი არ არის.
Ping-ის პასუხი ზოგადი მინიშნებაა. ICMP შეიძლება იფილტრებოდეს ან HTTP-ისგან განსხვავებულად მუშავდებოდეს, ამიტომ უპასუხო ping ავტომატურად გაუმართავ საიტს არ ნიშნავს. გადაწყვეტილებას რეალური HTTPS სცენარი და შეცდომების სურათიც დაუმატეთ.
საილუსტრაციოდ, ლოკაცია A-ს RTT აქვს 12 ms, ხოლო დინამიკური პასუხის TTFB 420 ms. ლოკაცია B-ს შესაბამისი მნიშვნელობებია 45 ms და 190 ms. ეს გამოგონილი მონაცემებია და SERVER1-ის ლოკაციების benchmark არ არის. მაგალითი აჩვენებს, რატომ ვერ ირჩევთ სწრაფ აპლიკაციას მხოლოდ დაბალი RTT-ით.
შემდეგი ნაბიჯია პირობების სიზუსტის დადგენა: ერთნაირია თუ არა აპლიკაცია, cache, სერვერის დატვირთვა და database გზა? განსხვავება შეიძლება ქსელს, backend-ს ან გარე სერვისს უკავშირდებოდეს. ერთი შედეგიდან „CPU სუსტია“ ან „ქვეყანა ნელია“ დასკვნა არ გამოიტანოთ.
ერთი ბრძანება დაკვირვებისთვის
Linux/macOS-ში ქვემოთ მოცემული ბრძანება ერთ ჩვეულებრივ GET მოთხოვნას ასრულებს და დროებს წამებში აჩვენებს. example.com შეცვალეთ მხოლოდ თქვენი ან შემოწმებისთვის ნებადართული endpoint-ით. Windows-ში გამოიყენეთ შესაბამისი curl.exe და output-ის დანიშნულება თქვენს shell-ს მოარგეთ.
curl --silent --show-error --output /dev/null --max-time 15 --write-out 'status=%{http_code} dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://example.com/curl-ის ეს დროები დაწყებიდან კუმულაციური მნიშვნელობებია; მათი შეკრება არ შეიძლება. DNS/TCP/TLS-ის წვლილის გამოთვლა მხოლოდ შესაბამისი ეტაპების განსხვავებითა და მოთხოვნის პირობების გათვალისწინებით არის აზრიანი. ბრძანება თვითონ არ ზომავს აპლიკაციის მეხსიერებას და არ ადგენს შეფერხების საბოლოო მიზეზს.
არჩევანი მომხმარებლის გზას უნდა გაჰყვეს
შედარებაში ჯერ პირობები გაათანაბრეთ: იგივე აპლიკაცია, მსგავსი რესურსი და ცალკე მონიშნული cache hit/miss. შემდეგ სცადეთ თქვენთვის მნიშვნელოვანი ქსელებიდან. ერთი სწრაფი პასუხი გამარჯვებულს ვერ გამოავლენს; ერთი ნელი პასუხი კი ლოკაციის ხარისხის შესაფასებლად არ გამოდგება.
თუ ძირითადი მომხმარებლები საქართველოში არიან, VPS საქართველოში ბუნებრივი კანდიდატია. თუ მნიშვნელოვანი ნაწილი სხვა ბაზარზეა, შეადარეთ Global VPS-ის მიმდინარე შეთავაზება. არჩევანი ბოლოს გაზომილი გზით და ოპერირების პირობებით დაასაბუთეთ, მხოლოდ ქვეყნის სახელით არა.
ქსელის შემდეგ აპლიკაციის მხარეც გასარჩევია: Linux VPS Monitoring: CPU, RAM, Disk და Load როგორ წავიკითხოთ სწორად.
გაზომვის ტერმინებისა და ბრძანების პირველწყაროები: MDN - Time to first byte; MDN - Understanding latency; curl - Official manual.



