अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

अतिथि-प्रदर्शन - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स फ्री होस्टिंग प्रदाता में गेस्टएफएस-परफॉर्मेंस चलाएं।

यह कमांड गेस्टएफएस-परफॉर्मेंस है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


गेस्टएफएस-प्रदर्शन - सर्वोत्तम प्रदर्शन के लिए इंजीनियरिंग लिबगेस्टएफएस

वर्णन


यह पृष्ठ दस्तावेज करता है कि कैसे libguestfs से सर्वोत्तम प्रदर्शन प्राप्त किया जाए, विशेषकर जब
आप हजारों वर्चुअल मशीनों या डिस्क छवियों में हेरफेर करने के लिए libguestfs का उपयोग करने की अपेक्षा करते हैं।

तीन मुख्य क्षेत्र शामिल हैं। Libguestfs एक उपकरण चलाता है (एक छोटा लिनक्स वितरण)
क्यूमू/केवीएम के अंदर। पहले दो क्षेत्र हैं: इसे शुरू करने में लगने वाले समय को कम करना
उपकरण, और उपकरण को कितनी बार चालू करना है। तीसरा क्षेत्र है
वीएम के निरीक्षण में लगने वाले समय को कम करना।

आधारभूत मापन


libguestfs का उपयोग करने के तरीके में परिवर्तन करने से पहले, आधारभूत माप लें।

आधार रेखा: शुरुआत में la उपकरण
एक अनलोडेड मशीन पर, उपकरण को चालू करने में कितना समय लगता है:

टाइम गेस्टफिश -ए /देव/नल रन

इस कमांड को लगातार कई बार चलाएँ और पहले कुछ रन को छोड़ दें, ताकि आप
एक विशिष्ट "हॉट कैश" केस को मापना।

व्याख्या

यह आदेश एक शून्य डिस्क पर libguestfs उपकरण को प्रारंभ करता है, और फिर तुरंत बंद हो जाता है
यह नीचे। पहली बार जब आप कमांड चलाएंगे, तो यह एक उपकरण बनाएगा और उसे कैश करेगा
(आमतौर पर नीचे /var/tmp/.guestfs-*). बाद के रन में कैश्ड उपकरण का पुन: उपयोग किया जाना चाहिए।

अपेक्षित होना परिणाम

आपको 6 सेकंड से कम समय मिलने की उम्मीद करनी चाहिए। यदि आप एक पर समय देखते हैं
अनलोड की गई मशीनें इससे ऊपर हैं, तो "खराब प्रदर्शन की समस्या निवारण" अनुभाग देखें
नीचे.

आधार रेखा: प्रदर्शन निरीक्षण of a अतिथि
इस परीक्षण के लिए आपको एक अनलोडेड मशीन और कम से कम एक वास्तविक अतिथि या डिस्क छवि की आवश्यकता होगी।
यदि आप केवल एक्स मेहमानों (उदाहरण के लिए एक्स = विंडोज) के खिलाफ libguestfs का उपयोग करने की योजना बना रहे हैं, तो इसका उपयोग करें
यहां एक एक्स अतिथि सबसे उपयुक्त होगा। यदि आप libguestfs को इसके विरुद्ध चलाने की योजना बना रहे हैं
मेहमानों का मिश्रण, फिर यहां परीक्षण के लिए मेहमानों के मिश्रण का उपयोग करें।

निरीक्षण करने और अतिथि की डिस्क को माउंट करने में कितना समय लगता है। उपयोग
पहला आदेश यदि आप डिस्क छवियों का उपयोग करेंगे, और दूसरा आदेश यदि आप करेंगे
libvirt का उपयोग करना।

समय गेस्टफ़िश --ro -a डिस्क.img -i निकास

समय अतिथिमछली --ro -d अतिथिनाम -i निकास

कमांड को लगातार कई बार चलाएँ और पहले कुछ रन को छोड़ दें, ताकि आप
एक विशिष्ट "हॉट कैश" केस को मापना।

व्याख्या

यह आदेश नामित डिस्क छवि या libvirt अतिथि पर libguestfs उपकरण प्रारंभ करता है,
इस पर libguestfs निरीक्षण करता है ("निरीक्षण" देखें)। Guestfs(3)), अतिथि का आरोहण करता है
डिस्क, फिर इन सभी परिणामों को त्याग देता है और बंद हो जाता है।

पहली बार जब आप कमांड चलाएंगे, तो यह एक उपकरण बनाएगा और उसे कैश करेगा (आमतौर पर)।
के अंतर्गत /var/tmp/.guestfs-*). बाद के रन में कैश्ड उपकरण का पुन: उपयोग किया जाना चाहिए।

अपेक्षित होना परिणाम

आपको ऐसे समय की अपेक्षा करनी चाहिए जो पहली बेसलाइन में मापे गए समय से ≤ 5 सेकंड अधिक हो
ऊपर परीक्षण करें. (उदाहरण के लिए, यदि पहला बेसलाइन परीक्षण 5 सेकंड में चला, तो यह परीक्षण
≤ 10 सेकंड में चलना चाहिए)।

समझ THE उपकरण और जब IT IS निर्मित/संचित


पहली बार जब आप libguestfs का उपयोग करते हैं, तो यह एक उपकरण का निर्माण और कैश करेगा। ऐसा आमतौर पर होता है
in /var/tmp/.guestfs-*, जब तक कि आपने किस स्थिति में $TMPDIR या $LIBGUESTFS_CACHEDIR सेट नहीं किया है
यह उस अस्थायी निर्देशिका के अंतर्गत होगा.

उपकरण का निर्माण कैसे किया जाता है, इसके बारे में अधिक जानकारी के लिए "सुपरमिन एप्लायंसेज" देखें
सुपरमिन(1).

हर बार जब libguestfs चलता है तो यह जाँच करेगा कि उपकरण द्वारा उपयोग की गई कोई होस्ट फ़ाइल तो नहीं है
बदला हुआ। यदि किसी के पास है, तो उपकरण का पुनर्निर्माण किया जाता है। ऐसा आमतौर पर तब होता है जब कोई package
होस्ट पर इंस्टॉल या अपडेट किया गया है (उदाहरण के लिए "yum" या "apt-get" जैसे प्रोग्राम का उपयोग करके)।
उपकरण के पुनर्निर्माण का कारण सुरक्षा है: नया कार्यक्रम जो रहा है
इंस्टॉल में कोई सुरक्षा सुधार हो सकता है, और इसलिए हम निश्चित प्रोग्राम को इसमें शामिल करना चाहते हैं
उपकरण स्वचालित रूप से.

ये प्रदर्शन निहितार्थ हैं:

· कैश्ड उपकरण के निर्माण (या पुनर्निर्माण) की प्रक्रिया धीमी है, और आप कर सकते हैं
किसी स्थिर उपकरण का उपयोग करके ऐसा होने से बचें (नीचे देखें)।

· यदि किसी स्थिर उपकरण का उपयोग नहीं कर रहे हैं, तो ध्यान रखें कि होस्ट पर सॉफ़्टवेयर अपडेट करने से समस्या हो सकती है
उपकरण का एक बार पुनर्निर्माण।

· / var / tmp (या $TMPDIR, $LIBGUESTFS_CACHEDIR) एक तेज़ डिस्क पर होना चाहिए, और इसमें बहुत कुछ होना चाहिए
उपकरण के लिए जगह की.

का उपयोग करते हुए A FIXED उपकरण


उपकरण कब बनाया जाए, इसे पूरी तरह से नियंत्रित करने के लिए, आप एक निश्चित उपकरण बना सकते हैं। यह
उपकरण को तेज़ स्थानीय डिस्क पर संग्रहित किया जाना चाहिए।

उपकरण बनाने के लिए, कमांड चलाएँ:

libguestfs-मेक-फिक्स्ड-उपकरण

प्रतिस्थापित " " उस निर्देशिका के नाम के साथ जहां उपकरण संग्रहीत किया जाएगा
(आम तौर पर आप एक उपनिर्देशिका का नाम देंगे, उदाहरण के लिए: /usr/स्थानीय/lib/guestfs/उपकरण or
/dev/shm/उपकरण).

फिर $LIBGUESTFS_PATH सेट करें (और सुनिश्चित करें कि यह पर्यावरण चर आपके libguestfs में सेट है
प्रोग्राम), या अपने प्रोग्राम को संशोधित करें ताकि वह "guestfs_set_path" कह सके। उदाहरण के लिए:

निर्यात LIBGUESTFS_PATH=/usr/स्थानीय/lib/guestfs/उपकरण

अब आप libguestfs प्रोग्राम, virt टूल, गेस्टफ़िश आदि को सामान्य रूप से चला सकते हैं। कार्यक्रमों
आपके स्थिर उपकरण का उपयोग करेगा, और कभी भी अपना स्वयं का निर्माण, पुनर्निर्माण या कैश नहीं करेगा
उपकरण।

(इस विषय पर विस्तृत जानकारी के लिए देखें: libguestfs-मेक-फिक्स्ड-उपकरण(1))।

प्रदर्शन of la तय उपकरण
हमारे परीक्षण में हमने नहीं पाया कि किसी स्थिर उपकरण का उपयोग करने से कोई मापन योग्य परिणाम मिलता है
प्रदर्शन लाभ, तब भी जब उपकरण मेमोरी (यानी चालू) में स्थित था /देव/शम).
हालाँकि विचार करने के लिए दो बिंदु हैं:

1. एक स्थिर उपकरण का उपयोग करने से libguestfs को कभी भी उपकरण का पुनर्निर्माण करने से रोक दिया जाता है, अर्थात
कि libguestfs के पास अधिक अनुमानित स्टार्ट-अप समय होगा।

2. उपकरण मांग पर लोड किया जाता है। एक सरल परीक्षण जैसे:

टाइम गेस्टफिश -ए /देव/नल रन

उपकरण पर बहुत अधिक भार नहीं पड़ता है। जटिल का उपयोग करते हुए एक वास्तविक libguestfs प्रोग्राम
एपीआई कॉल उपकरण की बहुत अधिक मांग-लोड करेगी। को स्टोर करने में सक्षम होना
एक निर्दिष्ट स्थान पर उपकरण प्रदर्शन को अधिक पूर्वानुमानित बनाता है।

को कम THE नंबर OF टाइम्स THE उपकरण IS शुभारंभ


अब तक का यह सबसे प्रभावी तरीका है, हालांकि अच्छा प्रदर्शन पाने का यह हमेशा सबसे आसान तरीका नहीं है
यह सुनिश्चित करने के लिए कि उपकरण को कम से कम बार लॉन्च किया जाए। ये शायद होगा
इसमें आपके libguestfs एप्लिकेशन को बदलना शामिल है।

प्रति लक्ष्य वर्चुअल मशीन या डिस्क छवि पर अधिकतम एक बार "guestfs_launch" को कॉल करने का प्रयास करें।

के एक अलग उदाहरण का उपयोग करने के बजाय अतिथि मछली(1) में परिवर्तनों की एक श्रृंखला बनाना
एक ही अतिथि, अतिथि मछली के एक ही उदाहरण का उपयोग करें और/या अतिथि मछली का उपयोग करें --सुनना विकल्प.

अपने प्रोग्राम को एक डेमॉन के रूप में लिखने पर विचार करें जो श्रृंखला बनाते समय अतिथि को खुला रखता है
परिवर्तनों का. या अतिथि खोलने से पहले उन सभी कार्यों को मार्शल करें जिन्हें आप करना चाहते हैं।

आप एक ही उपकरण में एकाधिक अतिथियों की डिस्क जोड़ने का भी प्रयास कर सकते हैं। कोशिश करने से पहले
यह, निम्नलिखित बिंदुओं पर ध्यान दें:

1. एक उपकरण में कई मेहमानों को जोड़ना एक सुरक्षा समस्या है क्योंकि यह एक को अनुमति दे सकता है
अतिथि द्वारा दूसरे अतिथि की डिस्क में हस्तक्षेप करना। यदि आप सभी पर भरोसा करते हैं तो ही ऐसा करें
मेहमान, या यदि आप विश्वास के आधार पर मेहमानों का समूह बना सकते हैं।

2. एक उपकरण में आप कितनी डिस्क जोड़ सकते हैं, इसकी एक सख्त सीमा है। पुकारना
"guestfs_max_disks" में Guestfs(3) इस सीमा को प्राप्त करना। अधिक जानकारी के लिए देखें
"सीमाएँ" में Guestfs(3).

3. इस तरह से libguestfs का उपयोग करना जटिल है। डिस्क में अप्रत्याशित इंटरैक्शन हो सकते हैं: के लिए
उदाहरण के लिए, यदि दो अतिथि फ़ाइल सिस्टम के लिए समान यूयूआईडी का उपयोग करते हैं (क्योंकि वे क्लोन किए गए थे),
या समान नाम वाले वॉल्यूम समूह हों (लेकिन "guestfs_lvm_set_filter" देखें)।

पुण्य-डीएफ(1) डिफ़ॉल्ट रूप से एकाधिक डिस्क जोड़ता है, इसलिए इस प्रोग्राम के लिए स्रोत कोड होगा
शुरू करने के लिए अच्छी जगह.

कमी THE TIME लिया के लिए निरीक्षण OF VMs


मुख्य सलाह स्पष्ट है: जब तक आपको आवश्यकता न हो निरीक्षण न करें (जो महंगा है)।
परिणाम।

यदि आपने पहले अतिथि का निरीक्षण किया है, तो इसे कैश करना सुरक्षित हो सकता है
पिछली बार के परिणामों का पुन: उपयोग करें।

कुछ डिस्क का निरीक्षण करने की बिल्कुल भी आवश्यकता नहीं होती है: उदाहरण के लिए, यदि आप एक डिस्क बना रहे हैं
छवि, या यदि डिस्क छवि वीएम नहीं है, या यदि डिस्क छवि में एक ज्ञात लेआउट है।

यहां तक ​​कि जब बुनियादी निरीक्षण ("guestfs_inspect_os") की आवश्यकता होती है, तब भी सहायक निरीक्षण
परिचालन से बचा जा सकता है:

· डिस्क को माउंट करना केवल आगे फ़ाइल सिस्टम जानकारी प्राप्त करने के लिए आवश्यक है।

· अनुप्रयोगों को सूचीबद्ध करना ("guestfs_inspect_list_applications") एक महंगा ऑपरेशन है
लिनक्स पर, लेकिन विंडोज़ पर लगभग मुफ़्त।

· लिनक्स पर अतिथि आइकन ("guestfs_inspect_get_icon") बनाना सस्ता है लेकिन महंगा है
विंडोज पर।

समानांतर उपकरण


Libguestfs उपकरण अधिकतर I/O बाध्य हैं और आप इसमें कई उपकरण लॉन्च कर सकते हैं
समानांतर। बशर्ते कि पर्याप्त निःशुल्क मेमोरी हो, इसमें थोड़ा अंतर होना चाहिए
समानांतर में 1 उपकरण बनाम एन उपकरण लॉन्च करना।

2 जीबी रैम वाले 4-कोर (16-थ्रेड) लैपटॉप पर, (विशेष रूप से यथार्थवादी नहीं) परीक्षण का उपयोग करते हुए
नीचे दी गई पर्ल स्क्रिप्ट, 1 के बीच चलने पर निम्नलिखित प्लॉट उत्कृष्ट स्केलेबिलिटी दिखाता है
और समानांतर में 20 उपकरण:

12 ++---+----+----+----+----+---+----+----+---+ -++
+++++++++++*
| |
| * |
11++++
| |
| |
| * * |
10++++
| * |
| |
एस | |
9++++
ई | |
| * |
सी | |
8++*++
ओ | * |
| |
एन 7++++
| * |
घ | * |
| |
एस 6++++
| * * |
| * |
| |
5++++
| |
| * |
| * * |
4++++
| |
| |
+ * * * + + + + + + + +
3 ++-*-+---+----+----+----+----+----+----+---+ -++
0 2 4 6 8 10 एक्सएक्सएक्स 12 14 16 18
समानांतर उपकरणों की संख्या

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/बिन/env पर्ल

सख्त उपयोग करें;
धागे का प्रयोग करें;
चेतावनी का उपयोग करें;
Sys::Guestfs का उपयोग करें;
Time::HiRes qw(time) का उपयोग करें;

उप परीक्षण {
मेरा $g = Sys::Guestfs->नया;
$g->add_drive_ro ("/dev/null");
$g->लॉन्च ();

# आप यहां libguestfs के लिए करने के लिए कुछ कार्य जोड़ सकते हैं।

$g->बंद करें ();
}

# सब कुछ कैश में प्राप्त करें।
परीक्षा (); परीक्षा (); परीक्षा ();

मेरे $nr_threads के लिए (1..20) {
मेरा $start_t = समय ();
मेरे @थ्रेड्स;
foreach (1..$nr_threads) {
पुश @थ्रेड्स, थ्रेड्स->क्रिएट (\&टेस्ट)
}
foreach (@threads) {
$_->जुड़ें ();
यदि (मेरी $त्रुटि = $_->त्रुटि ()) {
मरें "$nr_threads थ्रेड्स के साथ लॉन्च विफल: $err"
}
}
मेरा $end_t = समय ();
प्रिंटफ ("%d %.2f\n", $nr_threads, $end_t - $start_t);
}

का उपयोग करते हुए उपयोगकर्ता मोड लिनक्स


Libguestfs 1.24 के बाद से, यूजर-मोड लिनक्स (यूएमएल) बैकएंड का उपयोग करना संभव हो गया है
KVM के बजाय ("USER-MODE LINUX BACKEND" देखें)। Guestfs(3)). यह अनुभाग कुछ बनाता है
इस बैकएंड के बारे में सामान्य टिप्पणियाँ, लेकिन यह है अत्यधिक उचित अपने आप को मापने के लिए
टिप्पणियों या अंतर्ज्ञान पर भरोसा करने के बजाय यूएमएल के तहत कार्यभार।

· यूएमएल आमतौर पर बेयरमेटल पर केवीएम के समान या थोड़ा धीमा प्रदर्शन करता है।

· हालाँकि यूएमएल अक्सर वर्चुअलाइजेशन के तहत वैसा ही प्रदर्शन करता है जैसा वह बेअरमेटल पर करता है,
जबकि केवीएम वर्चुअलाइजेशन के तहत बहुत धीमी गति से चल सकता है (हार्डवेयर गुण त्वरण के बाद से)।
उपलब्ध नहीं है)।

· केवीएम की तुलना में यूएमएल पर अपलोड और डाउनलोड 10 गुना धीमा है। Libguestfs भेजता है
यह डेटा यूएमएल एम्युलेटेड सीरियल पोर्ट पर है, जो केवीएम की तुलना में बहुत कम कुशल है
गुण-क्रम.

· यूएमएल में कुछ सुविधाओं का अभाव है (उदाहरण के लिए 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 में.

हार्डवेयर गुण आमतौर पर वीएम के अंदर उपलब्ध नहीं होता है, और libguestfs धीरे-धीरे अंदर चलेगा
एक और वर्चुअल मशीन, चाहे आप कुछ भी करें। नेस्टेड वर्चुअलाइजेशन हमारे यहां ठीक से काम नहीं करता है
अनुभव, और निश्चित रूप से बेयरमेटल पर libguestfs चलाने का कोई विकल्प नहीं है।

सुनिश्चित करना केवीएम is उपलब्ध
सुनिश्चित करें कि KVM सक्षम है और उस उपयोगकर्ता के लिए उपलब्ध है जो libguestfs चलाएगा। आवश्यक
0666 अनुमतियाँ चालू करना सुरक्षित रहें /देव/केवीएम और अधिकांश वितरण अब ऐसा करते हैं।

प्रोसेसर सेवा मेरे से बचने
ऐसे प्रोसेसर से बचें जिनमें हार्डवेयर वर्चुअलाइजेशन नहीं है, और कुछ प्रोसेसर हैं जो हैं
बस बहुत धीमी गति से (एएमडी जिओड एक बेहतरीन उदाहरण है)।

Xen dom0
Xen में, dom0 एक वर्चुअल मशीन है, और इसलिए हार्डवेयर वर्चुअलाइजेशन उपलब्ध नहीं है।

विस्तृत समय का उपयोग करते हुए TS


उपयोग ts(1) विस्तृत समय दिखाने के लिए कमांड (मोरयूटिल्स से):

$ गेस्टफिश -ए /देव/नल रन -v |& ts -i '%s'
0.000022 libguestfs: लॉन्च: प्रोग्राम=गेस्टफिश
0.000134 libguestfs: लॉन्च: संस्करण=1.29.31फेडोरा=23,रिलीज़=2.fc23,libvirt
0.000044 libguestfs: लॉन्च: बैकएंड पंजीकृत: यूनिक्स
0.000035 libguestfs: लॉन्च: बैकएंड पंजीकृत: यूएमएल
0.000035 libguestfs: लॉन्च: बैकएंड पंजीकृत: libvirt
0.000032 libguestfs: लॉन्च: बैकएंड पंजीकृत: डायरेक्ट
0.000030 libguestfs: लॉन्च: बैकएंड=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 कार्यक्रमों से विस्तृत समय प्राप्त करने के लिए।

निम्न स्क्रिप्ट को इस रूप में सहेजें समय.स्टैप:

वैश्विक अंतिम;

फ़ंक्शन डिस्प्ले_टाइम () {
अभी = gettimeofday_us ();
डेल्टा = 0;
यदि (अंतिम> 0)
डेल्टा = अब - अंतिम;
अंतिम = अभी;

प्रिंटफ़ ("%d (+%d):", अब, डेल्टा);
}

जांच शुरू {
अंतिम = 0;
प्रिंटफ़ ("तैयार\n");
}

/* सभी कॉल को स्थिर मार्करों पर प्रदर्शित करें। */
जांच प्रक्रिया("/ Usr / lib*/libguestfs.so.0")
.provider("gustfs").mark("*") ? {
समय दर्शायें();
प्रिंटफ ("\t%s %s\n", $$नाम, $$पार्म्स);
}

/*guestfs_* फ़ंक्शंस में सभी कॉल प्रदर्शित करें। */
जांच प्रक्रिया("/ Usr / lib*/libguestfs.so.0")
.function('guestfs_[az]*') ? {
समय दर्शायें();
प्रिंटफ ("\t%s %s\n", जांचफंक(), $$parms);
}

इसे एक विंडो में रूट के रूप में चलाएँ:

#स्टैप टाइम.स्टैप
तैयार

जब SystemTap प्रोग्राम लोड करता है तो यह "तैयार" प्रिंट करता है। अपना libguestfs प्रोग्राम चलाएँ,
किसी अन्य विंडो में गेस्टफ़िश या एक गुण उपकरण। उदाहरण के लिए:

$ गेस्टफिश -ए /डेव/नल रन

स्टैप विंडो में आपको प्रत्येक के लिए लगने वाले समय के साथ बड़ी मात्रा में आउटपुट दिखाई देगा
चरण दिखाया गया है (कोष्ठक में माइक्रोसेकंड)। उदाहरण के लिए:

xxxx (+0):guestfs_create
xxxx (+29): अतिथिfs_set_pgroup g=0x17a9de0 pgroup=0x1
xxxx (+9): अतिथिfs_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): गेस्टएफएस_लॉन्च जी=0x17a9de0
xxxx (+4): लॉन्च_स्टार्ट
[वगैरह]

आपको पूरी तरह से समझने के लिए libguestfs के स्रोत से परामर्श करने और यहां तक ​​कि संशोधित करने की भी आवश्यकता होगी
उत्पादन।

विस्तृत डिबगिंग का उपयोग करते हुए GDB


आप gdb का उपयोग करके उपकरण BIOS/कर्नेल से संलग्न कर सकते हैं। यदि आप जानते हैं कि आप क्या कर रहे हैं,
यह बूट रिग्रेशन का निदान करने का एक उपयोगी तरीका हो सकता है।

सबसे पहले, आपको qemu को बदलना होगा ताकि यह "-S" और "-s" विकल्पों के साथ चले। ये विकल्प
क्यूमू को बूट पर रोकें और आपको डिबगर संलग्न करने की अनुमति दें। पढ़ना qemu(1) आगे के लिए
जानकारी। Libguestfs कई बार qemu को आमंत्रित करता है (सहायता आउटपुट आदि को स्कैन करने के लिए)
और आप केवल इन विकल्पों का उपयोग करने के लिए qemu का अंतिम आह्वान चाहते हैं, इसलिए qemu रैपर का उपयोग करें
स्क्रिप्ट इस प्रकार:

#!/ बिन / बैश -

# इसे वास्तविक क्यूमू बाइनरी पर इंगित करने के लिए सेट करें।
qemu=/usr/bin/qemu-kvm

यदि [ "$1" != "-वैश्विक" ]; तब
# स्कैनिंग सहायता आउटपुट आदि।
निष्पादन $qemu "$@"
अन्य
# सच में क्यूमू चल रहा है।
निष्पादन $qemu -S -s "$@"
fi

अब qemu रैपर के साथ गेस्टफ़िश या कोई अन्य libguestfs टूल चलाएँ (देखें "QEMU रैपर्स")
Guestfs(3) यह समझने के लिए कि यह क्या कर रहा है):

LIBGUESTFS_HV=/path/to/qemu-रैपर गेस्टफिश -a /dev/null -v रन

क्यूमू के लॉन्च होने के तुरंत बाद इसे रोक देना चाहिए। दूसरी विंडो में, gdb का उपयोग करके qemu से संलग्न करें:

$ जीडीबी
(जीडीबी) सेट आर्किटेक्चर i8086
लक्ष्य आर्किटेक्चर i8086 माना गया है
(जीडीबी) लक्ष्य रिमोट :1234
:1234 का उपयोग करके रिमोट डिबगिंग
0x0000fff0 में ?? ()
(जीडीबी) जारी

इस बिंदु पर आप मानक जीडीबी तकनीकों का उपयोग कर सकते हैं, उदाहरण के लिए। बूट को बाधित करने के लिए "^C" दबाएँ
और "बीटी" को एक स्टैक ट्रेस मिलता है, ब्रेकप्वाइंट सेट करना आदि। ध्यान दें कि जब आप इससे आगे निकल जाएं
BIOS और Linux कर्नेल में, आप आर्किटेक्चर को वापस 32 या 64 में बदलना चाहेंगे
बिट।

onworks.net सेवाओं का उपयोग करके ऑनलाइन गेस्टफ़्स-प्रदर्शन का उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

Ad