সাধারণ পোস্টগ্র্যাস এসকিউএল 8.4.4 সেন্টোস 5.5-এ প্রশ্নের সাথে অত্যন্ত ধীর আইও


10

আমি যে আশ্চর্যজনক এবং অত্যন্ত ধীর IO প্যাটার্নটি দেখছি তা হ'ল এটি (আউটপুট iostat -dxk 1 /dev/xvdb1):

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  0.99  0.99     7.92     3.96    12.00     1.96 2206.00 502.00  99.41

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  0.00  0.00     0.00     0.00     0.00     1.00    0.00   0.00 100.40

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  0.00  0.00     0.00     0.00     0.00     1.00    0.00   0.00 100.40

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  0.99  0.00     3.96     0.00     8.00     0.99 2220.00 1004.00  99.41

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  0.00  0.00     0.00     0.00     0.00     1.00    0.00   0.00 100.40

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.99  0.99  0.00     7.92     0.00    16.00     1.14 2148.00 1004.00  99.41

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  0.00  0.00     0.00     0.00     0.00     2.01    0.00   0.00 100.40

Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvdb1             0.00     0.00  1.00  1.00     4.00     8.00    12.00     2.01 1874.00 502.00 100.40

আমি জানি না কেন ডিস্কের ব্যবহার এবং প্রতীক্ষা এত বেশি, এবং পড়ার / লেখার হারগুলি এত কম। এর কারণ কী হতে পারে?

সারণীটি জিজ্ঞাসা করা হচ্ছে কেবল বেশ কয়েকটি বারচার কলাম রয়েছে যার মধ্যে একটি লাস্ট-নাম, যা সূচকযুক্ত (আসলে lower(last_name)সূচকযুক্ত)। ক্যোয়ারী নিজেই সহজ:

SELECT * FROM consumer_m WHERE lower(last_name) = 'hoque';

এখানে ব্যাখ্যা আউটপুট:

                                           QUERY PLAN                                            
-------------------------------------------------------------------------------------------------
 Bitmap Heap Scan on consumer_m  (cost=2243.90..274163.41 rows=113152 width=164)
   Recheck Cond: (lower((last_name)::text) = 'hoque'::text)
   ->  Bitmap Index Scan on consumer_m_last_name_index  (cost=0.00..2215.61 rows=113152 width=0)
         Index Cond: (lower((last_name)::text) = 'hoque'::text)

এছাড়াও নোট করুন যে ডাটাবেসটি অটো_ভ্যাকুয়ামে রয়েছে, সুতরাং কোনও স্পষ্ট শূন্যতা / বিশ্লেষণ সম্পাদিত হয়নি।


আপনি কি নিজের পোস্টগ্রিস্কল.কোনফকে কাস্টমাইজ করেছেন? সেন্টোসের যদি আরএইচইএল R.x এর মতো একই ডিফল্ট থাকে তবে আপনার পোস্টগ্রিজের জন্য খুব কম স্মৃতি থাকবে, যা প্রচুর ডিস্ক আইওকে বাধ্য করতে পারে। এই টেবিলের সারিগুলি কত বড়?
থিয়াগো ফিগুয়েরো

টেবিলটি মেমরির সাথে খাপ খায়, স্পষ্টতই সূচকের মতো হয়; এটি সেভাবেই বিভক্ত হয়েছিল। এবং postgresql.conf যথাযথভাবে কাস্টমাইজ করা হয়েছে (ভাগ করা_বাফলার, কার্যকর_ক্যাস_সাইজ ইত্যাদি)। এমনকি যদি এটি নাও হয় তবে আমি এ জাতীয় অবক্ষয়মূলক পারফরম্যান্স আশা করবো না।
এহসানুল

উত্তর:


5

আপনার ডিভাইসটি /dev/xvdb1বোঝায় যে আপনি জেনের অধীনে চলছে। আপনার স্টোরেজটি কীভাবে কনফিগার করা হয়েছে? অন্তর্নিহিত ডিভাইসটির জন্য কোনও বিতর্ক রয়েছে এবং কীভাবে তা iostatদেখতে পারা যায় ?

যতক্ষণ সম্ভব আপনি এটি অপসারণ করতে না পারলে আমি সেখানেই খারাপ পারফরম্যান্সের জন্য দোষের ঘূর্ণি স্পিনারকে নির্দেশ করতে চলেছি।

মূলত, এর মতো পারফরম্যান্স সমস্যার সমাধানের সামগ্রিক পদ্ধতির মধ্যে হ'ল যে সমস্ত স্তর যেখানে কোনও বাধা সৃষ্টি হতে পারে সে সম্পর্কে চিন্তাভাবনা করা এবং তারপরে সমস্যাটি বিচ্ছিন্ন না করা পর্যন্ত প্রতিটি অপসারণের জন্য পরীক্ষার পরিকল্পনা করা।


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

আপনি iostatছবিটি অনুরূপ কিনা তা দেখতে কেবল dom0 থেকে ডিস্কে চালনা করতে পারেন? আপনি উভয় স্তর থেকে কিছু অন্যান্য বেসিক ডিস্ক বেনমার্ক করতে পারেন? এটি কমপক্ষে কোথায় সন্ধান করতে হবে সংকীর্ণ করতে সহায়তা করবে।
mattdm

অবশ্যই। কোথা iostatথেকে চালিত হয়েছে তার ভিত্তিতে আপনি বৈষম্য কেন আশা করবেন ? এটা কি ব্যাপার? আমার কাছে এখন সরাসরি ডোম0 এ সরাসরি অ্যাক্সেস নেই, যদিও আমি এটি পেতে পারি। এর মধ্যে আমি fioবেঞ্চমার্কিংয়ের চেষ্টা করব ।
এহসানুল

3
একটি কিছুর জন্য: স্ন্যাপশট এমন পরিস্থিতি তৈরি করতে পারে
হুবার্ট কারিও

3
আপনি ঠিক ম্যাড্ডেম ছিলেন, বিতর্ক ছিল, ডম0-এ প্রদর্শিত হয়েছিল। এটি যোগাযোগের সমস্যা ছিল, আমার সাহেব আমার অজানা, হার্ড ডিস্কের একটি অংশ অন্য কারো পরিচালনায় অন্য সার্ভারকে দিয়েছিলেন, আমার অজান্তে। আমি এই উত্সর্গীকৃত ছিল এমন ছাপের মধ্যে ছিলাম, কারণ আমরা সর্বদা এটি সেট আপ করি। আমি অনুমান করি এজন্য আপনার অনুমানগুলি দ্বিগুণ করা সর্বদা গুরুত্বপূর্ণ important ধন্যবাদ!
এহসানুল

1

এখানে কম-বেশি এলোমেলোভাবে কিছু পরামর্শ দেওয়া হল:

  1. সেন্টোসে ডিফল্টরূপে অটোভ্যাকাম চালু হয় না। এটি সক্ষম করতে আপনাকে একাধিক সেটিংস সেট করতে হবে। ডাবল চেক করুন যাতে শূন্যস্থান প্রক্রিয়াটি আসলে চালিত হয়। প্রয়োজনীয় একটি সেটিংস মিস করা সহজ।

  2. মনে রাখবেন যে সেই প্রশ্নের জন্য আপনাকে একটি দ্বিতীয় ফিল্টার পদক্ষেপ করতে হবে, যা আপনি ফিরে পাবেন তার উপর নির্ভর করে ব্যয়বহুল হতে পারে। আমি যেমন একটি সূচক বিবেচনা করব:

    ক্রেডিট ইন্ডেক্স গ্রাহক_ম_মোহী_র উপর গ্রাহক_ মি (নিম্ন (শেষ নাম));

    যা আপনার প্রশ্নের সাথে মেলে এবং পুনরায় পরীক্ষাটি সরিয়ে ফেলবে।

  3. এছাড়াও, ম্যাটডেম হিসাবে উল্লেখ করা হয়েছে, আপনি ভার্চুয়ালাইজড পরিবেশে আইওস্ট্যাটকে বিশ্বাস করতে পারবেন না।

  4. আপনার যদি কোনও এক্সএন পরিবেশে আইও সমস্যা থাকে তবে আপনার সম্ভবত http://lonesysadmin.net/2008/02/21/elevatornoop/ পরীক্ষা করা উচিত । লিফ্ট সেটিংসের প্রভাব থাকতে পারে, তবে এটি বড় নয়।

  5. অন্তর্নিহিত ডিস্কটি কি এলভিএম স্ন্যাপশট ব্যবহার করছে? যদিও এটি পরিচালনার দৃষ্টিকোণ থেকে খুব কার্যকর এটি আইওর কার্যকারিতা হত্য করতে পারে। আপনি উভয়ই অবরুদ্ধ ব্লক ডিভাইসটি একটি স্ন্যাপশট এবং যদি ব্লক ডিভাইস থেকে কোনও স্ন্যাপশট নেওয়া হয় তবে এটি উভয় ক্ষেত্রেই সত্য।


পরামর্শের জন্য ধন্যবাদ। আমি সূচকের নামটি থেকে "নিম্ন" বাদ দিলেও সূচকটি আসলে নিম্নে (সর্বশেষ নাম) থাকে। সুতরাং সেখানে কেন পুনর্বিবেচনা চলছে তা আমি জানি না। মাউন্ট করা ডিস্কটি /আসলে LVM স্ন্যাপশটগুলি ব্যবহার করছে তবে ডাটাবেসটি সংরক্ষণ করা হয়নি এমনটি নয়। সুতরাং আমি এটি মনে করি না। আমি আপনার অন্যান্য পরামর্শ সন্ধান করব!
এহসানুল

1

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

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

ঠিক করা ছিল বুট সঙ্গে

hda=noprobe hda=none 

/etc/grub.conf এ কার্নেল স্ট্রিংয়ের শেষে। (অবশ্যই, আপনার সমস্ত ডিস্ক যুক্ত করুন, আলা: hdc=noprobe, hdc=none, hdd=...)


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