লিনাক্সে ইনকামিং এবং আউটগোয়িং ব্যান্ডউইথ এবং লেটেন্সি সীমাবদ্ধ করুন


15

আমি বুঝতে পারি ইতিমধ্যে অনেক অনুরূপ প্রশ্ন জিজ্ঞাসা করা হয়েছে, তবে এখনও পর্যন্ত আমি আমার সমস্যার সমাধান খুঁজে পাইনি।

আমার কাছে একটি ভার্চুয়াল লিনাক্স সার্ভার রয়েছে (চলমান দেবিয়ান স্কুইজ) যা ওয়েবসাইটের গতি পরীক্ষার জন্য আমি ব্যবহার করি ওয়েবসাইটগুলির লোড সময়ের পরিমাণ বৃদ্ধি এবং হ্রাস পরিমাপ করতে use আমি ওয়েবসাইটগুলিতে রিয়েল ওয়ার্ল্ড লোড টাইমের কাছাকাছি আসতে সক্ষম হওয়ার জন্য এই সার্ভারটির ব্যান্ডউইথ এবং লেটেন্সি সীমাবদ্ধ করার চেষ্টা করছি, তবে এখনও ব্যর্থ হয়েছি।

আমি বিশেষত যা চাই তা হ'ল:

  • 50 এমএসের আগত এবং বহির্গামী বিলম্বটি সেট করতে।
  • 512 কেবিপিএসের আগত ব্যান্ডউইথ সীমা নির্ধারণ করতে।
  • 4096 কেবিপিএসের আউটগোয়িং ব্যান্ডউইথ সীমা নির্ধারণ করতে।

আমি নেটিম পড়তে এবং tcকমান্ডটি ব্যবহার করে যাচ্ছি , তবে এটি এখনও আমার মাথার উপরে রয়েছে। আমি এই কমান্ডটি একসাথে পরিচালনা করতে পেরেছি যা কাজ করে বলে মনে হচ্ছে বিলম্বকে নিয়ন্ত্রণ করতে, তবে আমি নিশ্চিত নই যে এটি কেবল বহির্গামী ল্যাটেন্সি বা উভয়ই পরিচালনা করে:

tc qdisc add dev eth0 root netem delay 50ms

আশেপাশে যে কোনও নেটওয়ার্ক গুরু আমাকে সাহায্য করতে পারে?

সম্পাদনা:

আরও গবেষণার পরে আমি আমার লক্ষ্যে অর্ধেক পৌঁছেছি, এই কমান্ডটি ব্যবহার করে সমস্ত বিদায়ী ট্র্যাফিক আমার যেমন ইচ্ছা তেমন আচরণ করে:

tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000

তবে, আমি এখনও আগত ট্র্যাফিক সঠিকভাবে থ্রোট করতে সক্ষম হইনি। আমি শিখেছি যে আমার একটি "ইনগ্র্রেস পলিসার ফিল্টার" ব্যবহার করার কথা ছিল যা আমি নীচের কমান্ডটি দিয়ে বিভিন্ন মান দিয়ে ঘুরে বেড়াতে চেষ্টা করেছি, তবে ভাগ্য নেই।

tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop

ব্যান্ডউইদথ কমান্ড দ্বারা প্রভাবিত হয় যদিও উপরের মানগুলি 2MB / s থেকে গতি শুরু করে এবং স্থানান্তর অগ্রগতির সাথে সাথে এটি আস্তে আস্তে প্রায় 80-90 কেবি / সেকেন্ডে নেমে যায় যা স্থানান্তরিত হওয়ার প্রায় 30 সেকেন্ড পরে পৌঁছায়।

আমি কী ভুল করছি সে সম্পর্কে কোনও ধারণা?


netem delay 50msবিলম্বিতা সীমাবদ্ধ করে না। এটি 50msঅন্যথায় যা হত তার তুলনায় এটি বিলম্বকে বাড়িয়ে তোলে ।
কাস্পার্ড

সত্যিই আপনি ঠিক বলেছেন। শব্দের সীমাটি সরানো হয়েছে কারণ এটি আমি
50 মিমি

উত্তর:


12

পরিশেষে আমি সার্ভারে কেবলমাত্র বহির্মুখী ব্যান্ডউইথ / বিলম্বিতা সেট করার জন্য স্থির হয়েছি এবং তারপরে ক্লায়েন্টের সাথে একই কাজ করে কার্যকরভাবে একই ফলাফলটিতে পৌঁছেছি।

আমার লক্ষ্যগুলি পৌঁছানোর জন্য আমি যথাক্রমে সার্ভার এবং ক্লায়েন্টে চালিত কমান্ডগুলি:

সার্ভার: 4 এমবিট 50 এমএস

tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 4Mbit
tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 50ms

ক্লায়েন্ট: 512 কেবিট 50 এমএস

tc qdisc add dev vmnet1 handle 1: root htb default 11
tc class add dev vmnet1 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev vmnet1 parent 1:1 classid 1:11 htb rate 512kbit
tc qdisc add dev vmnet1 parent 1:11 handle 10: netem delay 50ms

আমি কয়েক মাস ধরে এটি খুঁজছি ধন্যবাদ। একটি প্রশ্ন? আপনি কিভাবে নিয়ম মুছবেন? tc শ্রেণীর দেল দেব এথ0 মূলটি আরটিএনটিএল LINK এর উত্তরগুলি দেখায়: এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
নুর

এটি কয়েক মাস আগে ছিল, তবে আমার মনে হচ্ছে এটি Qdisc অপসারণের জন্য যথেষ্ট ছিল: tc qdisc del dev eth0 root
yzfr1

2

প্রায় 80-90 কেবিট / এস কি আশা করে তা নিয়ে

    tc filter add ... police rate 1.0mbit ...

আপনি আগত ডেটা 1 এমবিট / সেকেন্ড এলে তা ছুঁড়ে ফেলতে বলুন, এটি প্রায় 125 কেবাইট / সে। এরপরে রিমোট সার্ভারটি তার থেকে অনেক কম হয়ে যাবে (সম্ভবত অর্ধেক, নিশ্চিত নয়)। এর পরে, সমস্ত প্যাকেটগুলি আসে, সুতরাং 125 কেবাইট / সেকেন্ডে পৌঁছানো পর্যন্ত দূরবর্তী প্রান্তটি ধীরে ধীরে গতি বাড়ায়। আপনি গড়ে 125 কেবিট / এস এর নিচে বেশিরভাগ গড় থ্রুটপুট পাবেন যা ইনগ্রিং শেপিংয়ের সাধারণ।

আমি কিছুটা অবাক হয়েছি যে গতিটি ইতিমধ্যে স্থানে থাকা এনগ্রিস পলিসি ফিল্টারের সাথে 2 এমবাইট / সেকেন্ডে পৌঁছানো উচিত। আপনি কোথায় পরিমাপ করেছেন - ডাউনস্ট্রিম ক্লায়েন্টে (প্রোগ্রামেম) বা কোনও প্রবাহের রাউটারে? অথবা সম্ভবত আপনি প্রথমে সংযোগটি শুরু করেছিলেন এবং কেবলমাত্র পরে আপনি জায়গায় প্রবেশের নীতি ফিল্টারটি লাথি মেরেছিলেন?

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