मैक ओएस एक्स लायन पर वर्चुअल होस्ट का बहुत धीमी गति से समाधान करना


26

मैक ओएस एक्स लायन (स्नो लेपर्ड से) में अपग्रेड होने के बाद से, मैंने देखा है कि वर्चुअल होस्ट का समाधान बहुत धीमा है (लगभग 20 सेकंड के बीच)। मुझे कई युक्तियाँ मिलीं (उदाहरण के लिए, .LLD TLD का उपयोग नहीं करना) जो इसे हल कर सकते हैं, लेकिन वे मेरे सेटअप पर लागू नहीं होते हैं।

मेरा सेटअप काफी सरल है: - Apache 2 (शेर के साथ भेजना) - PHP को सक्षम करना - कुछ वर्चुअल होस्ट्स को जोड़ा - मेल और SMTP भुगतान पैकेज

अपाचे की मेजबानों की फाइल इस तरह दिखती है:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost
127.0.0.1   tbi.dev
127.0.0.1   www.tbi.dev
127.0.0.1   test1.tbi.dev
127.0.0.1   test2.tbi.dev
127.0.0.1   psa.dev
127.0.0.1   snd.dev

और अपाचे की वर्चुअल होस्ट फ़ाइल इस तरह दिखती है:

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/tbi"
    ServerName tbi.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/tbi"
    ServerName tbi.dev
    ServerAlias *.tbi.dev www.tbi.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/psa"
    ServerName psa.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Bart/Sites/sandbox"
    ServerName snd.dev
</VirtualHost>

सेटअप मूल रूप से स्नो लेपर्ड पर मेरे सेटअप के समान है, लेकिन आभासी मेजबानों को हल करने के लिए अपाचे का प्रदर्शन काफी अलग है। मैं Mac OS X Lion को 10.7.2 पर चलाता हूं, लेकिन 10.7.1 पर चलने पर यह समस्या पहले से मौजूद थी।

यह एक छोटे से मुद्दे की तरह लग सकता है, लेकिन जब आप दिन में कुछ सौ बार वर्चुअल होस्ट एक्सेस कर रहे होते हैं तो यह समय की महत्वपूर्ण बर्बादी को जोड़ता है जैसा कि आप कल्पना कर सकते हैं।


मुझे समस्या वर्णन में कुछ भी दिखाई नहीं दे रहा है जिसने सिस्टम लोड, नेटवर्क उपयोग, मेमोरी उपयोग जैसे सामान्य मुद्दों को खारिज कर दिया है। आप कहते हैं कि वर्चुअल होस्ट को हल करना धीमा है। कहाँ से? होस्ट कमांड, या सर्वर द्वारा दिए गए पृष्ठ को देखना? समय मेजबान snd.dev: यह विशुद्ध रूप से DNS जाता है तो संबंधित / मेजबान, आप कमांड लाइन पर इस तरह प्रदर्शन समय कर सकते हैं
labradort

जवाबों:


22

लंबे DNS टाइमआउट लगभग हमेशा IPv6 मुद्दों का संकेत होते हैं।

क्या आपको अपाचे के लिए आईपीवी 6 कनेक्टिविटी की आवश्यकता है?

यदि नहीं, तो मैं सुझाव देता हूं कि परिवर्तन हो

<VirtualHost *:80>

में

<VirtualHost 0.0.0.0:80>

या IPv6 कनेक्टिविटी को पूरी तरह से निष्क्रिय कर दें।


3
+1: IPv6 DNS लुकअप OSX की एक बड़ी समस्या है। कुछ अस्पष्ट कारण के लिए OSX पहले ipv6 लुकअप करता है। यदि उस समय (30 सेकंड या तो) यह v4 के साथ जारी रहेगा। OSX पहले vor v6 की जांच / आदि की मेजबानी नहीं करता है, यह v4 के लिए करता है, लेकिन v6 के समाप्त होने के बाद ही। यदि आप v6 को अक्षम नहीं कर सकते हैं तो सुनिश्चित करें कि आपके पास v6 DNS सहित पूरी तरह से काम करने वाला v6 सेटअप है।
Tonny

जवाब के लिए धन्यवाद। मुझे यकीन नहीं है कि यह एकमात्र मुद्दा है जो यहां एक भूमिका निभा रहा है, लेकिन एक स्थानीय वर्चुअल होस्ट को हल करने में लगने वाला समय सबसे ज्यादा गिरा है।
बार्ट जैकब्स

मेरा DNS लुकअप को हल करने में लगभग 2-5 सेकंड का समय लग रहा था, 30 का नहीं। इसलिए, मुझे यकीन नहीं है कि मेरा मुद्दा क्या था क्योंकि यह टाइमआउट होने की संभावना नहीं है। भले ही, इस जवाब से बदलाव करने के बाद अब यह तत्काल है।
जस्टिन

22

मैंने अभी इसमें भी भाग लिया है।

यह IPv6 को नेटवर्क कॉन्फ़िगरेशन में बंद कर देगा ...

# list all network interfaces to get their names
networksetup -listallnetworkservices
# disable the one you want, in my case it's WiFi
networksetup -setv6off Wi-Fi

लेकिन .. दुर्भाग्य से यह मेरे लिए DNS हल करने के मुद्दे को हल नहीं कर सका (शायद सिस्टम पुनरारंभ के बाद)। IPv6 स्टाइल IPs को इस तरह / / / मेजबानों में जोड़ने में वास्तव में क्या मदद मिली:

# my original /etc/hosts ...
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

127.0.0.1 project.local

# adding this solved resolving:
fe80::1%lo0 project.local

wget http: //project.local अब तुरंत दिखाता है

Resolving project.local... 127.0.0.1
Connecting to project.local|127.0.0.1|:80... connected.

प्रोजेक्ट को हल करने पर 5 सेकंड के लिए लटकने के बजाय।लोक।


आपकी सलाह की मुझे ज़रूरत थी - मानक के साथ-साथ IPv6 प्रविष्टियों को मेरे होस्ट फ़ाइल में जोड़ा गया 127.0.0.1और समस्या पूरी तरह से हल हो गई।
किर्क वूल

वाह! यह OS X 10.8 (माउंटेन लायन) में मदद करता है। 10.6 से सीधे 10.8 में अपग्रेड करने के बाद मैंने अपने स्थानीय होस्ट लुक्स को हमेशा के लिए पाया ... जैसे कि वे हल करने से पहले टाइम आउट कर रहे थे। इसने मेरे लिए मुद्दा तय कर दिया। धन्यवाद!
लोथर_ग्रीपसेनबैकर

मुझे हाल ही में इस समस्या का सामना करना पड़ा और / etc / मेजबान में IPv6 प्रविष्टियों ने इसे पूरी तरह से ठीक कर दिया।
नील अल्ब्रेक

यह, मेरे लिए अब मैक्स OS 10.10.1 पर काम करता है
ezmilhouse

10

पर MacOSX शेर .local डोमेन मल्टीकास्ट DNS रिसोल्वर (Bonjour) के लिए "आरक्षित" किया गया है।

इसका अर्थ है कि .local के साथ समाप्त होने वाले किसी भी डोमेन को देखने से पहले / आदि / मेजबानों पर mDNS लुकअप (5s तक) हो जाएगा ।

ठीक करता है:

  1. अपने परीक्षण डोमेन को कुछ अन्य TLD (यानी .dev) में बदलें
  2. अपवाद जोड़ने के लिए dscl टूल का उपयोग करें

मेरे लिए भी काम किया ... मुझे पागल कर रहा था कि केवल मेरे कुछ देव स्थलों ने ऐसा किया ... कम और निहारना ... सभी लोग जो अंत में लालायित थे! यह मेरे लिए तब तक शुरू नहीं हुआ जब तक कि मैंने हाई सिएरा में अपग्रेड नहीं किया ... थैंक्स टू @ मर्तुर
एमएफयू

1
dsclअपवाद रणनीति काफी निफ्टी है। @ Artur-bodera आपका लिंक समाप्त हो गया है, लेकिन उन्होंने अपने पुराने ब्लॉग को github github.com/icebourg/itandme-archive/blob/master/posts/2011/08/…
lkravel

यह भी ध्यान दें कि .local IETF के साथ एक प्रस्तावित मानक है: tools.ietf.org/html/rfc6762 यह भी एक डोमेन नाम पंजीकृत करने के लिए वास्तव में अच्छा विचार है यदि आपको "परीक्षण" डोमेन की आवश्यकता है, क्योंकि आपको इसका पूरा नियंत्रण मिलता है। DNS में कॉन्फ़िगर किया गया। डोमेन नाम बनाने से डोमेन सिस्टम के अन्य भागों (जैसे mDNS इस मामले में) के साथ अजीब संघर्ष होने की संभावना है
जेम्स टिक्लस्की

3

इस ब्लॉग पर एक नज़र डालें कि क्या यह मदद करता है, विशेष रूप से समस्या # 2 को उजागर करना:

जाहिरा तौर पर, टर्मिनल और बीएसडी यूनिक्स के कुछ टूल /etc/resolv.conf और पहले / फिर / फिर DNS सर्वरों के सही क्रम का उपयोग करते हैं। हालाँकि, आपके सभी एप्लिकेशन सहित OS X शेर पर बाकी सब, इसे पीछे की ओर करते हैं!


1

यह काम करता हैं।

मैं इस समाधान का उपयोग करता हूं

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost6
fe80::1%lo0 localhost

1

मावेरिक्स पर समान बग।

जब मैंने अपनी स्थानीय मेजबानों की परिभाषाएँ /etc/hostsइस तरह शुरू कीं , जैसे:

127.0.0.1 localhost project1.dev project2.dev
127.0.0.1 project3.dev project4.dev
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

0

मैं बदलने की कोशिश करूँगा:

::1             localhost 
fe80::1%lo0 localhost

सेवा मेरे

::1             localhost6 
fe80::1%lo0 localhost6

1
दुर्भाग्य से, इस मुद्दे को हल नहीं करता है। क्या आप बता सकते हैं कि आपके सुझाव के पीछे क्या तर्क है? हालांकि आपकी प्रतिक्रिया के लिए धन्यवाद।
बार्ट जैकब्स

मैं हाल ही में मशीनों से IPV6 नहीं बल्कि / etc / मेजबान में प्रविष्टियों की तरह snmp प्रतिक्रियाओं के लिए लंबे समय तक लड़ी। अब एक बात जो दिमाग में आती है, वह है समसामयिक समय बाहर - हालांकि थोड़ा अजीब है, क्योंकि मेजबानों को बाध्य होना चाहिए। (निश्चित रूप से इतना, निश्चित रूप से)।
एलियन लाइफ फॉर्म

वास्तव में बहुत अजीब है। अवसरों पर, एक मेजबान का समाधान करना तात्कालिक है (जैसा कि एक उम्मीद है) और दूसरों पर इसे कई सेकंड लग सकते हैं।
बार्ट जैकब्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.