2014-04-26 4 views
3

마찬가지로 내 last question 당, 나는 HHVM에서 그것을 실행하여 Laravel 속도를하려고 해요.변덕 + 우분투 14.04 + Nginx + HHVM = 천천히 + 충돌

이렇게하면 서버를 64 비트로 업데이트해야하므로 Trusty64를 지금 실행하고 있습니다. deb 패키지를 통해 HHVM과 Nginx를 설치했습니다. 내 nginx를 구성 맞아 완전히 확실하지 않다, 나는 그물이를 긁어 :

server { 
    listen 80 default_server; 

    root /vagrant/public; 
    index index.php index.html index.htm; 

    server_name localhost; 

    access_log /var/log/nginx/localhost.laravel-access.log; 
    error_log /var/log/nginx/locahost.laravel-error.log error; 

    charset utf-8; 

    location/{ 
     try_files \$uri \$uri/ /index.php?\$query_string; 
    } 

    location = /favicon.ico { log_not_found off; access_log off; } 
    location = /robots.txt { log_not_found off; access_log off; } 

    error_page 404 /index.php; 

    include /etc/nginx/hhvm.conf; # The HHVM Magic Here 
} 

을 그리고 내 사이트 내가 그것을 명중 처음 몇 번을로드한다. 내장 된 PHP 서버보다로드하는 데 2 ​​배 이상 오래 걸립니다. 여러 번 새로 고침을하면 페이지로드가 완전히 중단되고 nginx는 504 게이트웨이 시간 초과를 제공하고 더 이상 서버에 SSH를 수행 할 수 없으며 방글라데시는 종료하기 위해 몇 분이 걸립니다. 그게 뭐든지간에, 내 서버가 완전히 죽어 가고있어.

HHVM이 JIT를 사용하고 있고 워밍업이 필요하다고 들었지만 여러 번로드 한 후에 찰칵 소리를 들었습니까? 이게 내 서버를 파괴 할 수 있을까? 어떻게 수정해야합니까?

+0

문제를 들어 더 나은 가시성을 가지고, 내가 추천 또한 GitHub에서 문제를 열었습니다. –

+0

@RaduMurzea HHVM 용? 나는 VirtualBox 공유 폴더가 뭔가 관련이있을 것이라고 생각하기 시작했다. 그들은 엄청난 성능 손실을 일으키고 있었지만, 그것이 내 서버를 무너 뜨리는 지 여부는 모르겠다. 두 사람이 함께 잘 놀지 않을 수도 있습니다. 문제가 해결 된 후 HHVM을 다시 설치하지 않았습니다. 그게 아니라면 판 표를 열어. – mpen

+0

'fastcgi_keep_conn on'을 nginx 설정에 추가 할 수 있습니까? – Sina

답변

2

업데이트 : 나는 내 말을 먹어야한다 !! 나는 지금 HHVM는 JIT 차기 한 번 미만은 10ms의 laravel 시작 화면을로드에 비 공유 디렉토리에 공유 가상 상자 폴더에서 laravel 코드를 이동했다.

수를 나타냅니다 시작 구성 설정이 .에 HHVM의 JIT의 차기 전에 필요한 요청의

여기 내 HHVM에 사용하는 INI 파일입니다 :

pid = /var/run/hhvm/pid 

hhvm.server.file_socket=/var/run/hhvm/hhvm.sock 
hhvm.server.type = fastcgi 
hhvm.server.default_document = index.php 
hhvm.log.level = Warning 
hhvm.log.always_log_unhandled_exceptions = true 
hhvm.log.runtime_error_reporting_level = 8191 
hhvm.log.use_log_file = true 
hhvm.log.file = /var/log/hhvm/error.log 
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc 
hhvm.mysql.typed_results = false 

hhvm.eval.jit_warmup_requests = 1 

jit_warmup_requests = 1 한 최적화하기 전에 다시 나타내지 만 즉시 걷어차 당신은 0으로 설정할 수 있습니다 내가 spe가 아니라면 나는 생각한다. 10 가지 요청이나 비슷한 것입니다.

에 관계없이 공유 폴더를 사용하는 VirtualBox 이미지에서 nginx, hhvm 3.0.1, laravel, Ubuntu 14와 같은 설정을했습니다. PHP-FPM5.5를 실행하는 두 번째 이미지와 동일한 공유 폴더를 사용합니다. PHP-5.5는 50ms 전후에 'got got'페이지를로드하고, HHVM 버전은 250ms 정도의 순서로로드합니다. 예상보다 훨씬 적은 성능입니다. 비공유 디렉토리에서 코드를 실행하여 테스트 할 것이지만 이것이 문제가 아닌지 의심 스럽다.

나는 그것이 컴파일 타임 대 런타임에서 평가되어야하는 코드의 양과 관련이 있다고 생각한다. 내가 마술 방법과 가변 변수를 많이 사용하여 코드를 실행한다면 HHVM이 정확히 빛을 발하지는 않는다는 것을 안다. Laravel은 네임 스페이스 등을 숨기고 펑키 한 자동 로딩을하고 있습니다. 이것은 약간의 영향을 미칠지 모르지만,이 점에 대해 강경 한 자세를 취해야합니다.

나는 HHVM에 스크립트를 전달하는 내의 nginx 설정 파일이 있습니다 (I 소켓이 아닌 TCP를 사용하고 아직 해킹 사용하지 마십시오.)

 location ~ \.php$ { 
      fastcgi_pass unix:/var/run/hhvm/hhvm.sock; 

      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      include   fastcgi_params; 
     } 
+0

결과를 알려 주셔서 감사합니다. 공유 폴더는 성능면에서 엄청난 차이를 만듭니다. 그러나 HHVM이 PHP-FPM보다 우수한 성능을 낼 수 있는지 여부는 확실하지 않습니다. 상상할 수는 없지만, 아마도 최적화로 망쳐 놓은 것일 수도 있습니다.나는 Vagrant-rsync를 설정 한 이후로 HHVM을 다시 시도하지 않았습니다. 당신이 이것을 더 추구한다면 나에게 알려줘! – mpen

+0

@Mark 내 업데이트 참조 - 공유 폴더가 실제로 영향을받습니다. 나는 그것이 매우 빠르게 수행되는 것을보고있다. – Ray

+0

전체 nginx conf를 게시 하시겠습니까? – mpen