
Website এর First Byte Reading Time কিংবা সার্ভার রিসপন্স টাইম সম্পর্কে জানুন ! জাদুও দেখাবো অাজকে ;)
অনেকেই মনে করেন সাইটের first byte reading টাইম বেশি মানে সার্ভার খারাপ, ব্যাপার টা মোটেও তা নয় । বরং কোনো কিছুকে খারাপ বলার পূর্বে অামাদের জানা উচিত এটা কি এবং কেনো সাইটের Time To First Byte সময় বেশি হয় । অামি বিশ্বাস করি অাজকের এই লেখা পড়ার পর অাপনাদের এই ভ্রান্ত ধারনা দূর হবে ।
TTFB কি?
অাপনি যখন কোনো সাইটে প্রবেশ করেন তখন অাপনার ব্রাউজার একটা http রিকোয়েস্ট পাঠায় সাইটটি যে সার্ভারে হোস্ট করা অাছে তাতে, অার এই রিকোয়েস্ট পাবার পর সার্ভার অাপনার সা্ইটের কন্টেন্ট কে প্রসেস করে তথ্য কে ফেরত পাঠায় যা ব্রাউজারে দেখা যায়, এখানে সার্ভার এ রিকোয়েস্ট পাঠানোর পর সার্ভার থেকে প্রথম যে ফিরতি তথ্য পাঠানো হয় তার মধ্যবর্তী সময়ই হলো TTFB
এটাকে সার্ভারের response টাইম হিসাবেও অনেকে কাউন্ট করে থাকে ।
এটা কি সত্যিই সার্ভারের response টাইম হিসাবে গ্রহন যোগ্য ?
মোটেও নয় ! কেনো? কারন টা কিন্তু সংগাতেই অাছে, সহজ ভাবে বলছি
TTFB = Socket Connection Time + User থেকে সার্ভারে ডাটা প্রেরনের সময় + সার্ভার থেকে ইউজারকে ফিরতি রিপ্লাই পাঠানো সময় ।
এবার তাহলে ভাবুন তো এটা কিভাবে সার্ভারের রিসপন্স টাইম হয় ! কারন ধরুন, সকেট কানেকশন টাইম ১০ মিলিসেকেন্ড, যে ইউজার এর রিকোয়েস্ট পাঠাতে ৫ সেকেন্ড টাইম লাগলো তার নেট স্লো বলে কিংবা রেস্ট্রিকটেড জোনে অবস্থান করছে বলে !, অার সার্ভার ১০ মিলি সেকেন্ডে রিসপন্স বা ফার্স্ট বাইট প্রেরন করলো সে ক্ষেত্রে ব্যাপার টি কি ঘটবে ! সার্ভার রিস্পন্স টাইম দেখাবে ৫.২০ সেকেন্ড !!
মূলত এটিই হয় ! অধিকাংশ টুল কিংবা TTFB মেজারমেন্ট করে এমন সাইটই ইউজার থেকে সার্ভারের Latency কে নেগলেট করে যার ফলে ভুল তথ্য এখানে প্রদর্শিত হয় ।
এররকম সাইট: webpagetest.com, gomez ইত্যাদি ।
এর কারন এরা মুলত http response ক্যালকুলেট করে ।
কি কারনে সাইটের TTFB বেশি হতে পারে?
১. টেস্ট করা হচ্ছে যে সার্ভার/সাইট/টুল থেকে তার থাকে টেস্টিং সার্ভারের দূরত্ব বেশি এবং এই দূরত্বকে নেগলেট করা ।
২. সার্ভারে GZib Compression Enable থাকলে
৩. সার্ভারে ক্যাশিং সিস্টেম চালু থাকলে
৪. অাপনার স্ক্রিপ্টের প্রোসেসিং টাইম বেশী/সাইজ বেশী হলে ।
এবার জাদু দেখাবো অাপনাদের সত্যি বলছি :
টেস্টিং সার্ভার: server27.greenweb.com.bd
টেস্টিং সাইট ১:https://gwtestbd.cf
এটা দেখুন: https://www.webpagetest.org/result/171004_1G_875d3983f6cc48fe31e23b5667764323/
উপরের রেজাল্টে দেখাচ্ছে First Byte Time perfect অাছে এবং ম্যাক্সিমাম স্কোর (A) পেয়েছে ! অামরা এটা অামেরিকা থেকে টেস্ট করেছি ।
এবার একই সাইট কে অামরা ইন্ডিয়া থেকে টেস্ট করলাম:
রেজাল্ট: https://www.webpagetest.org/result/171004_QA_524780ee2211bfc86cf10e4d03b7916b/
এবার কি দেখলেন !! Score F মানে ফেল !! একই সার্ভার, একই সাইট দুই রকম রেজাল্ট কেনো ? কারন লোকেশন অালাদা ! মানে টেস্ট কারীর লোকেশনের উপর TTFB নির্ভর করে !
তাহলে ভাই অাপনি শুধু শুধু কোনো একটা সার্ভার কে দোষারোপ দিবেন যদি অাপনার নিজের নেট কানেকশন এ সমস্যা থাকে কিংবা অাপনার সার্ভারের থেকে অনেক দূরে অবস্থান করেন ? কিংবা অাপনার নেট কানেকশন স্টাবল না হয়?
এতো গেলো একটা দিক না খেলা শেষ হয়নি এখনো ... সবে শুরু :
এটা দেখুন: https://www.webpagetest.org/result/171004_ER_1da2a3afcf4f5c635b50bb046cc2a1c4/
প্রথমবার অামরা অামেরিকা থেকে টেস্ট করেছিলাম, এবারও করলাম । কিন্তু প্রথম বার রেজাল্টে স্কোর A এবার F ! কোনো?
কারন: এবার অামরা যে সাইট লোড করেছি এটার সাইজ বড়, এটা ডাইনামিক সাইট ওয়ার্ডপ্রেসে বানানো । অাগের বার যেটা টেস্ট করি স্ট্যাটিক সাইট । ফলে এবারের সাইট প্রদর্শন হবার অাগে সাইটের কনটেন্ট, লজিক সার্ভার প্রসেস করে অাগে কিন্তু অাগের বার এটা করেনি কারন অাগের টা HTML এ বানানো । যেকারনে একই কনফিগারেশন, একই লোকেশনে, একই সার্ভারে থাকা দুইটি সাইটের TTFB অালাদা
https://www.webpagetest.org/result/171004_ND_caeb5985cc116492bb24360c115dd831/
কি বুঝলেন পেজ সাইজ/কনটেন্টের উপরও এটা নির্ভর করে তারমানে !
অারো অাছে ভাই, ধরুন অাপনার স্ক্রিপ্টে ৫০০ টা পিএইচপি ফাংশন এক্সিকিউট হবার পর ফাস্ট বাইট কিংবা ফার্স্ট লেখা উঠে অার অামার স্ক্রিপ্টে ১ টি ফাংশন রান হয়েই ফার্স্ট বাইট সেন্ড করে এক্ষেত্রে অাপনার TTFB অামার থেকে বেশি হবে । কারন অাপনার First Byte Reading এর জন্য সার্ভার কে বেশি তথ্য বা ডাটা Analysis করতে হয়েছে । সুতরাং সময়ও বেশী লেগেছে !
এরপরও বলবেন TTFB বেশি বলে এটা সার্ভারের সমস্যা ? বলতে পারেন, পাগলে কিনা বলে ;)
এবার অাসা যাক, Gzib এর ব্যাপারে । Gzib হলো compress করার একটি পদ্ধতি, অাপনার সাইটের সাইজ যদি ৩ এম্বি হয় তবে অনেক ক্ষেত্রে এটা 200-300 কেবি তে কম্প্রেস করে প্রদর্শন করতে পারে । অনেক টা Zip compress করার মতো, এটি সাইটের পেজ সাইজ কমায় সাইটের CSS, image এবং অন্যান্য জিনিস কে কম্প্রেস করে । যেমন:
https://smallseotools.com/check-gzip-compression/
এই সাইটে যান, এরপর https://gwtestbd.cf enter a url বক্সে লিখে সাবমিট বাটনে চাপ দিন । দেখবেন দেখাবে,
Wow! It's GZIP Enabled.
Domain Name | https://gwtestbd.cf |
Compressed size | 2890 |
Uncompressed size | 17053 |
মানে Gzib Compression Enabled থাকায় এইপেজের সাইজ ৮৩.০৫% কমেছে !! অবিশ্বাস্য ব্যাপার কিন্তু !! বাস্তবেও তাই হয়, এবার সহজ একটা হিসাব করুন: ধরুন একটা পেজের মুল সাইজ ৫ এম্বি, অাপনার পিসি থেকে ওটা অাগে লোড নিবে নাকি একটি পেজের সাইজ ৬০০ কেবি সেটা অাগে লোড নিবে? তো এই Gzib Compression যদি চালু থাকে প্রতিটা সাইট ভিজিটের সময় সার্ভার কম্প্রেস করে পেজ সাইজ কম করবে, অার এটা করতে সার্ভারের কিছু সময় লাগবে যা ঐ TTFB কে ক্যালকুলেট করা হয় ।
এবার নিজেরাই ভাবুন 100-200 ms টাইম বাচাতে গিয়ে এরকম অসাধারন একটা ফাংশন ব্যবহার করা বন্ধ করবেন কিনা । কারন দেখা গেছে শুধু Gzib Compression চালু রাখলেই সার্ভার রিসপন্স টাইম 100-1000 ms পর্যন্ত বাড়তে পারে, কিন্তু লোডিং টাইম ৭০-৮০% কমে । এবার ভাবুন কোনটা বেশি দরকার ।
অার লিখবো না অাজকে, অাপাতত এটা পড়ুন:
https://blog.cloudflare.com/ttfb-time-to-first-byte-considered-meaningles/
সাইট অপটিমাইজেশনের কোনো Alternative নেই, তবে যারা TTFB ও ভালো চান তারা CDN ব্যবহার করুন ।
লেখাটি লিখতে অনেক সময় লেগেছে অনেক তথ্য ঘাটতে হয়েছে অাশা করি অাপনাদের কে সঠিক জিনিস টা বুঝাতে পেরেছি । মনে রাখবেন অল্প কিছু MS বাচাতে গিয়ে অনেক অনেক Seconds বাড়ানো বুদ্ধিমানের কাজ না । গুগল যেমন TTFB কে গুরুত্ব দেয় তার থেকে বেশি সাইট লোডিং টাইম, স্পিড এসব কে দেয় । অার এই গুলো সব এক সাথে পেতে চাইলে অাপনাকে টাকা খরচ করতে হবে, ভিপিএস এবং সিডিএন ব্যবহার করুন ভালো ফলাফল পাবেন ।
লিখেছেন
মো: জোবায়ের অালম
ফাউন্ডার, গ্রিনওয়েব বাংলাদেশ ।
Mohammad Abdul Aziz (2018-10-17 11:03:36)
Very helpful & Needed post
md al jumman (2017-12-26 16:03:36)
leet detected <3
Leave A Feedback