সিসবেঞ্চের সাথে প্রচুর বেঞ্চমার্কিংয়ের পরে, আমি এই সিদ্ধান্তে পৌঁছেছি:
বেঁচে থাকার জন্য (পারফরম্যান্স-ভিত্তিক) এমন পরিস্থিতি যেখানে
- অশুভ অনুলিপি প্রক্রিয়া নোংরা পৃষ্ঠাগুলি বন্যা করে
- এবং হার্ডওয়্যার রাইটিং-ক্যাশে উপস্থিত রয়েছে (সম্ভবত এটি ছাড়াও)
- এবং প্রতি সেকেন্ডে সিঙ্ক্রোনাস রিড বা রাইট (আইওপিএস) সমালোচনা করে
সমস্ত লিফট, সারি এবং মলিন পৃষ্ঠা ক্যাশে কেবল ডাম্প করুন। নোংরা পৃষ্ঠাগুলির সঠিক স্থানটি সেই হার্ডওয়্যার রাইটিং-ক্যাশে র্যামে রয়েছে।
নোংরা_টিটিও (বা নতুন নোংরা_বাইটস) যথাসম্ভব কম সামঞ্জস্য করুন, তবে ক্রমান্বয়ে থ্রুপুটটিতে নজর রাখুন। আমার বিশেষ ক্ষেত্রে, 15 মেগাবাইট সর্বোত্তম ( echo 15000000 > dirty_bytes
) ছিল।
এটি সমাধানের চেয়ে হ্যাক বেশি কারণ র্যামের গিগাবাইট এখন কেবল নোংরা ক্যাশের পরিবর্তে পঠন ক্যাচিংয়ের জন্য ব্যবহৃত হয়। এই পরিস্থিতিতে নোংরা ক্যাশেটি ভালভাবে কাজ করার জন্য, লিনাক্স কার্নেল ব্যাকগ্রাউন্ড ফ্লুশারের গড় গতিতে অন্তর্নিহিত ডিভাইসটি অনুরোধগুলি গ্রহণ করে এবং ততক্ষণে পটভূমি ফ্লাশিং সামঞ্জস্য করতে হবে। সহজ নয়.
তুলনার জন্য বিশেষ উল্লেখ এবং মানদণ্ড:
dd
ডিস্কে শূন্যগুলি আনতে গিয়ে পরীক্ষিত , সাইব্যাঞ্চ বিশাল সাফল্য দেখিয়েছিল , 10 থ্রেড বিসাইঙ্ককে 16 কেবিতে 33 থেকে 700 আইওপিএস (নিষ্ক্রিয় সীমা: 1500 আইওপিএস) এবং 8 থেকে 400 আইওপিএস পর্যন্ত একক থ্রেড বৃদ্ধি করে।
লোড ছাড়াই, আইওপিএস অকার্যকর হয়েছিল (~ 1500) এবং থ্রুপুট কিছুটা হ্রাস পেয়েছে (251 এমবি / সেগুলি থেকে 216 এমবি / সেকেন্ডে)।
dd
কল:
dd if=/dev/zero of=dumpfile bs=1024 count=20485672
সিসবেঞ্চের জন্য, পরীক্ষার ফাইলটি 0 এর সাথে অদ্বিতীয় হতে প্রস্তুত ছিল:
dd if=/dev/zero of=test_file.0 bs=1024 count=10485672
sysbench 10 থ্রেডের জন্য কল করুন:
sysbench --test=fileio --file-num=1 --num-threads=10 --file-total-size=10G --file-fsync-all=on --file-test-mode=rndwr --max-time=30 --file-block-size=16384 --max-requests=0 run
একটি থ্রেডের জন্য সিস্বেঞ্চ কল:
sysbench --test=fileio --file-num=1 --num-threads=1 --file-total-size=10G --file-fsync-all=on --file-test-mode=rndwr --max-time=30 --file-block-size=16384 --max-requests=0 run
ছোট ব্লকের আকারগুলি আরও কঠোর সংখ্যা দেখিয়েছে।
- ফাইল-ব্লক-আকার = 4096 1 জিবি নোংরা_বাইটস সহ:
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
1 files, 10Gb each
10Gb total file size
Block size 4Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Calling fsync() after each write operation.
Using synchronous I/O mode
Doing random write test
Threads started!
Time limit exceeded, exiting...
Done.
Operations performed: 0 Read, 30 Write, 30 Other = 60 Total
Read 0b Written 120Kb Total transferred 120Kb (3.939Kb/sec)
0.98 Requests/sec executed
Test execution summary:
total time: 30.4642s
total number of events: 30
total time taken by event execution: 30.4639
per-request statistics:
min: 94.36ms
avg: 1015.46ms
max: 1591.95ms
approx. 95 percentile: 1591.30ms
Threads fairness:
events (avg/stddev): 30.0000/0.00
execution time (avg/stddev): 30.4639/0.00
--ফাই-ব্লক-আকার = 4096 15 এমবি নোংরা_বাইট সহ:
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
1 files, 10Gb each
10Gb total file size
Block size 4Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Calling fsync() after each write operation.
Using synchronous I/O mode
Doing random write test
Threads started!
Time limit exceeded, exiting...
Done.
Operations performed: 0 Read, 13524 Write, 13524 Other = 27048 Total
Read 0b Written 52.828Mb Total transferred 52.828Mb (1.7608Mb/sec)
450.75 Requests/sec executed
Test execution summary:
total time: 30.0032s
total number of events: 13524
total time taken by event execution: 29.9921
per-request statistics:
min: 0.10ms
avg: 2.22ms
max: 145.75ms
approx. 95 percentile: 12.35ms
Threads fairness:
events (avg/stddev): 13524.0000/0.00
execution time (avg/stddev): 29.9921/0.00
- ফাইল-ব্লক-আকার = 4096 নিষ্ক্রিয় সিস্টেমে 15 এমবি নোংরা_বাইটস সহ:
sysbench 0.4.12: মাল্টি-থ্রেড সিস্টেম মূল্যায়ন বেঞ্চমার্ক
Running the test with following options:
Number of threads: 1
Extra file open flags: 0
1 files, 10Gb each
10Gb total file size
Block size 4Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Calling fsync() after each write operation.
Using synchronous I/O mode
Doing random write test
Threads started!
Time limit exceeded, exiting...
Done.
Operations performed: 0 Read, 43801 Write, 43801 Other = 87602 Total
Read 0b Written 171.1Mb Total transferred 171.1Mb (5.7032Mb/sec)
1460.02 Requests/sec executed
Test execution summary:
total time: 30.0004s
total number of events: 43801
total time taken by event execution: 29.9662
per-request statistics:
min: 0.10ms
avg: 0.68ms
max: 275.50ms
approx. 95 percentile: 3.28ms
Threads fairness:
events (avg/stddev): 43801.0000/0.00
execution time (avg/stddev): 29.9662/0.00
টেস্ট-সিস্টেম:
- অ্যাডাপটেক 5405Z (এটি 512 এমবি রাইটিং-ক্যাশে সুরক্ষা সহ)
- ইন্টেল শিওন এল 5520
- 6 জিবিবি র্যাম @ 1066 মেগাহার্টজ
- মাদারবোর্ড সুপারমাইক্রো এক্স 8 ডিটিএন (5520 চিপসেট)
- 12 সিগেট ব্যারাকুডা 1 টিবি ডিস্ক
- 10 লিনাক্স সফ্টওয়্যার RAID 10
- কার্নেল ২.6.৩২
- ফাইল সিস্টেম xfs
- দেবিয়ান অস্থির
সংক্ষেপে, আমি এখন নিশ্চিত যে এই কনফিগারেশনটি নিষ্ক্রিয়, উচ্চ লোড এবং এমনকি ডেটাবেস ট্র্যাফিকের জন্য সম্পূর্ণ লোড পরিস্থিতিতে ভাল পারফর্ম করবে যা অন্যথায় অনুক্রমিক ট্র্যাফিক দ্বারা অনাহারিত হত। সিকোয়েন্সিয়াল থ্রুটপুট দুটি গিগাবিট লিঙ্কগুলি যে কোনওভাবে সরবরাহ করতে পারে তার চেয়ে বেশি, সুতরাং এটি কিছুটা হ্রাস করতে কোনও সমস্যা নেই।