টিএল; ডিআর সংস্করণ
এই এএসসিআইআই কাস্ট বা এই ভিডিওটি দেখুন - তারপরে কেন এমনটি হচ্ছে তার কোনও কারণ নিয়ে আসুন। নীচের পাঠ্যের বিবরণটি আরও প্রসঙ্গ সরবরাহ করে।
সেটআপের বিশদ
- মেশিন 1 হ'ল একটি আর্চ লিনাক্স ল্যাপটপ, যার
ssh
উপর তৈরি হয় একটি আরম্বিয়ান-চলমান এসবিসি (একটি কমলা পিআই জিরো) এর সাথে সংযুক্ত। - এসবিসি নিজেই ইথারনেটের মাধ্যমে ডিএসএল রাউটারের সাথে সংযুক্ত এবং এর আইপি রয়েছে 192.168.1.150
- ল্যাপটপটি ওয়াইফাইয়ের মাধ্যমে রাউটারের সাথে সংযুক্ত রয়েছে - একটি অফিসিয়াল রাস্পবেরি পিআই ওয়াইফাই ডংল ব্যবহার করে।
- আরও একটি ল্যাপটপ (মেশিন 2) ইথারনেটের মাধ্যমে ডিএসএল রাউটারের সাথে সংযুক্ত রয়েছে।
আইপিএফ 3 এর সাথে লিঙ্কটি বেঞ্চমার্কিং
যখন সঙ্গে benchmarked iperf3
, ল্যাপটপ মধ্যে লিঙ্ক এবং SBC তাত্ত্বিক 56 MBits / সেকেন্ড কম - যেহেতু এই একটি খুব "ভীড় 2.4GHz" এর মধ্যে WiFi সংযোগ করা হয়, আশানুরূপ (এপার্টমেন্ট বিল্ডিং) ।
আরও সুনির্দিষ্টভাবে: iperf3 -s
এসবিসিতে চলার পরে , ল্যাপটপে নিম্নলিখিত কমান্ডগুলি কার্যকর করা হয়:
# iperf3 -c 192.168.1.150
Connecting to host 192.168.1.150, port 5201
[ 5] local 192.168.1.89 port 57954 connected to 192.168.1.150 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 2.99 MBytes 25.1 Mbits/sec 0 112 KBytes
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 28.0 MBytes 23.5 Mbits/sec 5 sender
[ 5] 0.00-10.00 sec 27.8 MBytes 23.4 Mbits/sec receiver
iperf Done.
# iperf3 -c 192.168.1.150 -R
Connecting to host 192.168.1.150, port 5201
Reverse mode, remote host 192.168.1.150 is sending
[ 5] local 192.168.1.89 port 57960 connected to 192.168.1.150 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 3.43 MBytes 28.7 Mbits/sec
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 39.2 MBytes 32.9 Mbits/sec 375 sender
[ 5] 0.00-10.00 sec 37.7 MBytes 31.6 Mbits/sec receiver
সুতরাং মূলত, এসবিসিতে আপলোড করা প্রায় 24MBits / সেকেন্ডে পৌঁছায় এবং এ থেকে ডাউনলোড করে -R
32MBits / সেকেন্ডে পৌঁছে যায়।
এসএসএইচের সাথে বেঞ্চমার্কিং
দেওয়া হয়েছে, এসএসএইচ ভাড়া কিভাবে দেখুন। ব্যবহার করার সময় এই পোস্টটিতে যে সমস্যাগুলির সৃষ্টি হয়েছিল rsync
এবং আমি borgbackup
উভয়ই প্রথমে এসএসএইচকে পরিবহন স্তর হিসাবে ব্যবহার করেছিলাম তা প্রথম অভিজ্ঞতা পেয়েছি ... সুতরাং এসএসএইচ একই লিঙ্কে কীভাবে কার্য সম্পাদন করে তা দেখুন:
# cat /dev/urandom | \
pv -ptebar | \
ssh root@192.168.1.150 'cat >/dev/null'
20.3MiB 0:00:52 [ 315KiB/s] [ 394KiB/s]
আচ্ছা, এটি একটি অতীব গতি! প্রত্যাশিত লিঙ্কের গতির চেয়ে অনেক ধীর গতি ...
(যদি আপনি সচেতন না হন pv -ptevar
: এটি এর মধ্য দিয়ে যাওয়া ডেটার বর্তমান এবং গড় হার প্রদর্শন করে this /dev/urandom
এক্ষেত্রে , আমরা দেখি যে এসএসএইচের মাধ্যমে ডেটা এসবিসিতে পাঠাচ্ছি এবং প্রেরণ করছি গড়ে ৪০০ কেবি / সেকেন্ডে পৌঁছেছে - অর্থাৎ ৩.২ এমবিটস / সেকেন্ড, প্রত্যাশিত 24 এমবিট / সেকেন্ডের চেয়ে অনেক কম চিত্র।)
আমাদের লিঙ্কটি কেন এর ক্ষমতার 13% এ চলছে?
এটা কি আমাদের /dev/urandom
ভুল?
# cat /dev/urandom | pv -ptebar > /dev/null
834MiB 0:00:04 [ 216MiB/s] [ 208MiB/s]
না, অবশ্যই না।
এটি সম্ভবত এসবিসি নিজেই? সম্ভবত এটি প্রক্রিয়া করতে খুব ধীর? আসুন একই এসএসএইচ কমান্ড চালানোর চেষ্টা করা যাক (যেমন এসবিসিতে ডেটা প্রেরণ করা) তবে এবার ইথারনেটের সাথে সংযুক্ত অন্য একটি মেশিন (মেশিন 2) থেকে:
# cat /dev/urandom | \
pv -ptebar | \
ssh root@192.168.1.150 'cat >/dev/null'
240MiB 0:00:31 [10.7MiB/s] [7.69MiB/s]
নাহ, এটি সূক্ষ্মভাবে কাজ করে - এসবিসি-তে এসএসএইচ ডেমন (সহজেই) এটি 11 ইমেট / সেকেন্ড (অর্থাৎ 100 এমবিটস / সেকেন্ড) পরিচালনা করতে পারে যা ইথারনেট লিঙ্কটি সরবরাহ করে।
এবং এসবিসির সিপিইউ কি এটি করার সময় লোড হয়?
নাঃ।
তাই ...
- নেটওয়ার্ক-ভিত্তিক (অনুযায়ী
iperf3
) আমাদের 10x গতি করতে সক্ষম হওয়া উচিত - আমাদের সিপিইউ সহজেই বোঝা সামঞ্জস্য করতে পারে
- ... এবং আমরা অন্য কোনও ধরণের আই / ও (যেমন ড্রাইভ) জড়িত করি না।
হেক কি হচ্ছে?
নেটক্যাট এবং প্রক্সিকম্যান্ড উদ্ধার করার জন্য
আসুন আমরা পুরানো netcat
সংযোগগুলি চেষ্টা করি - তারা কি আমাদের প্রত্যাশা মতো দ্রুত চালায়?
এসবিসিতে:
# nc -l -p 9988 | pv -ptebar > /dev/null
ল্যাপটপে:
# cat /dev/urandom | pv -ptebar | nc 192.168.1.150 9988
117MiB 0:00:33 [3.82MiB/s] [3.57MiB/s]
এটি কাজ করে! এবং প্রত্যাশিতভাবে সঞ্চালিত হয় - আরও ভাল, 10x আরও ভাল - গতি।
সুতরাং যদি আমি এনসি ব্যবহারের জন্য প্রক্সিকমন্ড ব্যবহার করে এসএসএইচ চালাই তবে কী হবে?
# cat /dev/urandom | \
pv -ptebar | \
ssh -o "Proxycommand nc %h %p" root@192.168.1.150 'cat >/dev/null'
101MiB 0:00:30 [3.38MiB/s] [3.33MiB/s]
কাজ করে! 10x গতি।
এখন আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি - "নগ্ন" nc
কে হিসাবে হিসাবে ব্যবহার করার সময় Proxycommand
, আপনি কি মূলত এসএসএইচ ঠিক একই জিনিসটি করছেন না? অর্থাত্ একটি সকেট তৈরি করা, এসবিসির বন্দরের সাথে সংযোগ স্থাপন করা 22, এবং তারপরে এসএসএইচ প্রোটোকলটি সরিয়ে ফেলছেন?
ফলাফল গতির মধ্যে এই বিশাল পার্থক্য কেন?
পিএস এটি একাডেমিক অনুশীলন ছিল না - এর কারণে আমার borg
ব্যাকআপটি 10 গুণ দ্রুত গতিতে চলে। আমি কেন জানি না :-)
সম্পাদনা : প্রক্রিয়াটির একটি "ভিডিও" এখানে যুক্ত করা হয়েছে । Ifconfig এর আউটপুট থেকে প্রেরিত প্যাকেটগুলি গণনা করা, এটি পরিষ্কার যে উভয় পরীক্ষায় আমরা 40MB ডেটা প্রেরণ করছি, প্রায় 30 কে প্যাকেটে সেগুলি প্রেরণ করছি - যখন না ব্যবহার করছেন তখন খুব ধীর ProxyCommand
।
nc
লাইন বাফারিং ব্যবহার করে, যেখানেssh
কোনও বাফারিং নেই। সুতরাং (বা যদি তাই হয়) ssh ট্র্যাফিকের সাথে আরও বেশি প্যাকেট জড়িত।