উবুন্টুতে কম বিলম্বিত টিসিপি সেটিংস


10

আমার ল্যাবটিতে উবুন্টুতে পরিমাপের জন্য একটি সার্ভার রয়েছে। এবং সি প্রোগ্রাম রয়েছে, যা টিসিপি সংযোগের মাধ্যমে ডেটা গ্রহণ করে এবং যত তাড়াতাড়ি সম্ভব উত্তর পাঠানো উচিত।

কনফিগারেশন

  • সিপিইউস: 2 প্রসেসর এক্স 4 কোর - ইনটেল (আর) জিয়ন (আর) সিপিইউ E5345 @ 2.33GHz
  • র‌্যাম: 12 জিবি
  • এনআইসি: ইন্টেল কর্পোরেশন 80003ES2LAN গিগাবিট ইথারনেট নিয়ামক / 82546EB গিগাবিট ইথারনেট নিয়ামক
  • নেটওয়ার্ক স্যুইচ: সিসকো অনুঘটক 2960
  • ডেটা তথ্য: ডেটা ব্লকগুলি প্রায় আসে। প্রতি 10 মিলিসেকেন্ড। ডেটা ব্লকের আকার প্রায়। 1000 বাইট।

প্যাকেটগুলি গ্রহণ করার সময় নেটওয়ার্কের ল্যাটেন্সিটি অত্যন্ত সমালোচিত (দশকের মতো মাইক্রোসেকেন্ডগুলি গুরুত্বপূর্ণ)। আমি প্রোগ্রামটি সর্বোচ্চে অনুকূলিত করেছি, তবে উবুন্টুকে টুইট করার আমার কোনও অভিজ্ঞতা নেই।

প্যাকেট প্রক্রিয়াকরণ / প্রেরণে স্থানীয় বিলম্ব কমাতে উবুন্টুতে কী কনফিগার করা যায়?


হ্যাঁ, আমি সার্ভারের মেক / মডেলটি জানতে চাই।
ew white

আপনার আরও গভীরভাবে খনন করা উচিত। উচ্চ ফ্রিকোয়েন্সি ব্যবসায়ের জন্য কার্নেল অপ্টিমাইজেশন সম্পর্কে কিছু স্টাফ পড়ুন। সিসকো পেপার বিক্রয় করুন: cisco.com/c/dam/en/us/products/collateral/switches/… সুতরাং উভয় পক্ষের একটি শালীন PCI-E কার্ড পান কিছুটা সাশ্রয় হবে। সম্ভবত (আপনি এটির জন্য কতটা সময় ব্যয় করতে চান তার উপর নির্ভর করে) আপনি বিভিন্ন সেটিংস দিয়ে কমপক্ষে কার্নেলটি পুনর্নির্মাণ করবেন, উবুন্টুর প্রচুর স্টাফ অপসারণ করতে হবে তবে আপনার দরকার নেই। সুতরাং যেমন মন্তব্য মন্তব্যগুলিতে ewite লিখেছেন, উবুন্টু সর্বনিম্ন সেটিংসের জন্য নিখুঁত হতে পারে না।
ডেনিস নোল্টে

হার্ডওয়্যার তালিকাভুক্ত, এটি ২০০৮-যুগের সরঞ্জাম (ইনটেল 5300-সিরিজের সিপিইউ)। তারপরে, খুব বেশি বিশেষ লো-লেটেন্সি হার্ডওয়্যার পরিবর্তন সম্ভব হয়নি। আমি সিস্টেমটি বায়োসকে উচ্চ-পারফরম্যান্স মোডে চালিত করতে এবং সিপিইউ সি-স্টেটস অক্ষম করতে চাই।
ew

@ নতুন সাদা, হ্যাঁ, আপনি 2008-যুগের সরঞ্জাম সম্পর্কে ঠিক বলেছেন। আমি আপনার পরামর্শ চেষ্টা করব। ধন্যবাদ!
অ্যালেক্স ভি

TCP_NODELAY- এর জন্য এই সফ্টওয়্যারটিকে টুইঙ্ক করার কোনও ক্ষমতা?
ম্যাট

উত্তর:


10

সত্যি বলতে, আমি এর জন্য উবুন্টু ব্যবহার করব না ... তবে কোনও বিকল্প রয়েছে যা কোনও লিনাক্স ভেরিয়েন্টে প্রয়োগ করা যেতে পারে।

আপনি আপনার নেটওয়ার্ক স্ট্যাক বাফার বাড়াতে চাইবেন:

net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

যদি অ্যাপ্লিকেশনটি ডিস্কে লিখিত হয় তবে সম্ভবত একটি শিডিয়ুলার / লিফট পরিবর্তন প্রয়োজন হবে (যেমন deadlineলিফট)।

সার্ভার স্তরে, আপনি সিপিইউ গভর্নর এবং শক্তি এবং সিপিইউ ফ্রিকোয়েন্সি ম্যানেজমেন্ট (পি-স্টেটস, সি-স্টেটস) পরিবর্তন করতে পারেন।

ওএস স্তরে, আপনি আপনার অ্যাপ্লিকেশনটির রিয়েলটাইম অগ্রাধিকার ( chrt) টি পরিবর্তন করতে পারবেন , বাধা হ্রাস করতে অনুকূল করে, এটি একটি সিপিইউ বা সিপিইউ'র গোষ্ঠীতে পিন করুন taskset, এবং কোনও অপ্রয়োজনীয় পরিষেবা বা ডেমন বন্ধ করে দিতে পারেন।

আপনি এখানে কিছু পরামর্শ দেখতেও পাবেন: 2 টি লিনাক্স হোস্টের মধ্যে কীভাবে বিলম্বের সমস্যা সমাধান করবেন

জড়িত হার্ডওয়্যার বা নেটওয়ার্কিং সরঞ্জামগুলি না জেনে আরও নির্দিষ্ট হওয়া শক্ত।


3
এটি সত্যই ধর্মীয় বিতর্কের উপযুক্ত স্থান নয়। এটিকে অন্য কোথাও নিয়ে যান, যেমন চ্যাট।
মাইকেল হ্যাম্পটন

1
@ মিশেলহ্যাম্পটন প্রশ্ন সম্পর্কিত আলোচনার আকর্ষণীয় লিঙ্কগুলি ছিল: রেড হ্যাট রিয়েলটাইম টিউনিং গাইড
অ্যালেক্স ভি

6

আপনি যদি উচ্চ পারফরম্যান্সের পথে চলে যান তবে আপনি আপনার অ্যাপ্লিকেশনটিতে হস্তক্ষেপ করার কারণে যতটা সম্ভব অন্যান্য কয়েকটি (নির্ধারিত) প্রক্রিয়া চালাতে চান।

লিনাক্স, ক্লাসিকাল ইউএনআইএক্স অপারেটিং সিস্টেমগুলির মতো, একাধিক অ্যাপ্লিকেশনগুলি একযোগে সুষ্ঠুভাবে চালানোর জন্য ডিজাইন করা হয়েছে এবং উত্স অনাহার প্রতিরোধ করার চেষ্টা করে এবং আপনি বিপরীত দিকে লক্ষ্য রেখে যাবেন, আপনার অ্যাপ্লিকেশন ব্যতীত অন্য সব কিছু অনাহারে রাখবেন। ওএস পর্যায়ে সহজ ধাপ পরিবর্তন করা হয় চমৎকার , স্তর এবং আপনার আবেদনের রিয়েল টাইমে অগ্রাধিকার পরিবর্তন নির্ধারণকারী বা যাচ্ছেন রিয়েল-টাইম কার্নেল।

টিসিপি / আইপি সাধারণত সংযোগ ড্রপগুলি রোধ করতে এবং ব্যান্ডউইথের কার্যকর ব্যবহার উপলভ্য করতে সুর করা হয়। খুব দ্রুত লিঙ্কের মধ্যে দিয়ে সম্ভব সর্বনিম্ন বিলম্বের সম্ভাব্যতা অর্জনের জন্য, এএ কানেকশন থেকে সর্বাধিক ব্যান্ডউইথ পাওয়া সম্ভব নয় যেখানে কিছু অন্তর্বর্তী লিঙ্কগুলি আরও সীমাবদ্ধ রয়েছে, আপনি নেটওয়ার্ক স্ট্যাকের টিউনিং সামঞ্জস্য করতে চলেছেন।

 sysctl -a 

আপনি টিউন করতে পারেন এমন কর্নেল সেটিংসের একটি হোস্ট আপনাকে দেখায়। আপনি আইপিভি 4 বা আইপিভি 6 ব্যবহার করছেন কিনা এবং সেটিংস নির্ভর করে আপনি ইতিমধ্যে আপনার অ্যাপ্লিকেশনটিতে যা করছেন তবে আগ্রহের বিষয়গুলি হ'ল:

  • net.ipv4.tcp_window_scaling=1 আরএফসি 1323 - K৪ কে-র চেয়ে বড় আইপিভি 4 টিসিপি উইন্ডো আকারের জন্য সমর্থন - সাধারণত উচ্চ ব্যান্ডউইথ নেটওয়ার্কে প্রয়োজন
  • net.ipv4.tcp_reordering=3 টিসিপি প্যাকেট হ্রাস এবং ধীরে ধীরে শুরুতে না গিয়ে আইসিভি 4 প্যাকেটটি টিসিপি প্যাকেট স্ট্রিমে পুনঃক্রম করা যায়।
  • net.ipv4.tcp_low_latency=1উচ্চতর মাধ্যমে আউটপুট তুলনায় কম বিলম্বকে অগ্রাধিকার দেওয়ার উদ্দেশ্যে; সেটিং = 1 আইপিভি 4 টিসিপি প্রিকিউজিং প্রক্রিয়াটি অক্ষম করে
  • net.ipv4.tcp_sack=0 1 এ সেট করা আইপিভি 4 এর জন্য নির্বাচিত স্বীকৃতি সক্ষম করে, যার জন্য টিসিপি_টাইমস্ট্যাম্পগুলি সক্ষম করা দরকার এবং কিছু প্যাকেট ওভারহেড যুক্ত করে, যা আপনার প্যাকেটলোস অভিজ্ঞতা না হলে আপনার প্রয়োজন হয় না you
  • net.ipv4.tcp_timestamps=0 যেখানে কেবল বস্তা প্রয়োজন সেখানে পরামর্শ দেওয়া হয়।
  • net.ipv4.tcp_fastopen=1 খোলার এসওয়াইএন প্যাকেটে ডেটা প্রেরণে সক্ষম করুন।

বেশিরভাগ যদি কার্নেল উত্সে সমস্ত ভাল নথিভুক্ত না হয় ।

আপনি অবশ্যই কাঁচা টিসিপি সকেট কোড করতে পারেন এবং মূলত কার্নেল টিসিপি / আইপি স্ট্যাককে পুরোপুরিভাবে পাস করতে পারেন।

প্রায়শই উচ্চ সুরযুক্ত সিস্টেমগুলি একটি বিশ্বস্ত নেটওয়ার্কে চালিত হয় এবং তাদের স্থানীয় (iptables) ফায়ারওয়াল অক্ষম করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.