首页 文章

使用apache和django的virtualbox linux guest太慢了

提问于
浏览
0

我有一个在virtualbox中运行的CentOS客户端 . 它运行apache和django . 我所有的django网站源文件都在Windows主机目录中 . 我在CentOS中安装了这个目录 . 文件系统是vboxsf .

问题是,当我在Windows主机浏览器中访问来宾Apache URL时,它的加载非常慢 . 我的意思是浏览器等待时间大约是页面加载前的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客户端,但是,我再次遇到相同的性能问题 .

任何帮助,将不胜感激 . 谢谢 .

编辑: Guest spec

操作系统:CentOS 5.8

内存:2GB

存储:10GB动态分配 .

1 回答

  • 1

    问题是Windows主机目录 .

    当您从Apache请求文件时,它很可能会分叉一个新的UNIX进程,该进程需要将整个Python Django堆栈加载到内存中 . 执行此往返文件系统从Windows分区读取SMB网络文件系统非常昂贵 .

    我的建议是将所有文件放在客户操作系统中,这应该会加快速度 .

    替代沟渠Windows并在客户操作系统内运行整个开发环境 .

相关问题