সর্বাধিক মাধ্যমে আউটপুট জন্য লিনাক্স ডিস্ক ক্যাশে আচরণ আচরণ করা


12

আমি এখানে সর্বাধিক থ্রুপুট ইস্যুতে চলেছি এবং আমার নোবস টিউন করার জন্য কোন পরামর্শের প্রয়োজন। ব্যাকআপ বিতরণের জন্য আমরা একটি 10 ​​জিবিট ফাইলসভার চালাচ্ছি। এটি একটি এলএসআই মেগ্রেইড কন্ট্রোলারে একটি দুটি ডিস্ক এস-এটিএ 2 সেটআপ। সার্ভারটি 24 গিগাবাইট মেমরি পেয়েছে।

আমাদের সর্বশেষ আপলোড ব্যাকআপটি সর্বোচ্চ থ্রুপুট দিয়ে আয়না করা দরকার to

আমাদের "হট" ব্যাকআপগুলির জন্য RAID0 আমাদের প্রায় 260 এমবি / সেকেন্ড লিখে এবং 275 এমবি / সেকেন্ড পড়তে দেয়। আকারের 20 গিগাবাইট সহ একটি পরীক্ষিত tmpfs আমাদের প্রায় 1GB / সেকেন্ড দেয়। এই ধরণের থ্রুপুটটি আমাদের যা প্রয়োজন।

এখন আমি লিনাক্সের ভার্চুয়াল মেমরি সাবসিস্টেমটি টিউনটিতে না লিখে (বা আরও ভাল: ডিস্কে লিখন এবং স্মৃতিতে রেখে) যতক্ষণ সম্ভব স্মৃতিতে যতক্ষণ সম্ভব শেষ হওয়া আপলোড করা ফাইলগুলি ক্যাশে করতে পারি?

আমি নিম্নলিখিত সিস্টেপগুলি সেটআপ করি তবে তারা আমাদের প্রত্যাশিত থ্রুপুট দেয় না:

# VM pressure fixes
vm.swappiness = 20
vm.dirty_ratio = 70
vm.dirty_background_ratio = 30
vm.dirty_writeback_centisecs = 60000

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

সহায়তা বা পরামর্শ প্রয়োজন।


যত তাড়াতাড়ি সম্ভব লেখা শুরু করা আরও অর্থবোধ করে না? অন্যথায় এটি সর্বাধিক বাফার আকারে পৌঁছে যায় এবং হঠাৎ বন্ধ হয়ে যায়। এটি যদি পাশাপাশি লিখতে থাকে তবে আপনাকে আরও সময় দেয়।
জ্যান লিংস

আমার অ্যাপ্লিকেশনগুলি (বেস লিনাক্স + ভারফুটপিডি) 4 জিবি (মোট 24 জিবি) এর অধীনে ব্যবহার করার কারণে আমার কাছে 20 জিবি মেমরি রয়েছে। আমার ব্যাকআপগুলি 20 গিগাবাইট অবিচ্ছিন্ন। যদি আমি এগুলি বাফারে লিখিতভাবে পেতে পারি এবং তারপরে ব্যাকআপ রান করার পরে যথাক্রমে ডিস্কে লেখা হয় তবে এটি আমার ব্যাকআপ উত্স (ভার্চুয়াল সার্ভার) এর ডাউনটাইমকে উল্লেখযোগ্যভাবে হ্রাস করবে। PS: সার্ভারটি পরে থামতে পারে, কোনও সমস্যা নেই। এটি পুনরুদ্ধার করতে 30 মিনিট সময় পেয়েছে :)
পিটার মেয়ার

দেখে মনে হচ্ছে আপনি নেটওয়ার্কের মাধ্যমে ডেটা স্থানান্তর করতে যা কিছু অ্যাপ্লিকেশন ব্যবহার করছেন তা এটি ডিস্কে সিঙ্ক করছে। আপনি এটি এটি না করতে চাইবেন যাতে ডেটা কেবল ক্যাশে বসতে পারে, যদিও আমি প্রশ্ন করি যে আপনি ডিস্কগুলি যতটা দ্রুত রেখে দিতে পারেন তার চেয়ে বেশি ডেটা ফাটতে সক্ষম হতে চান কেন। এটি কোথাও একটি ডিজাইনের ত্রুটি নির্দেশ করে।
psusi

এটি ত্রুটির মতো মনে হচ্ছে: আপনার ব্যাকআপ সমাধানের জন্য পুরো সময়টি সার্ভারটি বন্ধ থাকার দরকার নেই।
psusi

1
@ পিটারমিয়ার: আপনার প্রচুর র‍্যাম থাকলেও লেখাগুলি শুরু হওয়ার অপেক্ষা করতে অপেক্ষা করা এখনও ভুল। আপনি যদি ফাইলগুলি সম্পাদনা করতে বা মুছতে যাচ্ছেন (অস্থায়ী ফাইলের মতো) এটির ডিস্কে যাওয়ার আগেই কেবলমাত্র তখনই কোনও অর্থবোধ করা যায় না। একটি ব্যাকআপ এটি করে না। আপনি যত তাড়াতাড়ি পটভূমি লেখার শুরু করতে চান। আপনার
পটভূমি_টিটিও

উত্তর:


6

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

আপনি কেবল অলস লেখার জন্য বিকল্প এবং অ্যাসিঙ্ক্রোনাস রাইটিং ক্রিয়াকলাপ সহ একটি লিখনব্যাক ক্যাশে ব্যবহার করতে পারবেন। সিঙ্ক্রোনাস রাইটিং অপারেশনগুলির জন্য ডিস্কে প্রতিশ্রুতিবদ্ধ হওয়া আবশ্যক এবং অলস-লিখিত কখনও হবে না। আপনার ফাইল সিস্টেমটি ঘন ঘন পৃষ্ঠ ফ্লাশ এবং সমকালীন লেখার কারণ হতে পারে (সাধারণত জার্নালিংয়ের কারণে, বিশেষত ডেটা = জার্নাল মোডে এক্সট্রি 3 সহ)। অতিরিক্ত হিসাবে, এমনকি "পটভূমি" পৃষ্ঠার ফ্লাশগুলি আনচড পড়া এবং সমকালীন লেখায় হস্তক্ষেপ করবে , সুতরাং এগুলি তাদের ধীর করে দেবে।

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

অন্য সব কিছু যদি ব্যর্থ হয় তবে আপনি একটি স্পষ্টত tmpfs ফাইল সিস্টেম সেট আপ করতে বাছাই করতে পারেন যেখানে আপনি নিজের ব্যাকআপগুলিকে অনুলিপি করেন এবং কেবলমাত্র তথ্যের পরে আপনার ডিস্কের সাথে ডেটা সিঙ্ক্রোনাইজ করেন - এমনকি স্বয়ংক্রিয়ভাবে ইনোটাইফাই ব্যবহার করে

পঠন ক্যাচিংয়ের জন্য জিনিসগুলি উল্লেখযোগ্যভাবে সহজ - ফোরকোরটোলস fadviseইউটিলিটি রয়েছে যার --willneedমধ্যে কার্নেলকে ফাইলের বিষয়বস্তুগুলি বাফার ক্যাশে লোড করার পরামর্শ দেওয়ার জন্য প্যারামিটার রয়েছে ।

সম্পাদনা:

vm.dirty_ratio = 70

এটিকে তাত্ত্বিকভাবে আই / ও ক্যাশে দেওয়ার জন্য আমাদের 16 গিগাবাইট দেওয়া উচিত এবং ডিস্কে এটি লেখা পর্যন্ত কয়েক মিনিট অপেক্ষা করা উচিত।

এটি আপনার পরীক্ষার দৃশ্যে ব্যাপকভাবে প্রভাব ফেলতে পারে না তবে আপনার বোঝার মধ্যে একটি ভুল ধারণা রয়েছে। নোংরা_আরটিও প্যারামিটারটি আপনার সিস্টেমের মোট মেমরির শতাংশ নয় বরং এটি আপনার সিস্টেমের ফ্রি মেমরির।

লেখার জন্য ভারী ভারী লেখার বিষয়ে আরও নিবিড় তথ্যের সাথে একটি নিবন্ধ রয়েছে ।


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

3

বা কেবলমাত্র আরও ডিস্ক পান ... আপনার থাকা ড্রাইভ অ্যারে কনফিগারেশনটি আপনার প্রয়োজনীয়তা জুড়ে সমর্থন করে না। এটি এমন একটি ক্ষেত্রে যেখানে সমাধানটি আপনার আসল চাহিদা মেটাতে পুনরায় কল্পনা করা উচিত। আমি বুঝতে পারি যে এটি কেবল ব্যাকআপ, তবে একটি ক্লডজি ফিক্স এড়ানোর জন্য এটি বোধগম্য।


একমত। কোন উপায় সময় SATA দুয়েক আছে ( সময় SATA ? গম্ভীরভাবে?) ড্রাইভ 275MB / সেকেন্ড টিকে থাকবে, এবং আমরা এমনকি অতল IOPs আপনি তাদের কাছ থেকে পাবেন বিষয়ে কথা বলছি না।
অ্যাডাপ্টার

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

সম্পূর্ণ ডান। আমি ভার্চুয়াল মেশিন চিত্রগুলি (সংখ্যার নোডগুলির জন্য খুব ছোট ছবিগুলি) সিঙ্ক করছি যা সিঙ্ক করার সময় ডাউন। অ্যাপটি তারের মতো কাজ করে ssh কিন্তু এফটিপি ব্যবহার করে। এবং ভাল, সিমুলেশনগুলি চালানো দরকার ... :)
পিটার মেয়ার

1
তারা Sata জাত কী তা বিবেচ্য নয়। 7200RPM নন-এন্টারপ্রাইজ ডিস্কগুলি কেবল থ্রুপুট বা বিলম্বের গ্যারান্টি দিতে পারে না।
অ্যাডাপ্ট্রি

1
@ অ্যাডাপ্ট্র, একটি ব্যাকআপ চলছে অনুক্রমিক রাইটস হতে।
psusi

1

মেমোরি ক্যাশে ব্যবহার করে ডেটা হ্রাসের ইঙ্গিত হতে পারে যেন কোনও কিছু ভুল হয়ে যায় যা মেমরিতে থাকে এবং ডিস্কে সংরক্ষণ না করা ডেটা হারিয়ে যায়।

এটি বলেছিল, ফাইল সিস্টেম পর্যায়ে এখানে টিউন করার দরকার আছে।

উদাহরণস্বরূপ, আপনি যদি ext4 ব্যবহার করে থাকেন তবে মাউন্ট বিকল্পটি ব্যবহার করতে পারেন:

বাধা = 0

এটি: "জেবিডি কোডে লেখার বাধাগুলি নিষ্ক্রিয় করে Write বা অন্যটি, বাধা নিষ্ক্রিয় করা নিরাপদে কর্মক্ষমতা উন্নত করতে পারে other

আরও এখানে: http://www.mjmwired.net/kernel/Docamentation/files systemms / ext4.txt


আমি একটি ভারী টিউনযুক্ত এক্সএফএস ব্যবহার করছি । এটি সম্পর্কে আরও উপরের মন্তব্যে এটি টিউন করা হয়েছে :)
পিটার মায়ার

ফাইল সিস্টেমটি mkfs.xfs -l অলস গণনা = 1, সংস্করণ = 2, আকার = 256m -i অ্যাট্রি = 2-ডি সুনিট = 512, সুইডথ = 1024 দিয়ে তৈরি করা হয়েছিল এবং এতে মাউন্ট করা হয়েছে: rw, noatime, logbufs = 8, লগবসাইজ = 256 কে, ওসিএনসিডিসেন্স, বিলম্ব, অ্যাট্রি 2, নোবারিয়ার, বরাদ্দ = 256 কে
পিটার মেয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.