ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

guestfs-কর্মক্ষমতা - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে গেস্টএফএস-পারফরমেন্স চালান

এটি গেস্টএফএস-পারফরমেন্স কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


guestfs-performance - সর্বশ্রেষ্ঠ কর্মক্ষমতা জন্য প্রকৌশল libguestfs

বর্ণনাঃ


এই পৃষ্ঠাটি কীভাবে libguestfs থেকে সর্বোত্তম কর্মক্ষমতা পেতে হয় তা নথিভুক্ত করে, বিশেষ করে যখন
আপনি libguestfs ব্যবহার করে হাজার হাজার ভার্চুয়াল মেশিন বা ডিস্ক ইমেজ ব্যবহার করার আশা করছেন।

তিনটি প্রধান এলাকা কভার করা হয়. Libguestfs একটি যন্ত্র চালায় (একটি ছোট লিনাক্স বিতরণ)
qemu/KVM এর ভিতরে। প্রথম দুটি ক্ষেত্র হল: এটি শুরু করতে সময় কমানো
যন্ত্র, এবং যন্ত্রটি কতবার চালু করতে হবে। তৃতীয় এলাকা হল
VM পরিদর্শনের জন্য সময় কমানো।

বেসলাইন পরিমাপ


আপনি কিভাবে libguestf ব্যবহার করেন তাতে পরিবর্তন করার আগে, বেসলাইন পরিমাপ নিন।

বেসলাইন: শুরু হচ্ছে দ্য যন্ত্রপাতি
একটি আনলোড করা মেশিনে, যন্ত্রটি চালু করতে কতক্ষণ সময় লাগে:

সময় গেস্টফিশ -a /dev/null রান

এই কমান্ডটি একটি সারিতে বেশ কয়েকবার চালান এবং প্রথম কয়েকটি রান বাতিল করুন, যাতে আপনি হন
একটি সাধারণ "হট ক্যাশে" কেস পরিমাপ করা।

ব্যাখ্যা

এই কমান্ডটি একটি নাল ডিস্কে libguestfs অ্যাপ্লায়েন্স শুরু করে এবং তারপর অবিলম্বে বন্ধ করে দেয়
এটি ডাউন. প্রথমবার যখন আপনি কমান্ড চালাবেন, এটি একটি যন্ত্র তৈরি করবে এবং এটি ক্যাশে করবে
(সাধারণত নিচে /var/tmp/.guestfs-*) পরবর্তী রান ক্যাশ করা যন্ত্র পুনরায় ব্যবহার করা উচিত.

প্রত্যাশিত ফলাফল

আপনার 6 সেকেন্ডের কম সময় পাওয়ার আশা করা উচিত। যদি আপনি একটি বার দেখতে
আনলোড করা মেশিনগুলি এর উপরে, তারপর বিভাগটি দেখুন "দুর্বল পারফরম্যান্স সমস্যা সমাধান"
নিচে.

বেসলাইন: করণ পরিদর্শন of a অতিথি
এই পরীক্ষার জন্য আপনার একটি আনলোড করা মেশিন এবং কমপক্ষে একটি প্রকৃত অতিথি বা ডিস্কের চিত্র প্রয়োজন হবে।
আপনি যদি শুধুমাত্র X গেস্টদের (যেমন X = Windows) বিরুদ্ধে libguestfs ব্যবহার করার পরিকল্পনা করছেন, তাহলে ব্যবহার করুন
এখানে একজন এক্স গেস্ট সবচেয়ে উপযুক্ত হবে। আপনি libguestfs বিরুদ্ধে চালানোর পরিকল্পনা করা হয়
অতিথিদের একটি মিশ্রণ, তারপর এখানে পরীক্ষার জন্য অতিথিদের মিশ্রণ ব্যবহার করুন।

পরিদর্শন করতে এবং অতিথির ডিস্কগুলি মাউন্ট করতে কতক্ষণ সময় লাগে। ব্যবহার
প্রথম কমান্ড যদি আপনি ডিস্ক ইমেজ ব্যবহার করতে চান, এবং দ্বিতীয় কমান্ড যদি আপনি হবে
libvirt ব্যবহার করে।

টাইম গেস্টফিশ --ro -a disk.img -i প্রস্থান করুন

টাইম গেস্টফিশ --ro -d GuestName -i প্রস্থান করুন

একটি সারিতে বেশ কয়েকবার কমান্ডটি চালান এবং প্রথম কয়েকটি রান বাতিল করুন, যাতে আপনি হন
একটি সাধারণ "হট ক্যাশে" কেস পরিমাপ করা।

ব্যাখ্যা

এই কমান্ডটি নামযুক্ত ডিস্ক ইমেজ বা libvirt গেস্টে libguestfs অ্যাপ্লায়েন্স শুরু করে,
এটিতে libguestfs পরিদর্শন করে ("INSPECTION" দেখুন অতিথি(3)), গেস্ট এর মাউন্ট
disks, তারপর এই সমস্ত ফলাফল বাতিল করে এবং বন্ধ করে দেয়।

আপনি যখন প্রথমবার কমান্ড চালাবেন, এটি একটি যন্ত্র তৈরি করবে এবং এটি ক্যাশে করবে (সাধারণত
অধীনে /var/tmp/.guestfs-*) পরবর্তী রান ক্যাশ করা যন্ত্র পুনরায় ব্যবহার করা উচিত.

প্রত্যাশিত ফলাফল

আপনার এমন সময় আশা করা উচিত যা প্রথম বেসলাইনে পরিমাপ করা থেকে ≤ 5 সেকেন্ড বেশি
উপরে পরীক্ষা। (উদাহরণস্বরূপ, যদি প্রথম বেসলাইন পরীক্ষাটি 5 সেকেন্ডের মধ্যে চলে, তবে এই পরীক্ষাটি
≤ 10 সেকেন্ডের মধ্যে চালানো উচিত)।

বোঝাপড়া দ্য যন্ত্রপাতি এবং কখন IT IS বিল্ট/ক্যাশেড


আপনি প্রথমবার libguestfs ব্যবহার করলে, এটি একটি যন্ত্র তৈরি করবে এবং ক্যাশে করবে। এই সাধারণত
in /var/tmp/.guestfs-*, যদি না আপনি যে ক্ষেত্রে $TMPDIR বা $LIBGUESTFS_CACHEDIR সেট না করেন
এটি সেই অস্থায়ী ডিরেক্টরির অধীনে থাকবে।

যন্ত্রটি কীভাবে তৈরি করা হয় সে সম্পর্কে আরও তথ্যের জন্য, "সুপারমিন অ্যাপ্লায়েন্স" দেখুন
সুপারমিন(1).

প্রতিবার libguestfs চালানোর সময় এটি পরীক্ষা করবে যে অ্যাপ্লায়েন্স দ্বারা ব্যবহৃত কোনো হোস্ট ফাইল নেই
পরিবর্তিত যদি কোনো থাকে, তাহলে যন্ত্রটি পুনর্নির্মাণ করা হয়। এটি সাধারণত ঘটে যখন একটি প্যাকেজ
হোস্টে ইনস্টল বা আপডেট করা হয় (যেমন "yum" বা "apt-get" এর মতো প্রোগ্রাম ব্যবহার করে)। দ্য
যন্ত্রপাতি পুনর্গঠনের কারণ নিরাপত্তা: নতুন প্রোগ্রাম হয়েছে যে
ইনস্টল করা একটি নিরাপত্তা ফিক্স থাকতে পারে, এবং তাই আমরা স্থির প্রোগ্রাম অন্তর্ভুক্ত করতে চাই
যন্ত্র স্বয়ংক্রিয়ভাবে।

এই কর্মক্ষমতা প্রভাব:

· ক্যাশ করা যন্ত্রপাতি তৈরির (বা পুনর্নির্মাণ) প্রক্রিয়া ধীর, এবং আপনি করতে পারেন
একটি নির্দিষ্ট যন্ত্র ব্যবহার করে এটি ঘটতে এড়ান (নীচে দেখুন)।

· একটি নির্দিষ্ট যন্ত্র ব্যবহার না করলে, হোস্টে সফ্টওয়্যার আপডেট করার কারণে সচেতন থাকুন
যন্ত্রের একটি একবার পুনর্নির্মাণ।

· / var / tmp (বা $TMPDIR, $LIBGUESTFS_CACHEDIR) একটি দ্রুত ডিস্কে থাকা উচিত এবং প্রচুর পরিমাণে থাকা উচিত
যন্ত্রের জন্য স্থান।

ব্যবহার A FIXED যন্ত্রপাতি


যন্ত্রটি নির্মিত হলে সম্পূর্ণরূপে নিয়ন্ত্রণ করতে, আপনি একটি নির্দিষ্ট যন্ত্র তৈরি করতে পারেন। এই
যন্ত্র একটি দ্রুত স্থানীয় ডিস্কে সংরক্ষণ করা উচিত।

যন্ত্রটি তৈরি করতে, কমান্ডটি চালান:

libguestfs-make-fixed-appliance

প্রতিস্থাপন " " একটি ডিরেক্টরির নামের সাথে যেখানে যন্ত্রটি সংরক্ষণ করা হবে৷
(সাধারণত আপনি একটি সাবডিরেক্টরির নাম দেবেন, উদাহরণস্বরূপ: /usr/local/lib/guestfs/appliance or
/dev/shm/appliance).

তারপর $LIBGUESTFS_PATH সেট করুন (এবং নিশ্চিত করুন যে এই পরিবেশ পরিবর্তনশীলটি আপনার libguestfs এ সেট করা আছে
প্রোগ্রাম), অথবা আপনার প্রোগ্রাম পরিবর্তন করুন যাতে এটি "guestfs_set_path" বলে। উদাহরণ স্বরূপ:

LIBGUESTFS_PATH=/usr/local/lib/guestfs/অ্যাপ্লায়েন্স রপ্তানি করুন

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

(এই বিষয়ে বিস্তারিত তথ্যের জন্য, দেখুন: libguestfs-মেক-স্থির-যন্ত্র(1))।

সম্পাদন of দ্য স্থায়ী যন্ত্রপাতি
আমাদের পরীক্ষায় আমরা খুঁজে পাইনি যে একটি নির্দিষ্ট যন্ত্র ব্যবহার করে কোনো পরিমাপযোগ্য
কর্মক্ষমতা সুবিধা, এমনকি যখন যন্ত্রটি মেমরিতে অবস্থিত ছিল (যেমন /dev/shm).
তবে বিবেচনা করার জন্য দুটি পয়েন্ট আছে:

1. একটি নির্দিষ্ট যন্ত্র ব্যবহার করা libguestfs কে কখনও যন্ত্রটি পুনর্নির্মাণ করা থেকে বিরত করে, যার অর্থ
যে libguestfs আরো অনুমানযোগ্য স্টার্ট আপ সময় থাকবে.

2. যন্ত্র চাহিদা অনুযায়ী লোড করা হয়. একটি সহজ পরীক্ষা যেমন:

সময় গেস্টফিশ -a /dev/null রান

যন্ত্রের খুব বেশি লোড হয় না। একটি বাস্তব libguestfs প্রোগ্রাম জটিল ব্যবহার করে
API কলগুলি অনেক বেশি যন্ত্রের চাহিদা-লোড করবে। সংরক্ষণ করতে সক্ষম হচ্ছে
একটি নির্দিষ্ট স্থানে যন্ত্র কর্মক্ষমতা আরো অনুমানযোগ্য করে তোলে।

হ্রাস করা দ্য NUMBER টি OF বার দ্য যন্ত্রপাতি IS চালু করা হয়েছে


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

টার্গেট ভার্চুয়াল মেশিন বা ডিস্ক ইমেজ প্রতি একবার "guestfs_launch" কল করার চেষ্টা করুন।

পরিবর্তে একটি পৃথক উদাহরণ ব্যবহার অতিথি মাছ(1) পরিবর্তনের একটি সিরিজ করতে
একই অতিথি, গেস্টফিশের একটি একক উদাহরণ ব্যবহার করুন এবং/অথবা গেস্টফিশ ব্যবহার করুন --শোন বিকল্প।

আপনার প্রোগ্রামটিকে একটি ডেমন হিসাবে লিখুন যা একটি সিরিজ তৈরি করার সময় একটি অতিথিকে খোলা রাখে
পরিবর্তনের অথবা গেস্ট খোলার আগে আপনি যে সমস্ত অপারেশন করতে চান তা মার্শাল করুন।

আপনি একাধিক অতিথিদের থেকে একটি একক যন্ত্রে ডিস্ক যোগ করার চেষ্টা করতে পারেন। চেষ্টা করার আগে
এটি, নিম্নলিখিত পয়েন্ট নোট করুন:

1. একটি যন্ত্রে একাধিক অতিথি যোগ করা একটি নিরাপত্তা সমস্যা কারণ এটি একটিকে অনুমতি দিতে পারে৷
অতিথি অন্য অতিথির ডিস্কে হস্তক্ষেপ করতে। আপনি যদি সমস্ত বিশ্বাস করেন তবেই এটি করুন
অতিথি, অথবা যদি আপনি বিশ্বাসের দ্বারা অতিথিদের গ্রুপ করতে পারেন।

2. আপনি একটি একক যন্ত্রে যোগ করতে পারেন এমন ডিস্কের সংখ্যার একটি কঠিন সীমা রয়েছে৷ কল
"guestfs_max_disks" ইন অতিথি(3) এই সীমা পেতে. আরও তথ্যের জন্য দেখুন
"LIMITS" ইন অতিথি(3).

3. এইভাবে libguestfs ব্যবহার করা জটিল। ডিস্কে অপ্রত্যাশিত মিথস্ক্রিয়া থাকতে পারে: জন্য
উদাহরণস্বরূপ, যদি দুটি অতিথি একটি ফাইল সিস্টেমের জন্য একই UUID ব্যবহার করে (কারণ তারা ক্লোন করা হয়েছিল),
অথবা একই নামের ভলিউম গ্রুপ আছে (কিন্তু "guestfs_lvm_set_filter" দেখুন)।

virt-df(1) ডিফল্টরূপে একাধিক ডিস্ক যোগ করে, তাই এই প্রোগ্রামের সোর্স কোড হবে a
শুরু করার জন্য ভাল জায়গা।

সংক্ষিপ্তকরণ দ্য নেওয়া জন্য পরিদর্শন OF ভার্চুয়াল মেশিনের


প্রধান পরামর্শটি সুস্পষ্ট: আপনার প্রয়োজন না হলে পরিদর্শন করবেন না (যা ব্যয়বহুল)
ফলাফলগুলো.

যদি আপনি পূর্বে অতিথি পরিদর্শন সঞ্চালিত, তারপর এটি ক্যাশে নিরাপদ হতে পারে এবং
শেষ বার থেকে ফলাফল পুনরায় ব্যবহার করুন.

কিছু ডিস্ক পরিদর্শন করার প্রয়োজন নেই: উদাহরণস্বরূপ, যদি আপনি একটি ডিস্ক তৈরি করেন
ইমেজ, অথবা যদি ডিস্ক ইমেজ একটি VM না হয়, অথবা যদি ডিস্ক ইমেজ একটি পরিচিত লেআউট থাকে।

এমনকি যখন মৌলিক পরিদর্শন ("guestfs_inspect_os") প্রয়োজন হয়, তখন সহায়ক পরিদর্শন
অপারেশন এড়ানো যেতে পারে:

· মাউন্ট ডিস্ক শুধুমাত্র আরও ফাইল সিস্টেম তথ্য পেতে প্রয়োজন.

· তালিকাভুক্ত অ্যাপ্লিকেশন ("guestfs_inspect_list_applications") একটি ব্যয়বহুল অপারেশন
লিনাক্সে, কিন্তু উইন্ডোজে প্রায় বিনামূল্যে।

· লিনাক্সে একটি গেস্ট আইকন ("guestfs_inspect_get_icon") তৈরি করা সস্তা কিন্তু ব্যয়বহুল
উইন্ডোজে

পার্লাল যন্ত্রপাতি


Libguestfs অ্যাপ্লায়েন্সগুলি বেশিরভাগ I/O আবদ্ধ এবং আপনি একাধিক যন্ত্রপাতি চালু করতে পারেন
সমান্তরাল পর্যাপ্ত ফ্রি মেমরি থাকলে, সামান্য পার্থক্য থাকা উচিত
সমান্তরালভাবে 1টি যন্ত্র বনাম N যন্ত্রপাতি চালু করা হচ্ছে।

একটি 2-কোর (4-থ্রেড) ল্যাপটপে 16 GB RAM সহ, (বিশেষত বাস্তবসম্মত নয়) পরীক্ষা ব্যবহার করে
নীচের পার্ল স্ক্রিপ্ট, নিম্নলিখিত প্লটটি 1 এর মধ্যে চলার সময় দুর্দান্ত মাপযোগ্যতা দেখায়
এবং সমান্তরালে 20টি যন্ত্রপাতি:

১২টি -++
+ + + + + + + + + +
| |
| * |
11 ++ ++
| |
| |
| * * |
10 ++ ++
| * |
| |
s | |
9 ++ ++
e | |
| * |
গ | |
8 ++ * ++
o | * |
| |
n 7 ++ ++
| * |
d | * |
| |
s 6 ++ ++
| * * |
| * |
| |
5 ++ ++
| |
| * |
| * * |
4 ++ ++
| |
| |
+ * * * + + + + + + +
3 ++-*-+-------+---+---+----+----+----+----+---+-- -++
0 2 4 6 8 10 12 14 16 18 20
সমান্তরাল যন্ত্রপাতির সংখ্যা

সমান্তরালভাবে 20 টিরও বেশি যন্ত্রপাতি চালানো সম্ভব, তবে আপনি যদি ব্যবহার করছেন
libvirt ব্যাকএন্ড তাহলে আপনার সচেতন হওয়া উচিত যে বাক্সের বাইরে libvirt এর সংখ্যা সীমাবদ্ধ করে
20 এর সাথে ক্লায়েন্ট সংযোগ।

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

http://rwmj.wordpress.com/2013/02/25/multiple-libguestfs-appliances-in-parallel-part-1/
http://rwmj.wordpress.com/2013/02/25/multiple-libguestfs-appliances-in-parallel-part-2/
http://rwmj.wordpress.com/2013/02/25/multiple-libguestfs-appliances-in-parallel-part-3/
http://rwmj.wordpress.com/2013/02/25/multiple-libguestfs-appliances-in-parallel-part-4/

#!/usr/bin/env Perl

কঠোর ব্যবহার করুন;
থ্রেড ব্যবহার করুন;
সতর্কতা ব্যবহার করুন;
Sys::Guestfs ব্যবহার করুন;
সময় ব্যবহার করুন::HiRes qw(সময়);

উপ পরীক্ষা {
আমার $g = Sys::Guestfs->নতুন;
$g->add_drive_ro ("/dev/null");
$g->লঞ্চ ();

# আপনি এখানে libguestfs এর জন্য কিছু কাজ যোগ করতে পারেন।

$g->বন্ধ ();
}

# ক্যাশে সবকিছু পান।
পরীক্ষা (); পরীক্ষা (); পরীক্ষা ();

আমার $nr_threads (1..20) এর জন্য {
আমার $start_t = সময় ();
আমার @থ্রেড;
foreach (1..$nr_threads) {
পুশ @থ্রেড, থ্রেড->তৈরি করুন (\&পরীক্ষা)
}
foreach (@থ্রেড) {
$__->যোগদান ();
যদি (আমার $err = $_->ত্রুটি ()) {
ডাই "$nr_threads থ্রেডের সাথে লঞ্চ ব্যর্থ হয়েছে: $err"
}
}
আমার $end_t = সময় ();
printf ("%d %.2f\n", $nr_threads, $end_t - $start_t);
}

ব্যবহার ব্যবহারকারী-মোড লিনাক্স


libguestfs 1.24 থেকে, ইউজার-মোড লিনাক্স (uml) ব্যাকএন্ড ব্যবহার করা সম্ভব হয়েছে
KVM এর পরিবর্তে ("ইউজার-মোড লিনাক্স ব্যাকএন্ড" দেখুন অতিথি(3))। এই বিভাগে কিছু তোলে
এই ব্যাকএন্ড সম্পর্কে সাধারণ মন্তব্য, কিন্তু এটা অত্যন্ত যুক্তিযুক্ত আপনার নিজের পরিমাপ করতে
মন্তব্য বা অন্তর্দৃষ্টি বিশ্বাস করার পরিবর্তে UML অধীনে কাজের চাপ।

· ইউএমএল সাধারণত কেভিএম-এর তুলনায় একই বা সামান্য ধীরগতির কাজ করে, বেয়ারমেটালে।

তবে ইউএমএল প্রায়শই ভার্চুয়ালাইজেশনের অধীনে একই কাজ করে যেমন এটি বেয়ারমেটালে করে,
যেখানে KVM ভার্চুয়ালাইজেশনের অধীনে অনেক ধীর গতিতে চলতে পারে (যেহেতু হার্ডওয়্যার virt ত্বরণ
পাওয়া যায় না).

· আপলোড এবং ডাউনলোড KVM এর তুলনায় UML-এ 10 গুণ ধীর। Libguestfs পাঠায়
UML এমুলেটেড সিরিয়াল পোর্টের উপর এই ডেটা, যা KVM এর তুলনায় অনেক কম দক্ষ
virtio-serial

· UML এর কিছু বৈশিষ্ট্যের অভাব রয়েছে (যেমন qcow2 সমর্থন), তাই এটি মোটেও প্রযোজ্য নাও হতে পারে।

কিছু প্রকৃত পরিসংখ্যানের জন্য, দেখুন:
http://rwmj.wordpress.com/2013/08/14/performance-of-user-mode-linux-as-a-libguestfs-backend/# কনটেন্ট

সমস্যা সমাধান পুরা কর্মক্ষমতা


নিশ্চিত করা হার্ডওয়্যার ভার্চুয়ালাইজেশন is সহজলভ্য
ব্যবহার / proc / cpuinfo এবং এই পৃষ্ঠা:

http://virt-tools.org/learning/check-hardware-virt/

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

হার্ডওয়্যার virt সাধারণত VM-এর মধ্যে পাওয়া যায় না, এবং libguestfs ধীরে ধীরে ভিতরে চলবে
অন্য ভার্চুয়াল মেশিন আপনি যাই করুন না কেন. নেস্টেড ভার্চুয়ালাইজেশন আমাদের ভাল কাজ করে না
অভিজ্ঞতা, এবং অবশ্যই baremetal এ libguestfs চালানোর কোন বিকল্প নয়।

নিশ্চিত করা সাহায্যে KVM is সহজলভ্য
নিশ্চিত করুন যে KVM সক্রিয় আছে এবং ব্যবহারকারীর জন্য উপলব্ধ রয়েছে যা libguestfs চালাবে। এটা উচিত
0666 অনুমতি সেট করতে নিরাপদ থাকুন /dev/kvm এবং বেশিরভাগ বিতরণ এখন এটি করে।

প্রসেসর থেকে এড়াতে
হার্ডওয়্যার ভার্চুয়ালাইজেশন নেই এমন প্রসেসর এবং কিছু প্রসেসর এড়িয়ে চলুন
সহজভাবে খুব ধীর (AMD জিওড একটি দুর্দান্ত উদাহরণ)।

xen dom0
Xen-এ, dom0 একটি ভার্চুয়াল মেশিন, এবং তাই হার্ডওয়্যার ভার্চুয়ালাইজেশন উপলব্ধ নয়।

বিশদ টাইমিংস ব্যবহার TS


ব্যবহার ts(1) কমান্ড (moreutils থেকে) বিস্তারিত সময় দেখানোর জন্য:

$ গেস্টফিশ -a /dev/null run -v |& ts -i '%.s'
0.000022 libguestfs: লঞ্চ: program=guestfish
0.000134 libguestfs: লঞ্চ: সংস্করণ=1.29.31fedora=23,release=2.fc23,libvirt
0.000044 libguestfs: লঞ্চ: ব্যাকএন্ড নিবন্ধিত: ইউনিক্স
0.000035 libguestfs: লঞ্চ: ব্যাকএন্ড নিবন্ধিত: uml
0.000035 libguestfs: লঞ্চ: ব্যাকএন্ড নিবন্ধিত: libvirt
0.000032 libguestfs: লঞ্চ: ব্যাকএন্ড নিবন্ধিত: সরাসরি
0.000030 libguestfs: লঞ্চ: backend=libvirt
0.000031 libguestfs: লঞ্চ: tmpdir=/tmp/libguestfsw18rBQ
0.000029 libguestfs: লঞ্চ: umask=0002
0.000031 libguestfs: লঞ্চ: euid=1000
0.000030 libguestfs: libvirt সংস্করণ = 1002012 (1.2.12)
[ইত্যাদি]

টাইমস্ট্যাম্পগুলি সেকেন্ডের (পূর্ববর্তী লাইন থেকে ক্রমবর্ধমান)।

বিশদ টাইমিংস ব্যবহার সিস্টেমট্যাপ


আপনি SystemTap ব্যবহার করতে পারেন (স্ট্যাপ(1)) libguestfs প্রোগ্রামগুলি থেকে বিস্তারিত সময় পেতে।

নিম্নলিখিত স্ক্রিপ্ট হিসাবে সংরক্ষণ করুন time.stap:

বিশ্বব্যাপী শেষ;

ফাংশন প্রদর্শন_সময় () {
এখন = gettimeofday_us ();
ডেল্টা = 0;
যদি (শেষ > 0)
ডেল্টা = এখন - শেষ;
শেষ = এখন;

printf ("%d (+%d):", এখন, ডেল্টা);
}

তদন্ত শুরু {
শেষ = 0;
printf ("প্রস্তুত\n");
}

/* স্ট্যাটিক মার্কারে সমস্ত কল প্রদর্শন করুন। */
অনুসন্ধান প্রক্রিয়া("/ Usr / lib*/libguestfs.so.0")
.provider("guestfs").mark("*") ? {
প্রদর্শনের সময়();
printf ("\t%s %s\n", $$name, $$parms);
}

/* guestfs_* ফাংশনে সমস্ত কল প্রদর্শন করুন। */
অনুসন্ধান প্রক্রিয়া("/ Usr / lib*/libguestfs.so.0")
.function("guestfs_[az]*") ? {
প্রদর্শনের সময়();
printf ("\t%s %s\n", probefunc(), $$parms);
}

এটি একটি উইন্ডোতে রুট হিসাবে চালান:

# stap time.stap
প্রস্তুত

সিস্টেমট্যাপ প্রোগ্রামটি লোড করলে এটি "প্রস্তুত" মুদ্রণ করে। আপনার libguestfs প্রোগ্রাম চালান,
গেস্টফিশ বা অন্য উইন্ডোতে একটি virt টুল। উদাহরণ স্বরূপ:

$ guestfish -a /dev/null রান

স্ট্যাপ উইন্ডোতে আপনি প্রতিটির জন্য নেওয়া সময়ের সাথে প্রচুর পরিমাণে আউটপুট দেখতে পাবেন
ধাপ দেখানো হয়েছে (বন্ধনীতে মাইক্রোসেকেন্ড)। উদাহরণ স্বরূপ:

xxxx (+0): guestfs_create
xxxx (+29): guestfs_set_pgroup g=0x17a9de0 pgroup=0x1
xxxx (+9): guestfs_add_drive_opts_argv g=0x17a9de0 [...]
xxxx (+8): guestfs_int_safe_strdup g=0x17a9de0 str=0x7f8a153bed5d
xxxx (+19): guestfs_int_safe_malloc g=0x17a9de0 nbytes=0x38
xxxx (+5): guestfs_int_safe_strdup g=0x17a9de0 str=0x17a9f60
xxxx (+10): guestfs_launch g=0x17a9de0
xxxx (+4): launch_start
[ইত্যাদি]

সম্পূর্ণরূপে বোঝার জন্য আপনাকে libguestfs-এর উৎসের সাথে পরামর্শ করতে হবে এবং এমনকি সংশোধন করতে হবে
আউটপুট.

বিশদ ডিবাগিং ব্যবহার , GDB


আপনি gdb ব্যবহার করে অ্যাপ্লায়েন্স BIOS/kernel সংযুক্ত করতে পারেন। যদি আপনি জানেন আপনি কি করছেন,
বুট রিগ্রেশন নির্ণয় করার জন্য এটি একটি কার্যকর উপায় হতে পারে।

প্রথমত, আপনাকে qemu পরিবর্তন করতে হবে যাতে এটি "-S" এবং "-s" বিকল্পগুলির সাথে চলে। এই অপশন
qemu বুট করার সময় বিরতি দেয় এবং আপনাকে একটি ডিবাগার সংযুক্ত করার অনুমতি দেয়। পড়ুন ছিঃ(1) আরো জন্য
তথ্য Libguestfs বেশ কয়েকবার qemu আহ্বান করে (সহায়তা আউটপুট স্ক্যান করতে এবং আরও অনেক কিছু)
এবং আপনি শুধুমাত্র এই বিকল্পগুলি ব্যবহার করার জন্য qemu-এর চূড়ান্ত আহ্বান চান, তাই একটি qemu মোড়ক ব্যবহার করুন
এই মত স্ক্রিপ্ট:

#!/ বিন / বাশ -

# এটিকে আসল কিউমু বাইনারি নির্দেশ করতে সেট করুন।
qemu=/usr/bin/qemu-kvm

যদি [ "$1" !=" -গ্লোবাল" ]; তারপর
# স্ক্যানিং সাহায্য আউটপুট ইত্যাদি
exec $qemu "$@"
আর
# সত্যিই কিউমু চলছে।
exec $qemu -S -s "$@"
fi

এখন গেস্টফিশ বা অন্য libguestfs টুল চালান qemu র‍্যাপার দিয়ে ("QEMU WRAPPERS" দেখুন
অতিথি(3) এটি কি করছে তা বোঝার জন্য):

LIBGUESTFS_HV=/path/to/qemu-wrapper গেস্টফিশ -a /dev/null -v রান

qemu চালু হওয়ার পরই এটিকে বিরতি দেওয়া উচিত। অন্য উইন্ডোতে, জিডিবি ব্যবহার করে কিউমুতে সংযুক্ত করুন:

$gdb
(gdb) সেট আর্কিটেকচার i8086
লক্ষ্য আর্কিটেকচারটি i8086 বলে ধরে নেওয়া হয়
(জিডিবি) টার্গেট রিমোট :1234
রিমোট ডিবাগিং ব্যবহার করে :1234
0x0000ff0 in ?? ()
(gdb) cont

এই মুহুর্তে আপনি স্ট্যান্ডার্ড জিডিবি কৌশলগুলি ব্যবহার করতে পারেন, যেমন। বুট বাধা দিতে "^C" চাপুন
এবং "bt" একটি স্ট্যাক ট্রেস পান, ব্রেকপয়েন্ট সেট করা ইত্যাদি। নোট করুন যে আপনি যখন অতিক্রম করছেন
BIOS এবং লিনাক্স কার্নেলে, আপনি আর্কিটেকচারটি 32 বা 64 এ পরিবর্তন করতে চাইবেন
বিট.

onworks.net পরিষেবা ব্যবহার করে গেস্টএফএস-পারফরম্যান্স অনলাইন ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad