সীমিত লিনাক্সের পটভূমি ফ্লাশ (নোংরা পৃষ্ঠাগুলি)


26

লিনাক্সে ব্যাকগ্রাউন্ড ফ্লাশিং হয় যখন হয় খুব বেশি লিখিত ডেটা মুলতুবি থাকে (/ proc / sys / vm / নোংরা_ব্যাকগ্রাউন্ড_রাটিওয়ের মাধ্যমে সামঞ্জস্যযোগ্য) বা মুলতুবি লেখার জন্য একটি সময়সীমা পৌঁছে যায় (/ proc / sys / vm / নোংরা_প্রেস_সেন্টাইসেস)। অন্য কোনও সীমা আঘাত না করা (/ proc / sys / vm / নোংরা_আরটিও), আরও লিখিত ডেটা ক্যাশে হতে পারে। আরও লেখার ব্লক হবে।

তত্ত্বীয়ভাবে, এটি অন্যান্য প্রক্রিয়াগুলিকে বিরক্ত না করে নোংরা পৃষ্ঠাগুলি লিখতে একটি পটভূমি প্রক্রিয়া তৈরি করা উচিত। অনুশীলনে, এটি আনচড পড়া বা সিঙ্ক্রোনাস লিখিত কোনও প্রক্রিয়া বিরক্ত করে। খারাপভাবে। এর কারণ ব্যাকগ্রাউন্ড ফ্লাশটি আসলে 100% ডিভাইসের গতিতে লেখেন এবং এই সময়ে যে কোনও ডিভাইস অনুরোধ বিলম্বিত হবে (কারণ রাস্তায় সমস্ত সারি এবং লেখার ক্যাশে ভরাট রয়েছে)।

ফ্লাশিং প্রক্রিয়া প্রতি সেকেন্ডে অনুরোধের পরিমাণ সীমাবদ্ধ করার কোনও উপায় কি অন্যথায় কার্যকরভাবে অন্যান্য ডিভাইস I / O কে অগ্রাধিকার দিতে পারে?


লিনাক্স কার্নেল মেইলিং লিস্টে vger.kernel.org/vger-lists.html#linux-kernel

আপনি কী আইও শিডিউলার ব্যবহার করছেন?
দিনফ্লুয়েন্স

বিভিন্ন (সিএফকিউ, সময়সীমা) চেষ্টা করেছিলেন, তবে আমার ধারণা আমি এগুলি কেবল নির্ভরযোগ্যভাবে কাজ করি যখন কোনও ব্যাটারি ব্যাকড রাইটিং-ক্যাশে অন্তর্ভুক্ত থাকে না। একটি ডিস্ক অ্যারের মতো আমি পিসিআই বাস গতিতে (র‌্যাম) 1 জিবিবি ডেটা খেয়েছি এবং তারপরে রিয়্যালিটি-ওয়ালটি হিট করেছি। সমস্ত LUNs এর জন্য কয়েক সেকেন্ড শূন্য I / O। আসল ডিভাইসের গতির মোটামুটি অনুমান করার জন্য থ্রোটলিং ফ্লাশগুলি (কমপক্ষে ব্যাকগ্রাউন্ডে থাকা) সেই ভিড় সমস্যার সমাধান করবে।
কর্কম্যান

1
আমি সম্প্রতি / সিস্টেমে / ব্লক / এসডিএক্স / সারি / এনআর_রিক্যাস্টগুলি একটি প্রধান টিউনেবল হওয়ার বিষয়ে সচেতন হয়েছি। এটিকে ন্যূনতম (আমার ক্ষেত্রে = 4) এ পরিণত করা সমবর্তী লোডের বিলম্বকে আরও উন্নত করে: সিসাবেঞ্চ ফিনসিঙ্ক এলোমেলো লেখাগুলি প্রতি সেকেন্ডে 4 (!) থেকে 80-90-তে লাফিয়ে বাসের গতিতে লিখতে গিয়ে। লোড না করা কর্মক্ষমতা অকার্যকর বলে মনে হচ্ছে। সময়সূচী সব একই, নূপ বা সময়সীমা অনুকূল মনে হয়। এটি বেশিরভাগ BBWC কনফিগারেশনের ক্ষেত্রে সত্য হতে পারে true
কর্কম্যান

উত্তর:


20

সিসবেঞ্চের সাথে প্রচুর বেঞ্চমার্কিংয়ের পরে, আমি এই সিদ্ধান্তে পৌঁছেছি:

বেঁচে থাকার জন্য (পারফরম্যান্স-ভিত্তিক) এমন পরিস্থিতি যেখানে

  • অশুভ অনুলিপি প্রক্রিয়া নোংরা পৃষ্ঠাগুলি বন্যা করে
  • এবং হার্ডওয়্যার রাইটিং-ক্যাশে উপস্থিত রয়েছে (সম্ভবত এটি ছাড়াও)
  • এবং প্রতি সেকেন্ডে সিঙ্ক্রোনাস রিড বা রাইট (আইওপিএস) সমালোচনা করে

সমস্ত লিফট, সারি এবং মলিন পৃষ্ঠা ক্যাশে কেবল ডাম্প করুন। নোংরা পৃষ্ঠাগুলির সঠিক স্থানটি সেই হার্ডওয়্যার রাইটিং-ক্যাশে র‌্যামে রয়েছে।

নোংরা_টিটিও (বা নতুন নোংরা_বাইটস) যথাসম্ভব কম সামঞ্জস্য করুন, তবে ক্রমান্বয়ে থ্রুপুটটিতে নজর রাখুন। আমার বিশেষ ক্ষেত্রে, 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
  • দেবিয়ান অস্থির

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


'নোংরা_বফারগুলির জন্য সর্বোত্তম 15 অংশ' অংশটি পৌঁছানোর আপনার পদ্ধতিটি কী?
মার্সিন

1
বিচার ও ত্রুটি। যেমন, আমি পরবর্তী 15 বার এবং ঠিক আইওপিএস দিয়ে শেষ না হওয়া পর্যন্ত পরবর্তী সময়ে অর্ধেক পরিমাণ পরিবর্তন করুন। বর্তমান কার্নেল ৩.২ বিটিডাব্লু খুব ভিন্ন আচরণ করতে পারে।
কর্কম্যান

2
আমাকে সঠিক পথে রাখার জন্য ধন্যবাদ বলতে চাইছিল। জেন সার্ভার নোডের সাথে কিছু অনুরূপ সমস্যা ছিল। দূষিত পৃষ্ঠাগুলির ফলে পিএইচপি-এফপিএম / এপিসি ক্যাশে পরিণত হয়েছে। এপিসি ক্যাশে মেমরির মডেলটি সামঞ্জস্য করা আমাদের জন্য সমস্যাটি সমাধান করেছে। ডিস্কিও 20% ব্যবহার থেকে 0 এ গিয়েছিল
জেফাত্রকাইড

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

3

যদিও কার্নেল প্যারামিটারগুলির সুরকরণ সমস্যাটি থামিয়েছে, তবুও এটি সম্ভব আপনার অ্যাডাপ্টেক 5405Z নিয়ামক যা আপনার 1 ফেব্রুয়ারী, 2012 ফার্মওয়্যার আপডেটে স্থির করা হয়েছিল তার বাগের ফলস্বরূপ performance প্রকাশের নোটগুলিতে বলা হয়েছে "উচ্চমানের I / O স্ট্রেস চলাকালীন ফার্মওয়্যারটি ঝুলতে পারে এমন একটি সমস্যা স্থির করে।" সম্ভবত আপনি / O হিসাবে ছড়িয়ে পড়া এই বাগটিকে ট্রিগার হওয়া থেকে রোধ করার জন্য যথেষ্ট ছিল তবে এটি কেবল অনুমান।

এখানে প্রকাশের নোটগুলি দেওয়া হয়েছে: http://download.adaptec.com/pdfs/readme/relnotes_arc_fw-b18937_asm-18837.pdf

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

aacraid: Host adapter abort request (0,0,0,0)
[above was repeated many times]
AAC: Host adapter BLINK LED 0x62
AAC0: adapter kernel panic'd 62.
sd 0:0:0:0: timing out command, waited 360s
sd 0:0:0:0: Unhandled error code
sd 0:0:0:0: SCSI error: return code = 0x06000000
Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT,SUGGEST_OK
sd 0:0:0:0: timing out command, waited 360s
sd 0:0:0:0: Unhandled error code
sd 0:0:0:0: SCSI error: return code = 0x06000028
Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT,SUGGEST_OK
sd 0:0:0:0: timing out command, waited 360s
sd 0:0:0:0: Unhandled error code
sd 0:0:0:0: SCSI error: return code = 0x06000028

এখানে অ্যাডাপটেক RAID কন্ট্রোলারের মডেল নম্বর রয়েছে যা ফার্মওয়্যারের রিলিজ নোটগুলিতে তালিকাভুক্ত রয়েছে যাতে উচ্চ I / O হ্যাং ফিক্স রয়েছে: 2045, 2405, 2405Q, 2805, 5085, 5405, 5405Z, 5445, 5445Z, 5805, 5805Q, 5805Z, 5805ZQ, 51245, 51645, 52445।


1
বাহ, আপনার ইনপুট জন্য ধন্যবাদ। যদিও এটি আমার ক্ষেত্রে ছিল না, আপনি সম্পূর্ণরূপে এইচডব্লিউ রেড এড়াতে এবং কেবলমাত্র এইচবিএতে যাওয়ার জন্য আরও একটি কারণ আমাকে দিয়েছেন। HW RAID এর এখনও বিবিডব্লিউসি সুবিধা রয়েছে, তবে কার্নেলের মধ্যে বিচে ক্যাচিংয়ের মতো জিনিসগুলি এমনকি এটি অদৃশ্য হয়ে যায়। এইচডাব্লু র‌্যাডের কন কন সাইডটি হ'ল ফর্মওয়্যার বাগগুলি বর্ণনা করার মতো। আমার কাছে ডিআরবিডি সেটআপ এবং উচ্চ আই / ও লোড যার ফলে ফার্মওয়্যার-রিসেট রয়েছে তার সাথে আমার আরও একটি সিস্টেম ছিল, তাই এটি পেরে ওঠা বিরল নয় (সম্ভবত এটি ঠিক ত্রুটি ছিল)
কর্কম্যান

1

একটি কার্নেল যা "ডাব্লুবিটি" অন্তর্ভুক্ত:

ব্লক স্তরের উন্নতি , LWN.net

রাইটব্যাক থ্রোটলিংয়ের মাধ্যমে, [ব্লক স্তর] কোডেল নেটওয়ার্ক শিডিউলারের কাছ থেকে নেওয়া কৌশল ব্যবহার করে অতিরিক্ত আই / ও ল্যাটেন্সি ছাড়াই সর্বাধিক কর্মক্ষমতা পাওয়ার চেষ্টা করে। কোডেল নেটওয়ার্ক প্যাকেটের নিরীক্ষিত সর্বনিম্ন বিলম্বকে চিহ্নিত করে এবং যদি এটি একটি প্রান্তিক মানের চেয়ে বেশি হয়, এটি প্যাকেটগুলি বাদ দেওয়া শুরু করে। আই / ও সাব-সিস্টেমে লেখাগুলি বাদ দেওয়া উচিত, তবে একইরকম কৌশল অনুসরণ করা হয় যাতে কার্নেল দু'টি পড়া এবং লেখার ন্যূনতম বিন্দুতা পর্যবেক্ষণ করে এবং, যদি এটি একটি প্রান্তিক মানের চেয়ে বেশি হয়, তবে এটি ব্যাকগ্রাউন্ড রাইটব্যাকের পরিমাণকে হ্রাস করতে শুরু করে এটা করা হচ্ছে। এই আচরণটি 4.10 এ যুক্ত হয়েছিল; অক্সবো বলেছিলেন যে বেশ ভাল ফলাফল দেখা গেছে।

ডাব্লুবিটি-র জন্য নতুন ব্লক-এমকিউ ব্লক স্তরে স্যুইচিংয়ের দরকার নেই। এটি বলেছে, এটি সিএফকিউ বা বিএফকিউ I / O শিডিউলারের সাথে কাজ করে না। আপনি ডাব্লুবিটি ব্যবহার করতে পারেন সময়সীমা / এমকিউ-ডেডলাইন / নুপ / কোনও সিডিউলারের সাথে। আমি বিশ্বাস করি এটি নতুন "কেবার" আই / ও শিডিউলারের সাথেও কাজ করে।

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

রানটাইম কনফিগারেশন রয়েছে /sys/class/block/*/queue/wbt_lat_usec

সন্ধান করার জন্য বিল্ড কনফিগারেশন বিকল্পগুলি

/boot/config-4.20.8-200.fc29.x86_64:CONFIG_BLK_WBT=y
/boot/config-4.20.8-200.fc29.x86_64:# CONFIG_BLK_WBT_SQ is not set
/boot/config-4.20.8-200.fc29.x86_64:CONFIG_BLK_WBT_MQ=y

আপনার সমস্যার বিবৃতিটি ডাব্লুবিটি-র লেখক দ্বারা 100% নিশ্চিত হয়েছে - ভাল হয়েছে :-)।

[প্যাচসেট] ব্লক: বাফার রাইটব্যাক থ্রোটলিং

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

$ dd if=/dev/zero of=foo bs=1M count=10k

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

কিছু সাম্প্রতিক পরীক্ষার ফলাফল এখানে পাওয়া যাবে:

https://www.facebook.com/axboe/posts/10154074651342933

প্যাচসেটের বৃহত্তর বিবরণের জন্য পূর্ববর্তী পোস্টগুলি দেখুন।


সমস্যাটি স্বীকৃত এবং কার্নেলের অভ্যন্তরে এখনই মোকাবেলা হয়েছে তা দেখে আমি আনন্দিত। মনে রাখবেন ব্লক-এমকিউ মোটামুটি নতুন এবং সম্ভবত এখনও এটি পরিপক্ক নয়
কর্কম্যান

@ কর্কম্যান দীর্ঘশ্বাস ফেললেন, আমি অনুমান করি মিথ্যা জড়তা এড়াতে আমি উদ্ধৃতিটি মঙ্গাল করব। আমি সম্মত হই যে এটি গত কয়েক বছরে যুক্ত করা হয়েছে, এরপরেও পারফরম্যান্সের প্রতিরোধ বা আরও খারাপ হতে পারে। AFAIR রক্ষণাবেক্ষণকারী ডেটা দুর্নীতির ফিক্সটি এই অর্থে খারিজ করে দেয় যে এটি একটি প্রবণতা। যদি আপনি কার্নেল সংস্করণগুলি ব্যবহার করছেন যেখানে ব্লক-এমকিউ ডেভেলপ করা হয়েছিল, এটি "বিতর্কিত" ব্লক স্তরটি কতটা বাগগুলি এড়াতে পারে তা তর্কযোগ্য। আমি স্থগিত করা বাগটি একটি ব্লগ ছিল যা ব্লক-এমকিউ থেকে উদ্ভূত হয়েছিল, তারপরে এটি পুনরুদ্ধার করা হয়েছিল বা কোনও কিছু এবং উভয়কেই প্রভাবিত করেছিল। github.com/torvalds/linux/commit/1dc3039bc87a
সোর্সজেডি

0

ডার্টি ইন / প্রোক / মেমিনফোতে আপনার গড় কত? এটি সাধারণত আপনার / proc / sys / vm / নোংরা_অর্টিওর চেয়ে বেশি হওয়া উচিত নয়। একটি উত্সর্গীকৃত ফাইল সার্ভারে আমার কাছে নোংরা_রটিওর একটি খুব উচ্চ শতাংশের মেমরি সেট করা হয়েছে (90), কারণ আমি কখনই এটি অতিক্রম করব না। আপনার নোংরা_প্রবণতা খুব কম, আপনি যখন এটি আঘাত করেন তখন সমস্ত কিছু ক্রপ হয়ে যায়, এটি বাড়ান।


নোংরা_টিটিওতে আঘাত করার সময় সমস্যাটি প্রক্রিয়াগুলি অবরুদ্ধ নয়। আমি ঠিক আছে। তবে ডিস্কগুলিতে নোংরা তথ্য লেখার "ব্যাকগ্রাউন্ড" প্রক্রিয়া রহমত ছাড়াই সারি পূরণ করে এবং আইওপিএসের সম্পাদনাকে মেরে ফেলে। এটিকে আইও অনাহার বলে আমি মনে করি। আসলে, নোংরা_আরটিও_বাইটসকে চূড়ান্তভাবে কম সেট করা (1 এমবি এর মতো) প্রচুর পরিমাণে সহায়তা করে, কারণ ফ্লাশিং প্রায় অবিলম্বে ঘটবে এবং সারিগুলি খালি রাখা হবে। অনুক্রমটি সম্ভবত অনুক্রমের জন্য কম থ্রুটপুট, তবে এটি ঠিক আছে।
কর্কম্যান

আপনি সমস্ত লিফট বন্ধ আছে? আপনি একটি ভ্যানিলা সিস্টেম থেকে আর কি টুইট করেন?
লুক

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

সফ্টওয়্যারটিতে এলিভেভেটার একটি ট্রেড অফ: ব্যান্ডউইথের উন্নতি করতে বিলম্বিত বিলম্ব। উদাহরণস্বরূপ, এলোমেলো ক্রমে জমা দেওয়া সফ্টওয়্যার সারিতে 100K রচনাগুলি কল্পনা করুন; যদি সফ্টওয়্যার লিফট একটি বিশাল বাফার ব্যবহার করে সেইগুলিকে অর্ডার করতে পারে তবে এটি ডিভাইসে কেবল 5K আরও বড় অনুরোধ প্রেরণ করতে পারে। যাইহোক, ফলস্বরূপ, বিলম্বটিকে 100 কে অপস দ্বারা বাড়ানো দরকার কারণ এটি হতে পারে যে প্রথম 2 কে অপ্স এবং সর্বশেষ 1K অপ্সগুলি আসলে ডিভাইসে একে অপরের কাছে রয়েছে near যুক্ত বিচ্ছিন্নতা ছাড়া, এগুলিকে একীভূত করা অসম্ভব।
মিক্কো রেন্টালাইনেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.