কেভিএম অতিথি আইও হোস্ট আইওর চেয়ে অনেক ধীর গতির: এটি কি স্বাভাবিক?


13

CentOS 6.3 এ আমার একটি কেমু-কেভিএম হোস্ট সিস্টেম সেটআপ রয়েছে। চারটি 1 টিবি সাটা এইচডিডি সফ্টওয়্যার RAID10 এ কাজ করছে। অতিথি CentOS 6.3 পৃথক LVM এ ইনস্টল করা আছে। লোকেরা বলে যে তারা অতিথিদের পারফরম্যান্স হোস্ট পারফরম্যান্সের প্রায় সমান দেখেন, তবে আমি তা দেখতে পাই না। আমার আই / ও টেস্টগুলি হোস্ট সিস্টেমের চেয়ে 30-70% অতিথির উপর ধীর পারফরম্যান্স দেখাচ্ছে। আমি শিডিয়ুলার পরিবর্তন করার চেষ্টা করেছি ( elevator=deadlineহোস্টে এবং elevator=noopঅতিথির উপর সেট blkio.weightকরা ), সিগ্রুপে 1000 তে সেট করা , আইওটি ভারিটিওতে পরিবর্তন করা ... তবে এগুলির কোনও পরিবর্তনই আমাকে কোনও উল্লেখযোগ্য ফলাফল দেয়নি। এটি অতিথি .xml কনফিগার অংশ:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/dev/vgkvmnode/lv2'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>

আমার পরীক্ষা আছে:

হোস্ট সিস্টেম:

আইওজোন পরীক্ষা

# iozone -a -i0 -i1 -i2 -s8G -r64k
                                                            random  random 
              KB  reclen   write rewrite    read    reread    read   write 
         8388608      64  189930  197436   266786   267254   28644   66642 

ডিডি পড়ার পরীক্ষা: একটি প্রক্রিয়া এবং তারপরে চারটি যুগপত প্রক্রিয়া

# dd if=/dev/vgkvmnode/lv2 of=/dev/null bs=1M count=1024 iflag=direct
1073741824 bytes (1.1 GB) copied, 4.23044 s, 254 MB/s

# dd if=/dev/vgkvmnode/lv2 of=/dev/null bs=1M count=1024 iflag=direct skip=1024 & dd if=/dev/vgkvmnode/lv2 of=/dev/null bs=1M count=1024 iflag=direct skip=2048 & dd if=/dev/vgkvmnode/lv2 of=/dev/null bs=1M count=1024 iflag=direct skip=3072 & dd if=/dev/vgkvmnode/lv2 of=/dev/null bs=1M count=1024 iflag=direct skip=4096
1073741824 bytes (1.1 GB) copied, 14.4528 s, 74.3 MB/s
1073741824 bytes (1.1 GB) copied, 14.562 s, 73.7 MB/s
1073741824 bytes (1.1 GB) copied, 14.6341 s, 73.4 MB/s
1073741824 bytes (1.1 GB) copied, 14.7006 s, 73.0 MB/s

ডিডি রাইটিং পরীক্ষা: একটি প্রক্রিয়া এবং তারপরে চারটি যুগপত প্রক্রিয়া

# dd if=/dev/zero of=test bs=1M count=1024 oflag=direct
1073741824 bytes (1.1 GB) copied, 6.2039 s, 173 MB/s

# dd if=/dev/zero of=test bs=1M count=1024 oflag=direct & dd if=/dev/zero of=test2 bs=1M count=1024 oflag=direct & dd if=/dev/zero of=test3 bs=1M count=1024 oflag=direct & dd if=/dev/zero of=test4 bs=1M count=1024 oflag=direct
1073741824 bytes (1.1 GB) copied, 32.7173 s, 32.8 MB/s
1073741824 bytes (1.1 GB) copied, 32.8868 s, 32.6 MB/s
1073741824 bytes (1.1 GB) copied, 32.9097 s, 32.6 MB/s
1073741824 bytes (1.1 GB) copied, 32.9688 s, 32.6 MB/s

অতিথি সিস্টেম:

আইওজোন পরীক্ষা

# iozone -a -i0 -i1 -i2 -s512M -r64k
                                                            random  random
              KB  reclen   write rewrite    read    reread    read   write
          524288      64   93374  154596   141193   149865   21394   46264 

ডিডি পড়ার পরীক্ষা: একটি প্রক্রিয়া এবং তারপরে চারটি যুগপত প্রক্রিয়া

# dd if=/dev/mapper/VolGroup-lv_home of=/dev/null bs=1M count=1024 iflag=direct skip=1024
1073741824 bytes (1.1 GB) copied, 5.04356 s, 213 MB/s

# dd if=/dev/mapper/VolGroup-lv_home of=/dev/null bs=1M count=1024 iflag=direct skip=1024 & dd if=/dev/mapper/VolGroup-lv_home of=/dev/null bs=1M count=1024 iflag=direct skip=2048 & dd if=/dev/mapper/VolGroup-lv_home of=/dev/null bs=1M count=1024 iflag=direct skip=3072 & dd if=/dev/mapper/VolGroup-lv_home of=/dev/null bs=1M count=1024 iflag=direct skip=4096
1073741824 bytes (1.1 GB) copied, 24.7348 s, 43.4 MB/s
1073741824 bytes (1.1 GB) copied, 24.7378 s, 43.4 MB/s
1073741824 bytes (1.1 GB) copied, 24.7408 s, 43.4 MB/s
1073741824 bytes (1.1 GB) copied, 24.744 s, 43.4 MB/s

ডিডি রাইটিং পরীক্ষা: একটি প্রক্রিয়া এবং তারপরে চারটি যুগপত প্রক্রিয়া

# dd if=/dev/zero of=test bs=1M count=1024 oflag=direct
1073741824 bytes (1.1 GB) copied, 10.415 s, 103 MB/s

# dd if=/dev/zero of=test bs=1M count=1024 oflag=direct & dd if=/dev/zero of=test2 bs=1M count=1024 oflag=direct & dd if=/dev/zero of=test3 bs=1M count=1024 oflag=direct & dd if=/dev/zero of=test4 bs=1M count=1024 oflag=direct
1073741824 bytes (1.1 GB) copied, 49.8874 s, 21.5 MB/s
1073741824 bytes (1.1 GB) copied, 49.8608 s, 21.5 MB/s
1073741824 bytes (1.1 GB) copied, 49.8693 s, 21.5 MB/s
1073741824 bytes (1.1 GB) copied, 49.9427 s, 21.5 MB/s

আমি ভাবছি সেই স্বাভাবিক পরিস্থিতি নাকি আমি কিছু মিস করেছি?


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

1
@ জাভানো সেন্টস সর্বদা ভার্টিও অন্তর্ভুক্ত করে এবং আপনাকে স্পষ্টভাবে কার্নেল প্যাকেজগুলি পুনর্নির্মাণের মাধ্যমে এটিকে সরাতে হবে।
মাইকেল হ্যাম্পটন

সর্বদা জানার জন্য প্রস্তুত, চিয়ার্স :)
jwbensley

উত্তর:


22

আপনি এখনও পারফরম্যান্স টিউনিং দিয়ে শেষ করেন নি।

  <driver name='qemu' type='raw' cache='writethrough' io='native'/>

প্রথমটি যা I / O ব্যবহার করতে হবে।

কিউইএমইউতে দুটি অ্যাসিনক্রোনাস আই / ও মেকানিজম রয়েছে: শ্রমিক থ্রেড এবং নেটিভ লিনাক্স এআইও ব্যবহার করে পসিক্স এআইও অনুকরণ em

এগুলির প্রত্যেককেই বেনমার্ক করার জন্য io='native'বা io='threads'আপনার এক্সএমএলে সেট করুন ।

দ্বিতীয়টি হ'ল কোনটি ব্যবহারের ক্যাচিং মেকানিজম। আপনি সেট করতে পারেন cache='writeback', cache='writethrough'বা আপনি এটি দিয়ে বন্ধ করতে পারেন cache='none', যা আপনি বাস্তবে সবচেয়ে ভাল কাজ খুঁজে পেতে পারেন।

আপনি যদি কাঁচা ভলিউম বা পার্টিশন ব্যবহার করেন তবে ক্যাশে সম্পূর্ণরূপে এড়ানো ভাল, যা ডেটা অনুলিপি এবং বাসের ট্র্যাফিক হ্রাস করে।

writebackআপনার RAID অ্যারে ব্যাটারি ব্যাকড না থাকলে ব্যবহার করবেন না বা আপনি ডেটা হারাতে ঝুঁকিপূর্ণ হবেন না । (অবশ্যই ডেটা হারানো যদি ঠিক থাকে তবে নির্দ্বিধায়।

তৃতীয়ত, কিছু অন্যান্য বিষয়গুলির মধ্যে বাধা বন্ধ করা এবং অতিথির সময়সীমা নির্ধারণকারী অন্তর্ভুক্ত থাকতে পারে।

শেষ পর্যন্ত কিছু গবেষণা করুন। ২০১০ সালের লিনাক্স প্লামার্স কনফারেন্সে কেবিএম আই / ও পারফরম্যান্সের বিষয়ে আইবিএম একটি আকর্ষণীয় উপস্থাপনা করেছিল । এছাড়াও কেভিএম ব্যবহারে তাদের সর্বোত্তম অনুশীলনের একটি বিস্তৃত সেট রয়েছে যা অবশ্যই আগ্রহী হবে।

পিএস দৈর্ঘ্যের অনুক্রমিক পড়া এবং লেখাগুলি খুব কমই একটি বাস্তব-ওয়ার্ল্ড কাজের চাপের প্রতিনিধি। অন্যান্য ধরণের কাজের চাপ সহ বেঞ্চমার্কগুলি চেষ্টা করে দেখুন, আদর্শভাবে আসল প্রয়োগ (গুলি) যা আপনি উত্পাদনের দিকে চালিত করতে চান।


"আপনার আইও প্যাটার্ন দিয়ে পরীক্ষার জন্য" +1
জাভিয়ের

ওহ, আইবিএম ডক্সের পক্ষে ভাল লেগেছে, +1 :)
jwbensley

1
খুব সহায়ক, ধন্যবাদ! হোস্ট পারফরম্যান্স থেকে এখন আমি আমার অতিথির ফলাফল 90% পর্যন্ত উন্নত করেছি। আমার দোষটি বেশ বোকা: virsh reset <domain>আমার virsh edit <domain>পরিবর্তনগুলি প্রয়োগ করে না , এবং আমি বিশ্বাস করছিলাম যে অতিথি ভাইরিও ব্যবহার করেছেন, তবে বাস্তবে তা হয়নি। শুধু virsh destroy <domain>অনুসরণ virsh start <domain>সাহায্য করেছিল। ভারিটিওয়ের নিয়ম! ;)
ইভলভার

1
ক্যাশে = রাইটব্যাক কোনও বাস্তব-জীবন ঝুঁকি যুক্ত করে না (গুরুত্বপূর্ণ ডেটা বিপদে নেই, কেবল ইন-ফ্লাইটের ডেটা, যা কোনওভাবে ক্র্যাশে ফেলে দেওয়া হয়)। কেবল ক্যাশে = অনিরাপদ করে। রাইটব্যাক অতিরিক্ত হার্ডওয়্যার প্রয়োজনীয়তা বোঝায় না ("ব্যাটারি ব্যাকড রেড অ্যারে" কোনওভাবে সহায়তা করে না)। এটির এইচডিডি রাইটিং-ক্যাশের মতোই অখণ্ডতা স্তর রয়েছে: অপারেটিং সিস্টেমের দ্বারা প্রয়োজনীয় হলে উভয়ই ফ্লাশ করা হয়।
কর্কম্যান

io='native'আমার ক্ষেত্রে প্রায় 20-30% অতিরিক্ত
রাইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.