পরিস্থিতি: আমাদের বেশিরভাগ উইন্ডোজ ক্লায়েন্ট নিয়মিত বড় বড় ফাইলগুলি (এফটিপি / এসভিএন / এইচটিটিপি পুট / এসসিপি) লিনাক্স সার্ভারগুলিতে ~ 100-160 মিটার দূরে আপলোড করে। আমাদের অফিসে 1 জিবি / এস সিঙ্ক্রোনাস ব্যান্ডউইথ এবং সার্ভারগুলি হয় এডাব্লুএস উদাহরণস্বরূপ বা ইউএস ডিসিগুলিতে শারীরিকভাবে হোস্ট করা হয়।
প্রাথমিক প্রতিবেদনটি ছিল যে কোনও নতুন সার্ভারের দৃষ্টান্তে আপলোডগুলি তার চেয়ে ধীর গতিতে ছিল। এটি পরীক্ষায় এবং একাধিক অবস্থান থেকে বেরিয়ে আসে; ক্লায়েন্টরা তাদের উইন্ডোজ সিস্টেম থেকে হোস্টের কাছে 2-5Mbit / s স্থিতিশীল দেখছিল।
আমি iperf -s
একটি অ্যাডাব্লুএস উদাহরণ এবং তারপরে অফিসের উইন্ডোজ ক্লায়েন্টের কাছ থেকে শুরু হয়েছিল:
iperf -c 1.2.3.4
[ 5] local 10.169.40.14 port 5001 connected with 1.2.3.4 port 55185
[ 5] 0.0-10.0 sec 6.55 MBytes 5.48 Mbits/sec
iperf -w1M -c 1.2.3.4
[ 4] local 10.169.40.14 port 5001 connected with 1.2.3.4 port 55239
[ 4] 0.0-18.3 sec 196 MBytes 89.6 Mbits/sec
পরবর্তী চিত্রগুলি পরবর্তী পরীক্ষাগুলিতে উল্লেখযোগ্যভাবে পরিবর্তিত হতে পারে, (এডাব্লুএসের বিভিন্নতা) তবে সাধারণত 70০ থেকে ১৩০ এমবিট / সে এর মধ্যে থাকে যা আমাদের প্রয়োজনের জন্য যথেষ্ট বেশি। ওয়্যারশার্কিং সেশন, আমি দেখতে পাচ্ছি:
iperf -c
উইন্ডোজ এসওয়াইএন - উইন্ডো 64 কেবি, স্কেল 1 - লিনাক্স এসওয়াইএন, এসিকে: উইন্ডো 14 কেবি, স্কেল: 9 (* 512)iperf -c -w1M
উইন্ডোজ এসওয়াইএন - উইন্ডোজ 64 কেবি, স্কেল 1 - লিনাক্স এসওয়াইএন, এসি: উইন্ডো 14 কেবি, স্কেল: 9
স্পষ্টতই লিঙ্কটি এই হাই থ্রুপুটটি বজায় রাখতে পারে, তবে এর কোনও ব্যবহার করতে আমার উইন্ডো আকার নির্ধারণ করতে হবে, যা বিশ্বের বেশিরভাগ বাস্তব অ্যাপ্লিকেশন আমাকে করতে দেয় না। টিসিপি হ্যান্ডশেকগুলি প্রতিটি ক্ষেত্রে একই সূচনা পয়েন্টগুলি ব্যবহার করে তবে বাধ্যতামূলকভাবে একটি স্কেল করে
বিপরীতে, একই নেটওয়ার্কের একটি লিনাক্স ক্লায়েন্ট থেকে একটি সোজা, iperf -c
(সিস্টেম ডিফল্ট 85kb ব্যবহার করে) আমাকে দেয়:
[ 5] local 10.169.40.14 port 5001 connected with 1.2.3.4 port 33263
[ 5] 0.0-10.8 sec 142 MBytes 110 Mbits/sec
কোনও জোর করে ছাড়াই, এটি প্রত্যাশা অনুযায়ী স্কেল করে। এটি হস্তক্ষেপকারী হप्स বা আমাদের স্থানীয় স্যুইচ / রাউটারগুলিতে কিছু হতে পারে না এবং উইন্ডোজ 7 এবং 8 ক্লায়েন্টকে একইভাবে প্রভাবিত করে বলে মনে হচ্ছে। আমি অটো-টিউনিং সম্পর্কে প্রচুর গাইড পড়েছি, তবে এগুলি সাধারণত খারাপ ভয়ঙ্কর হোম নেটওয়ার্কিং কিটের চারপাশে কাজ করার জন্য পুরোপুরি স্কেলিং অক্ষম করার বিষয়ে।
কেউ কি আমাকে বলতে পারে যে এখানে কী হচ্ছে এবং আমাকে এটি ঠিক করার একটি উপায় দিতে পারেন? (জিপিওর মাধ্যমে আমি রেজিস্ট্রিটিতে থাকতে পারি fe
নোট
প্রশ্নে থাকা এডাব্লুএস লিনাক্স উদাহরণটিতে নিম্নলিখিত কার্নেল সেটিংস প্রয়োগ করা হয়েছে sysctl.conf
:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 1048576
net.core.wmem_default = 1048576
net.ipv4.tcp_rmem = 4096 1048576 16777216
net.ipv4.tcp_wmem = 4096 1048576 16777216
আমি অন্য কোনও সম্ভাব্য বাধা অপসারণ করতে এবং সরানোর জন্য সার্ভারের শেষে dd if=/dev/zero | nc
পুনঃনির্দেশ ব্যবহার করেছি , তবে ফলাফলগুলি একই রকম। সঙ্গে টেস্ট (Cygwin, নেটিভ উইন্ডোজ, লিনাক্স) তাদের নিজ নিজ প্ল্যাটফর্মের উপর উপরে iperf পরীক্ষা যতটা একই ভাবে স্কেল।/dev/null
iperf
ncftp
সম্পাদন করা
আমি এখানে আরও একটি সামঞ্জস্যপূর্ণ জিনিস খুঁজে পেয়েছি যা প্রাসঙ্গিক হতে পারে:
এটি 1 এমবি ক্যাপচারের প্রথম দ্বিতীয়টি, জুম ইন। আপনি উইন্ডোটি স্কেল করে দেওয়ার সাথে সাথে বাফারটি আরও বড় হয়ে যাওয়ার সাথে আপনি ধীর গতিতে কর্ম দেখতে পাবেন । ডিফল্ট উইন্ডো আইপিএফ পরীক্ষা চিরতরে স্থিত হয়ে যায় ঠিক এমন সময়ে point 0.2 এর এই ছোট মালভূমিটি রয়েছে's অবশ্যই এটি একটি ডিজাইর উচ্চতা পর্যন্ত স্কেল করে তবে এটি কৌতূহল যে এটি করার আগে স্কেলিংয়ে এই বিরতি রয়েছে (মানগুলি 1022bytes * 512 = 523264) এর আগে এটি করা যায়।
আপডেট - 30 শে জুন।
বিভিন্ন প্রতিক্রিয়া অনুসরণ করা:
- সিটিসিপি সক্ষম করা - এটি কোনও পার্থক্য করে না; উইন্ডো স্কেলিং অভিন্ন। (যদি আমি এটি সঠিকভাবে বুঝতে পারি তবে এই সেটিংটি কনজেশন উইন্ডোটি সর্বাধিক আকারের চেয়ে বেশি আকারে বাড়ানোর চেয়ে বাড়িয়ে তোলে)
- টিসিপি টাইমস্ট্যাম্পগুলি সক্ষম করা। - এখানেও কোনও পরিবর্তন নেই।
- নাগলের অ্যালগরিদম - এটি উপলব্ধি করে এবং কমপক্ষে এর অর্থ হ'ল আমি গ্রাফের সেই নির্দিষ্ট ব্লিপগুলি সমস্যার কোনও ইঙ্গিত হিসাবে সম্ভবত উপেক্ষা করতে পারি।
- পিসিপি ফাইলগুলি: জিপ ফাইলটি এখানে উপলভ্য: https://www.DPboxbox.com/s/104qdysmk01lnf6/iperf-pcaps-10s- Win%2BLinux-2014-06-30.zip (বিটউইস্টের সাথে বেনামে,, 150MB তে এক্সট্রাক্ট তুলনার জন্য প্রতিটি ওএস ক্লায়েন্ট থেকে একটি)
আপডেট 2 - 30 শে জুন
ও, তাই কাইলের পরামর্শ অনুসরণ করে, আমি সিটিসিপি এবং চিমনি অফলোডকে অক্ষম করেছি: টিসিপি গ্লোবাল পরামিতি
----------------------------------------------
Receive-Side Scaling State : enabled
Chimney Offload State : disabled
NetDMA State : enabled
Direct Cache Acess (DCA) : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : ctcp
ECN Capability : disabled
RFC 1323 Timestamps : enabled
Initial RTO : 3000
Non Sack Rtt Resiliency : disabled
তবে দুঃখের বিষয়, থ্রুপুটটিতে কোনও পরিবর্তন হয়নি।
যদিও এখানে আমার কোনও কারণ / প্রভাবের প্রশ্ন রয়েছে: গ্রাফটি ক্লায়েন্টের কাছে সার্ভারের ACK- তে থাকা RWIN মানের। উইন্ডোজ ক্লায়েন্টগুলির সাথে, আমি কি এই ভেবে সঠিকভাবে বুঝতে পারি যে লিনাক্স এই নিম্ন পয়েন্টের বাইরে এই মানটি স্কেল করছে না কারণ ক্লায়েন্টের সীমিত সিডব্লিন এমনকি সেই বাফারটি পূরণ হতে বাধা দেয়? আরও কিছু কারণ থাকতে পারে যে লিনাক্স কৃত্রিমভাবে আরডব্লিনকে সীমাবদ্ধ করছে?
দ্রষ্টব্য: আমি ইসিএন এর নরকের জন্য চালু করার চেষ্টা করেছি; কিন্তু কোন পরিবর্তন নেই।
আপডেট 3 - 31 জুন।
হিউরিস্টিক্স এবং আরডব্লিউআইএন স্বয়ংক্রিয়তা অক্ষম করার পরে কোনও পরিবর্তন হয়নি ফান্টিটিওনালিটি টুইটগুলি ভাইয়েডিস ম্যানেজার ট্যাবগুলি উন্মোচিত করে এমন সফ্টওয়্যার দিয়ে ইন্টেল নেটওয়ার্ক ড্রাইভারগুলিকে সর্বশেষ (12.10.28.0) এ আপডেট করেছে। কার্ডটি একটি 82579 ভি চিপসেট অন-বোর্ড এনআইসি - (আমি রিয়েলটেক বা অন্যান্য বিক্রেতাদের সাথে ক্লায়েন্টদের কাছ থেকে আরও কিছু পরীক্ষা করতে যাচ্ছি)
এক মুহুর্তের জন্য এনআইসির প্রতি দৃষ্টি নিবদ্ধ রেখে, আমি নিম্নলিখিতগুলি চেষ্টা করেছি (বেশিরভাগ ক্ষেত্রে কেবল সম্ভাব্য দোষীদের খারিজ করা):
- বাফার গ্রহণ 256 থেকে 2 কে করুন এবং বাফারগুলি 512 থেকে 2 ক-তে প্রেরণ করুন (এখন উভয়ই সর্বাধিক) - কোনও পরিবর্তন নেই
- সমস্ত আইপি / টিসিপি / ইউডিপি চেকসাম অফলোডিং অক্ষম করে। - পরিবর্তন নেই.
- অক্ষম বৃহত প্রেরণ অফলোড - নাদা।
- আইপিভি 6 বন্ধ হয়েছে, কিউএস শিডিউলিং - এখন t
আপডেট 3 - 3 জুলাই
লিনাক্স সার্ভারের দিকটি সরিয়ে দেওয়ার চেষ্টা করে, আমি একটি সার্ভার 2012R2 ইনস্ট্যান্স শুরু করেছি এবং iperf
(সাইগউইন বাইনারি) এবং এনটিটিসিপি ব্যবহার করে পরীক্ষার পুনরাবৃত্তি করেছি ।
সাথে iperf
, সংযোগটি M 5Mbit / s ছাড়িয়ে যাওয়ার আগে আমাকে উভয় পক্ষের স্পষ্টভাবে উল্লেখ করতে -w1m
হয়েছিল । (ঘটনাক্রমে, আমার পরীক্ষা করা যেতে পারে এবং 91 মাইলের বিলম্বিত সময়ে 5 মিলিয়ন ডলার বিডিপি প্রায় সুনির্দিষ্টভাবে 64kb k সীমাটি স্পট করুন ...)
এনটিটিসিপি বাইনারিগুলি এখন এই জাতীয় সীমাবদ্ধতা দেখিয়েছে। ntttcpr -m 1,0,1.2.3.5
সার্ভারে এবং ntttcp -s -m 1,0,1.2.3.5 -t 10
ক্লায়েন্টে ব্যবহার করে আমি আরও ভাল থ্রুপুট দেখতে পাচ্ছি:
Copyright Version 5.28
Network activity progressing...
Thread Time(s) Throughput(KB/s) Avg B / Compl
====== ======= ================ =============
0 9.990 8155.355 65536.000
##### Totals: #####
Bytes(MEG) realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
79.562500 10.001 1442.556 7.955
Throughput(Buffers/s) Cycles/Byte Buffers
===================== =========== =============
127.287 308.256 1273.000
DPCs(count/s) Pkts(num/DPC) Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
1868.713 0.785 9336.366 0.157
Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
57833 14664 0 0 9.476
8 এমবি / এসগুলি এটিকে স্তরের স্তরে রেখে দেয় আমি স্পষ্টত বৃহত্তর উইন্ডোগুলির সাথে iperf
। অদ্ভুতভাবে, যদিও, 1273 বাফারে 80 এমবি = আবার একটি 64 কেবি বাফার। আরও একটি ওয়্যারশার্ক সার্ভার থেকে ফিরে আসা একটি ভাল, পরিবর্তনশীল RWIN দেখায় (স্কেল ফ্যাক্টর 256) যা ক্লায়েন্টটি পূরণ করছে বলে মনে হয়; সুতরাং সম্ভবত এনটিটিসিপি প্রেরণ উইন্ডোটির ভুল তথ্য সরবরাহ করছে।
আপডেট 4 - 3 রা জুলাই
@ ক্যারিহেডের অনুরোধে, আমি আরও কিছু পরীক্ষা করেছি এবং আরও কয়েকটি ক্যাপচার তৈরি করেছি, এখানে: https://www.roidbox.com/s/dtlvy1vi46x75it/iperf%2Bntttcp%2Bftp-pcaps-2014-07-03.zip
iperf
উইন্ডোজ থেকে পূর্বের মতো একই লিনাক্স সার্ভারে আরও দুটি এস (1.2.3.4): একটি 128 কে সকেটের আকার এবং ডিফল্ট 64k উইন্ডো (আবার again 5Mbit / s এর মধ্যে সীমাবদ্ধ) এবং 1MB সহ একটি উইন্ডো এবং ডিফল্ট 8kb সকেট পাঠান আকার। (স্কেল বেশি)ntttcp
একই উইন্ডোজ ক্লায়েন্ট থেকে একটি সার্ভার 2012R2 ইসি 2 উদাহরণে (1.2.3.5) একটি ট্রেস। এখানে, থ্রুপুট ভাল স্কেল। দ্রষ্টব্য: এনটিটিসিপি পরীক্ষার সংযোগটি খোলার আগে 6001 পোর্টে অদ্ভুত কিছু করে। নিশ্চিত যে সেখানে কি ঘটছে।- একটি এফটিপি তথ্য অনুসন্ধান করে,
/dev/urandom
সাইগউইন ব্যবহার করে কাছের অভিন্ন লিঙ্কস হোস্টে (1.2.3.6) 20MB আপলোড করেncftp
। আবার সীমাও আছে। উইন্ডোজ ফাইলজিলা ব্যবহার করে প্যাটার্নটি একই রকম।
iperf
বাফার দৈর্ঘ্য পরিবর্তন সময়ের সিক্যুয়েন্স গ্রাফের (অনেক বেশি উল্লম্ব বিভাগ) প্রত্যাশিত পার্থক্য তৈরি করে, তবে প্রকৃত থ্রুপুটটি অপরিবর্তিত।
netsh int tcp set global timestamps=enabled