iperf3 ব্যবহার করে নেটওয়ার্ক থ্রুপুট পরিমাপ করা
নমস্কার, আমি একজন অদক্ষ ব্যক্তি।
ভূমিকা
একবার আমিElasticsearch ব্যবহার করে মেট্রিক্স ডেটা গ্রহণ এবংkibana ব্যবহার করে ভিজ্যুয়ালাইজ করার চেষ্টা করেছিলাম, কিন্তু এটি বাড়িতে ব্যবহারের জন্য যথেষ্ট পরিবেশ-বান্ধব ছিল না। বাস্তবে, এটি একটি বিতরণ করা সিস্টেম হওয়া সত্ত্বেও, এটি এত বেশি সংস্থান গ্রাস করে যে আমার মন এবং আমার দুর্বল হোম সার্ভার উভয়ই এটি সহ্য করতে পারেনি, তাই আমি অন্যান্য পদ্ধতির সন্ধান করছি।OOM Killer সক্রিয় করা সত্যিই কম্পিউটারের জন্য দুঃখজনক।
আমি ইতিমধ্যেই অন্যান্য বিকল্প প্রস্তুত রেখেছি, তবে যদি শুধুমাত্র মেট্রিক্স ডেটা পাঠানোর প্রয়োজন হয়, তাহলে আমি মূল ডেটা সম্পর্কে চিন্তা করব।
প্রথমে, অ্যাপ্লিকেশন স্তরের আগে নিম্ন স্তর থেকে শুরু করা যাক।
iperf3 ইনস্টল করুন
এইবার, আমি আমার ThinkPad X1C@Artix Linux কে উৎস এবং আমার হোম সার্ভার@Devuan কে গন্তব্য হিসাবে ব্যবহার করে কাজ করব।
ThinkPad X1C@Artix Linux
$ sudo pacman -S iperf3
হোম সার্ভার@Devuan
$ sudo apt install iperf3
$ sudo ufw allow 5201/tcp
$ sudo ufw reload
apt প্যাকেজের iperf3 ইনস্টল করার সময়, একটি TUI পপ আপ হবে যা জিজ্ঞাসা করবে যে আপনি এটিকে ডেমন হিসাবে শুরু করতে চান কিনা, তবে এইবার আমি n নির্বাচন করব।
এখন প্রস্তুতি সম্পন্ন হয়েছে।
পরিমাপ
সার্ভার পাশে শুনুন।
হোম সার্ভার@Devuan
$ iperf -s
ক্লায়েন্ট পাশ থেকে পাঠান।
এটি একটি Wi-Fi পরিবেশ যেখানে বেশ কয়েকটি দেয়াল রয়েছে, তাই দয়া করে এটি ক্ষমা করুন...। বিপরীতভাবে, নিম্ন-মানের ডেটা পাওয়া কি একটি ভালো জিনিস বলা যেতে পারে?
ThinkPad X1C@Artix Linux
$ iperf3 -c DevuanSrvIP
Connecting to host DevuanSrvIP, port 5201
[ 5] local 192.168.10.118 port 41000 connected to DevuanSrvIP port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 10.8 MBytes 90.1 Mbits/sec 0 406 KBytes
[ 5] 1.00-2.00 sec 9.00 MBytes 75.5 Mbits/sec 0 484 KBytes
[ 5] 2.00-3.00 sec 9.38 MBytes 78.6 Mbits/sec 1 485 KBytes
[ 5] 3.00-4.00 sec 7.25 MBytes 60.8 Mbits/sec 0 167 KBytes
[ 5] 4.00-5.00 sec 8.25 MBytes 69.2 Mbits/sec 0 494 KBytes
[ 5] 5.00-6.00 sec 8.62 MBytes 72.3 Mbits/sec 0 496 KBytes
[ 5] 6.00-7.00 sec 9.38 MBytes 78.6 Mbits/sec 1 499 KBytes
[ 5] 7.00-8.00 sec 9.50 MBytes 79.7 Mbits/sec 0 501 KBytes
[ 5] 8.00-9.00 sec 7.62 MBytes 64.0 Mbits/sec 1 505 KBytes
[ 5] 9.00-10.00 sec 7.62 MBytes 63.9 Mbits/sec 0 508 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 87.4 MBytes 73.3 Mbits/sec 3 sender
[ 5] 0.00-10.02 sec 85.3 MBytes 71.5 Mbits/sec receiver
iperf Done.
শুধুমাত্র এটি দিয়েও, TCP যোগাযোগের সময় উইন্ডো নিয়ন্ত্রণের অধীনে পুনরায় চেষ্টা (Retr) এবং উইন্ডো আকার (Cwnd) থেকে নেটওয়ার্কের গুণমান মূল্যায়ন করা যেতে পারে, এবং এর বাইরেও, তারতম্য থেকে গুণমান মূল্যায়ন করা সম্ভব বলে মনে হয়।
যদি সহজভাবে করা হয়, তাহলে শুধুমাত্র sender নিষ্কাশন করে
$ iperf3 -c DevuanSrvIP | grep "sender"
[ 5] 0.00-10.00 sec 83.8 MBytes 70.2 Mbits/sec 1 sender
এখান থেকে, awk-এ পাইপ করে প্রয়োজনীয় তথ্য মেট্রিক্স ডেটা হিসাবে পাঠানোও সম্ভব বলে মনে হয়।
উপসংহার
অন্যান্য বিষয়গুলির মধ্যে, ডিস্ক I/O মেট্রিক্স ডেটাও আকর্ষণীয় হতে পারে, তবে নিয়মিতভাবে তীব্র ডিস্ক থ্রুপুট পরিমাপ করা কেবল বিরক্তিকর হবে, তাই আমি মনে করি যতটা সম্ভব ছোট আকারে পর্যাপ্ত তথ্য সংগ্রহ করা যেতে পারে। যদিও এটি সাধারণত এমন কিছু নয় যা নিয়ে আমরা খুব বেশি চিন্তা করি, তবে কখন IO অপেক্ষা ঘটে তা দেখতে আকর্ষণীয় হতে পারে।
আমি ভাবছি অ্যাপ্লিকেশন মেট্রিক্স ডেটা কতটা সংগ্রহ করা উচিত? আমার মনে হয় যে দেখার ক্ষেত্রটি বেশ বিস্তৃত।
প্রতিটি সফ্টওয়্যারের নিজস্ব নকশা দর্শন রয়েছে, তাই সেখান থেকে এটি কতটা আউটপুট করতে পারে তা বোঝা যায়। বাইরে থেকে তথ্য সংগ্রহ করার ক্ষেত্রে, মডিউল ইনস্টল করে সেখান থেকে ডেটা বের করার মতো একটি ধারণা রয়েছে, তবে যতটা সম্ভব OS থেকে ডেটা সংগ্রহ করা আরও নমনীয় হবে বলে মনে হয়।
আসলে, যদি সিস্টেম কলগুলি CPU-কে নির্দেশ দেয়, তবে সেগুলিকে কোনোভাবে ট্রেস করা সম্ভব বলে মনে হয়, তবে এটি অন্য একটি গল্প...।
যাইহোক, অতীতে আমি বিভিন্ন কারণে Elasticsearch ইনস্টল করেছিলাম, কিন্তু এটি ব্যবহার করা বেশ কঠিন যদি না আপনার কাছে প্রচুর সংস্থান থাকে, তাই যদি এমন একটি পরিবেশ তৈরি হয় তবে আমি এটি আবার ব্যবহার করার চেষ্টা করব।
তবে, এই ধরনের ইন-মেমরি ডেটাবেসের উপাদানগুলি অন্তর্ভুক্ত করে এমন OSS সফ্টওয়্যারগুলি অত্যন্ত চমৎকার, তাই যদি আপনি এটি ব্যবহার করতে চান তবে আপনাকে অবশ্যই উদ্দেশ্য এবং এর মূল্যের সাথে সামঞ্জস্যপূর্ণ কিনা তা বিচার করে এটি ইনস্টল করতে হবে, অন্যথায় আপনি কেবল প্রচুর RAM গ্রাস করা দেখতে পাবেন, তাই আমি সতর্ক থাকব।
তাহলে, আবার দেখা হবে। ধন্যবাদ।