উচ্চ আইও অপেক্ষা করুন - মূল কারণটি কীভাবে নির্ধারণ করবেন?


10

দুটি ডেডিকেটেড সার্ভারে আমার একটি মাইএসকিউএল উদাহরণ রয়েছে। একটি উত্পাদন জন্য, অন্যটি টেস্ট প্ল্যাটফর্মের জন্য।

2 সার্ভারগুলি বেশ সমান, কেবলমাত্র পার্থক্যটি হ'ল রেড নিয়ামক এবং ভার্চুয়াল ভলিউম (এইচডি একই রকম)। উত্পাদনে, একটি ডেডিকেটেড এইচডাব্লু র‌্যাড কন্ট্রোলার এবং একটি রেড 10 ভলিউম রয়েছে। অন্যদিকে, RAID নিয়ামকটি সফ্টওয়্যার বলে মনে হচ্ছে (লেনোভো থিংসবার্ট RAID 110i) এবং ভলিউমটি RAID 5।

আমরা লক্ষ্য করেছি যে মাইএসকিউএল কমিট করার সময় আমাদের উচ্চ আইওয়েট রয়েছে:

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done
root     26661  0.0  0.0      0     0 ?        D    Jun09   5:41  \_ [jbd2/dm-14-8]
root     26691  0.0  0.0      0     0 ?        D    Jun09   0:57  \_ [jbd2/dm-10-8]
Thu Jun 18 13:49:37 CEST 2015
root     26691  0.0  0.0      0     0 ?        D    Jun09   0:57  \_ [jbd2/dm-10-8]
Thu Jun 18 13:49:38 CEST 2015
root      1474  0.0  0.0      0     0 ?        D    Jun04   0:23  \_ [jbd2/dm-5-8]
root     26691  0.0  0.0      0     0 ?        D    Jun09   0:57  \_ [jbd2/dm-10-8]
Thu Jun 18 13:49:39 CEST 2015
Thu Jun 18 13:49:40 CEST 2015
root      1474  0.0  0.0      0     0 ?        D    Jun04   0:23  \_ [jbd2/dm-5-8]
root      1478  0.0  0.0      0     0 ?        D    Jun04   0:03  \_ [jbd2/dm-7-8]
root     26661  0.0  0.0      0     0 ?        D    Jun09   5:41  \_ [jbd2/dm-14-8]

dm-10-8 এবং dm-14-8 ডাটাবেস পার্টিশনের সাথে সম্পর্কিত।

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  3 240904 809656 572624 7114416    0    0    59  1681 2002 5141  3  1 67 30  0
 0  4 240880 809656 572632 7114604    0    0   139  2069 2090 4985  3  1 67 29  0
 1  2 240880 809284 572636 7114676    0    0    27  2159 2253 4247  2  1 72 25  0
 5  2 240880 809408 572656 7114820    0    0    27  2404 2254 5350  3  1 69 27  0

আমি অভিযান নিয়ন্ত্রণকারীকে সন্দেহ করি, আমি কীভাবে নিশ্চিত হতে পারি?


বিষয় বন্ধ হতে পারে: কিন্তু কেন একটি ডাটাবেসে RAID5? লেখার ব্যবধানের কারণে খারাপ ধারণা। বিবিইউ সহ এইচডাব্লু এটিকে কিছুটা কমিয়ে দেয় তবে RAID 5 মূলত পড়ার জন্য ভাল, ছোট লেনদেন লেখার জন্য নয়।
হেনেস

কারণ আমার কোনও পছন্দ ছিল না ... এই RAID নিয়ামকটিতে (RAH 10 এর সংস্করণ সহ) RAID 10 সমর্থিত ছিল না ...
বব Sauvage

@ BobSauvage কোন অগ্রগতি?
হিউজেনস

কেবল পরিষ্কার করে বলা: আইও-ওয়েটে কি ভর স্টোরেজ দ্বারা সরবরাহ না করা ফাইল বর্ণনাকারীদের জন্য অপেক্ষা করা অন্তর্ভুক্ত রয়েছে? সকেটের মতো ...
ম্যাসিমো

উত্তর:


7

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

হার্ডওয়্যার তদন্ত

আমি বুঝতে পেরেছি যে একই অ্যাপ্লিকেশনটির জন্য তবে 2 টি ভিন্ন সেট হার্ডওয়্যারে পারফরম্যান্সটি খুব আলাদা এবং কেন আপনি তা বুঝতে চাইবেন। সুতরাং আমি আপনাকে প্রথমে "কেন" এর উত্তর খুঁজে পেতে সহায়তা করার একটি উপায় প্রস্তাব করি।

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

এই সরঞ্জামটি সত্যই জেনে নেই, আমি মার্ক ব্রুকারের ব্লকট্রেস সম্পর্কিত এই আকর্ষণীয় নিবন্ধটি ঘুরে দেখলাম and মূলত এটি নীচের পরামর্শ দেয়: I / O ট্রেস ব্যবহার করে সম্পাদন করা blktrace; এই ট্রেস থেকে তথ্য আহরণ করতে বিটিটি সরঞ্জাম ব্যবহার করে । এটি এমন কিছু হবে (30 টি ট্রেসের জন্য):

# blktrace -w 30 -d /dev/dm-10-8 -o dm-10-8
# blkparse -d blkmerged.out dm-10-8*
# btt -i blkmerged.out | less

আউটপুটটি বেশ দীর্ঘ হতে পারে তবে ডি 2 সি এন্ট্রি সন্ধান করুন। এটি আপনাকে এই ড্রাইভার দ্বারা সম্পূর্ণরূপে প্রতিবেদন করার জন্য ডিভাইস ড্রাইভারের কাছে বিতরণ করা আই / ও পেতে সময় লাগে তার একটি ধারণা দেবে।

উদাহরণ আউটপুট ( dnf upgradeআমার ব্যস্ত ল্যাপটপে ভার্চুয়ালবক্স ভিএম চলমান):

            ALL           MIN           AVG           MAX           N
--------------- ------------- ------------- ------------- -----------

...
D2C               0.000046515   0.045781696   3.940577359       11713
...

এটি সবচেয়ে খারাপের জন্য 3,94 এস পর্যন্ত আই / ও প্রতি 45 এমএসের হতাশাজনক গড় দেখায় !!

এই তদন্তটি সম্পাদন করতে ব্লকট্রেস ব্যবহার করার আরও উপায়ের জন্য, মার্ক শিক্ষিত ব্রোকারের নিবন্ধটি পড়ুন, খুব শিক্ষামূলক।


ইনকনডাবের পারফরম্যান্স উন্নত করতে উত্তর টুইটটিতে রেফারেন্সযুক্ত পারকোনা ব্লগ পোস্টটি আপডেট করা হয়েছে: আপডেট: এটি করবেন না,
vkats

@ ভিকাটস অনেক ধন্যবাদ আমি প্রস্তাবটি এবং নিবন্ধ সরিয়ে উত্তর আপডেট করেছি।
হিউজেনস

1

জেবিডি 2 প্রক্রিয়াটি ext4 জার্নাললিংয়ের জন্য। এটি যৌক্তিক যে মাইএসকিএল কমিট করার সময় ফাইল সিস্টেমকে জার্নালে লিখতে হবে, এটি কোনও উদ্বেগের কারণ নয়। Jbd এর ফলে লোডের পরিমাণটি আপনার dm-10-8 এবং dm-14-8 পার্টিশনের জন্য মাউন্ট পরামিতি দ্বারা প্রভাবিত হয়। আপনার ডেটাবেসটি দুর্ঘটনাবশত না ঘটে এবং আপনার সার্ভারটি ঘটনাক্রমে রিবুট হয়ে যায় তা নিশ্চিত করার জন্য ডাটাবেস বিভাজনে খুব রক্ষণশীল জার্নালিং করা বাঞ্ছনীয়। আপনি কেবল তুলনার জন্য পরীক্ষার পরিবেশে আরেকটি জার্নালিং মাউন্ট অপশন নির্বাচন করতে পারেন।


আমার jbd2 / dm-2-8 সবসময় iotop এ 8.5% এর কাছাকাছি মনে হয়, তবে .. আমি মনে করি না যে এটি কোনও সমস্যাযুক্ত কারণ কোনও ডিস্ক পঠিত নেই, এবং মোট ডিস্ক রাইটিং 1 ঘন্টা পরে 35 এমবি রয়েছে। বিটিডব্লিউ, এ / দেব-এ সর্বাধিক dm-2 রয়েছে (যে -8 আমি কোথা থেকে এসেছি সে সম্পর্কে আমার কোনও ধারণা নেই ..)
অ্যাকোরিয়াস পাওয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.