2011-01-14 11 views
36

क्या लिनक्स बॉक्स पर किसी अन्य सिम्लिंक को सिम्लिंक बनाना कोई दुष्प्रभाव है (विशेष रूप से प्रदर्शन के संदर्भ में)?क्या किसी अन्य प्रतीकात्मक लिंक के लिए प्रतीकात्मक लिंक बनाना कोई दुष्प्रभाव है?

उत्तर

20

सामान्य रूप से, नहीं। तकनीकी रूप से, बहुत संकेत के लिए मामूली प्रदर्शन हिट होगा, लेकिन यह आपके आवेदन के लिए ध्यान देने योग्य नहीं होगा। उदाहरण के तौर पर, अधिकांश साझा लाइब्रेरी symlinks के लिए सिम्लिंक होते हैं (उदा। LibQtCore.so -> libQtCore.so.4 -> libQtCore.so.4.7 -> libQtCore.so.4.7.1)।

3

दुष्प्रभाव

हां। कर्नेल और/या एप्लिकेशन श्रृंखला का पालन करने से इनकार करने से पहले आप केवल इतना प्रतीकात्मक लिंक ढेर कर सकते हैं। (क्योंकि चक्र का पता लगाने की लागत मेमोरी-वार है, विशेष रूप से कर्नेल में, कोई भी "देखा" झंडे का उपयोग नहीं किया जाता है, और इसके बजाय रिकर्सन गहराई का उपयोग किया जाता है।)

+6

क्या आपके पास साइड इफेक्ट्स पर आपकी जानकारी के लिए कोई स्रोत है? – Gerrat

+5

आपको अपने संदर्भ उद्धृत करना चाहिए। – becko

9

यह ज्यादातर डैनियल गैलाघर के तर्क पर एक टिप्पणी है, लेकिन यह नहीं करता है टिप्पणी बॉक्स में फिट नहीं है, इसलिए यह इसे और अधिक पठनीय बना देगा। Wikipedia on symbolic links से:

प्रतीकात्मक लिंक के शुरुआती कार्यान्वयन प्रतीकात्मक लिंक जानकारी को नियमित फ़ाइलों में डेटा के रूप में संग्रहीत करते हैं। फ़ाइल में लिंक के लक्ष्य के लिए पाठ संदर्भ शामिल था, और एक संकेतक [स्पष्टीकरण आवश्यक] इसे प्रतीकात्मक लिंक के रूप में दर्शाता था।

यह विधि धीमी थी और छोटे सिस्टम पर डिस्क-स्पेस का अक्षम उपयोग था। तेजी से सिम्लिंक नामक एक सुधार, डिस्क (इनोड्स) पर फ़ाइल जानकारी संग्रहीत करने के लिए उपयोग की जाने वाली डेटा संरचनाओं के भीतर लक्षित पथ के संग्रहण की अनुमति देता है। यह स्थान आमतौर पर फ़ाइल में आवंटित डिस्क ब्लॉक पतों की एक सूची संग्रहीत करता है। इस प्रकार, लघु लक्ष्य पथ वाले सिम्लिंक को तुरंत एक्सेस किया जाता है। यदि लक्ष्य पथ उपलब्ध इनोड स्पेस से अधिक है तो तेज़ सिम्लिंक वाले सिस्टम अक्सर मूल विधि का उपयोग करने के लिए वापस आते हैं। मूल शैली को धीरे-धीरे धीमी सिमलिंक कहा जाता है। यह ऑपरेटिंग सिस्टम के अन्य या पुराने संस्करणों के साथ डिस्क संगतता के लिए भी प्रयोग किया जाता है।

हालांकि इनोड के अंदर लिंक मान को संग्रहीत करना डिस्क ब्लॉक और डिस्क को सहेजता है, ऑपरेटिंग सिस्टम को अभी भी लिंक में पथ नाम को पार्स करने की आवश्यकता होती है, जिसे हमेशा अतिरिक्त इनोड पढ़ने की आवश्यकता होती है और आम तौर पर अन्य को पढ़ने की आवश्यकता होती है, और संभावित रूप से कई , निर्देशिका, फ़ाइलों की सूची और उनमें से प्रत्येक के इनोड्स को प्रोसेस करने तक, लिंक के पथ घटकों के साथ एक मैच नहीं मिल जाता है। केवल तभी जब एक लिंक एक ही निर्देशिका में किसी फ़ाइल को इंगित करता है तो "तेज़ सिम्लिंक" अन्य सिम्लिंक की तुलना में काफी बेहतर प्रदर्शन प्रदान करता है।

इस प्रकार /usr/lib में पुस्तकालयों के लिए सिमलिंक के लिए सिमलिंक का उपयोग करने का दंड लंबे समय तक पथ लुकअप कि शायद यह भी कई माउंट अंक अवधि की तुलना में कम गंभीर है।

मैंने इस विषय पर कच्ची संख्या नहीं देखी है, लेकिन व्यक्तिगत अनुभव से मैं कहूंगा कि यह मामूली प्रदर्शन हिट पर है, ज्यादातर परिस्थितियों में ध्यान देने योग्य नहीं है। सिम्लिंक के संयोजन में प्रदर्शन हिट मैंने सुना है (व्यक्तिगत रूप से नहीं देखा गया) में (शायद खराब) कार्यान्वयन किया गया है जहां सिस्टम फोर्क का उपयोग एक निश्चित सिम्लिंक के लक्ष्य को खोजने के लिए किया जाता है।

मुझे सिम्लिंक और प्रदर्शन से संबंधित "मांसपेशियों" टिप्पणियां देखना अच्छा लगेगा, क्योंकि यह कुछ महीनों में दूसरी बार है जिसे मैंने एक निश्चित निष्कर्ष पर आने के बिना देखा है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^