2014-01-23 83 views
0

我有一個在virtualbox中運行的CentOS guest虛擬機。它運行Apache和Django。我所有的django網站源文件都在Windows主機目錄中。我在CentOS中安裝了這個目錄。文件系統是vboxsf。帶有apache和django的virtualbox linux guest太慢了

問題是,當我在Windows主機瀏覽器中訪問guest虛擬機的Apache網址時,它加載非常慢。我的意思是瀏覽器等待時間在頁面加載前大約17秒。

爲了研究這個,我使用了python分析,並且我無法使用這個分析器數據找到問題。請在探查器數據下面找到。

ncalls tottime percall cumtime percall filename:lineno(function) 
     578 4.300 0.007 7.650 0.013 /usr/local/python2.7/lib/python2.7/zipfile.py:755(_RealGetContents) 
    345837 1.146 0.000 1.520 0.000 /usr/local/python2.7/lib/python2.7/zipfile.py:277(__init__) 
    1383348 0.752 0.000 0.752 0.000 {method 'read' of 'cStringIO.StringI' objects} 
     578 0.560 0.001 9.182 0.016 build/bdist.linux-x86_64/egg/pkg_resources.py:1452(build_zipmanifest) 
    347095 0.417 0.000 0.417 0.000 {_struct.unpack} 
     575 0.285 0.000 9.738 0.017 build/bdist.linux-x86_64/egg/pkg_resources.py:887(resource_stream) 
    345837 0.273 0.000 0.273 0.000 /usr/local/python2.7/lib/python2.7/zipfile.py:368(_decodeExtra) 
    345837 0.258 0.000 0.401 0.000 /usr/local/python2.7/lib/python2.7/zipfile.py:854(getinfo) 
    769042 0.248 0.000 0.248 0.000 {method 'append' of 'list' objects} 
    345906 0.212 0.000 0.212 0.000 {method 'find' of 'str' objects} 
    345837 0.207 0.000 0.207 0.000 /usr/local/python2.7/lib/python2.7/zipfile.py:362(_decodeFilename) 
    346850 0.205 0.000 0.205 0.000 {method 'replace' of 'str' objects} 
     578 0.204 0.000 0.292 0.001 /usr/local/python2.7/lib/python2.7/zipfile.py:822(namelist) 
2579/621 0.173 0.000 0.363 0.001 /usr/local/python2.7/lib/python2.7/sre_parse.py:379(_parse) 
    345957 0.162 0.000 0.162 0.000 {chr} 
    356098 0.153 0.000 0.153 0.000 {method 'get' of 'dict' objects} 
    22293 0.084 0.000 0.096 0.000 /usr/local/python2.7/lib/python2.7/sre_parse.py:182(__next) 
     600 0.080 0.000 0.080 0.000 {method 'get_data' of 'zipimport.zipimporter' objects} 
3896/608 0.071 0.000 0.193 0.000 /usr/local/python2.7/lib/python2.7/sre_compile.py:32(_compile) 
     1 0.068 0.068 0.068 0.068 /usr/local/python2.7/lib/python2.7/site-packages/celery-3.0.16-py2.7.egg/celery/backends/base.py:15() 
     578 0.056 0.000 9.291 0.016 build/bdist.linux-x86_64/egg/pkg_resources.py:1490(__init__) 
5054/1785 0.052 0.000 0.062 0.000 /usr/local/python2.7/lib/python2.7/sre_parse.py:140(getwidth) 
     894 0.052 0.000 0.806 0.001 /usr/local/python2.7/lib/python2.7/re.py:226(_compile) 
     608 0.052 0.000 0.143 0.000 /usr/local/python2.7/lib/python2.7/sre_compile.py:361(_compile_info) 
    1287 0.040 0.000 0.083 0.000 /usr/local/python2.7/lib/python2.7/sre_compile.py:207(_optimize_charset) 
     1 0.039 0.039 0.060 0.060 /usr/local/python2.7/lib/python2.7/site-packages/ZSI-2.1_a1-py2.7.egg/ZSI/wstools/WSDLTools.py:10() 
    37496 0.039 0.000 0.039 0.000 {isinstance} 
    383/164 0.038 0.000 11.982 0.073 {__import__} 
     1 0.037 0.037 0.190 0.190 /usr/local/python2.7/lib/python2.7/site-packages/ZSI-2.1_a1-py2.7.egg/ZSI/__init__.py:6() 
     575 0.036 0.000 9.841 0.017 /usr/local/python2.7/lib/python2.7/site-packages/pytz-2012h-py2.7.egg/pytz/__init__.py:84(open_resource) 
     5 0.032 0.006 0.032 0.006 {method 'commit' of '_mysql.connection' objects} 
     3 0.031 0.010 0.033 0.011 /usr/local/python2.7/lib/python2.7/site-packages/django/core/cache/backends/memcached.py:153(__init__) 

我想共享文件系統原因造成的問題,所以我只是複製了整個代碼庫中的CentOS客在本地,但我又得到同樣的性能問題。

任何幫助,將不勝感激。謝謝。

編輯: 遊客規格

OS:CentOS的5.8

內存:2GB

存儲:10GB動態分配。

+0

你沒有提到你的客人的規格是什麼。 –

+0

@BurhanKhalid增加了規範。 – thavan

+0

您用來訪問客人的IP是什麼?使用主機專用網絡,而不是客戶端的默認NAT'd接口。 –

回答

1

問題是Windows主機目錄。

當你從Apache請求一個文件時,它很可能會分叉一個新的UNIX進程,它需要將整個Python + Django堆棧加載到內存中。做這個往返文件系統從Windows分區讀取SMB網絡文件系統是非常昂貴的。

我的建議是讓所有的文件在客戶操作系統中,並應該加快了很多。

替代渠溝Windows並在客戶操作系統中運行您的整個開發環境。