PHP 7 오픈 OPcache 와 Swoole 성능 향상 대비
테스트 에 사 용 된 호스트 는 가상 컴퓨터 이 며,가상 컴퓨터 는 쌍 핵 4GB 의 개인 용 컴퓨터 에 설정 되 어 있다.가상 컴퓨터 시스템 은 linux 이 고 http 서버 는 nginx 를 사용 하 며 lnmp 스 크 립 트 로 nginx,mysql,php 를 설치 합 니 다.Laravel 프레임 워 크 는 7.X 버 전 입 니 다.
사이트 설정,nginx 의 server 블록 에 가상 호스트 설정
server{ listen 80; root "/vagrant/www/laravel7/public"; server_name test.laravel.com; index index.html index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
/etc/hosts 파일 을 편집 하고 새 줄 에 127.0.0.1 test.laravel.com 을 추가 합 니 다.
항목 을 열 고 새 컨트롤 러 TestController 를 만 듭 니 다.안에 test 방법 을 만 듭 니 다.
<?php
namespace App\Http\Controllers;
class TestController extends Controller
{
public function test()
{
return 123;
}
}
routes/api.php 에 경로 등록:
Route::get('test', 'TestController@test');
app/Http/Kernel 파일 에서 주파수 제한 미들웨어 throttle 을 끄 십시오.opcache 와 laravel 을 열지 않 습 니 다.
php-fpm.conf 파일 수정,pm 와 pm.max 수정children 설정,pm 는 static,pm.max 로 설정children 을 50 으로 설정 하여 비교적 좋 은 병행 성능 을 얻 습 니 다.
[www] listen = /tmp/php-cgi.sock listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0666 user = www group = www pm = static pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 10 pm.max_spare_servers = 20 request_terminate_timeout = 100 request_slowlog_timeout = 0 slowlog = var/log/slow.log
fpm 재 부팅 후 ab 압력 측정:ab-n 1000-c 100http://test.laravel.com/api/test
Server Software: nginx
Server Hostname: test.laravel.com
Server Port: 80
Document Path: /api/test
Document Length: 3 bytes
Concurrency Level: 100
Time taken for tests: 148.306 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 253000 bytes
HTML transferred: 3000 bytes
Requests per second: 6.74 [#/sec] (mean)
Time per request: 14830.553 [ms] (mean)
Time per request: 148.306 [ms] (mean, across all concurrent requests)
Transfer rate: 1.67 [Kbytes/sec] received
이때 의 병발 은 대략 7 qps 이다.
OPcache 열기
설정 파일 php.ini 파일 에서 opcache 열기
zend_extension="opcache.so" opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=10000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8
fpm 재 부팅 후 ab 압력 측정:ab-n 1000-c 100http://test.laravel.com/api/test
Server Software: nginx
Server Hostname: test.laravel.com
Server Port: 80
Document Path: /api/test
Document Length: 4 bytes
Concurrency Level: 100
Time taken for tests: 11.006 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 254000 bytes
HTML transferred: 4000 bytes
Requests per second: 90.86 [#/sec] (mean)
Time per request: 1100.590 [ms] (mean)
Time per request: 11.006 [ms] (mean, across all concurrent requests)
Transfer rate: 22.54 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 4.3 0 16
Processing: 409 1069 152.0 1092 1414
Waiting: 408 1069 152.0 1092 1414
Total: 424 1070 149.6 1092 1414
Percentage of the requests served within a certain time (ms)
50% 1092
66% 1126
75% 1149
80% 1162
90% 1203
95% 1242
98% 1280
99% 1309
100% 1414 (longest request)
이때 90qps 에 달 했 습 니 다.성능 은 오픈 하지 않 았 을 때의 10 배 이상 입 니 다!
swoole 가속 팩 사용
오픈 소스 의 laravel-swoole 가속 팩
프로젝트 디 렉 터 리 에서 coposer 명령 설 치 를 실행 합 니 다.nginx 설정 파일 에 swoole 감청 포트 로 전송 을 요청 합 니 다.
ab 압력 측정:ab-n 1000-c 100http://test.laravel.com/api/test
Server Software: nginx
Server Hostname: test.laravel.com
Server Port: 80
Document Path: /api/test
Document Length: 4 bytes
Concurrency Level: 100
Time taken for tests: 1.158 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 225000 bytes
HTML transferred: 4000 bytes
Requests per second: 863.46 [#/sec] (mean)
Time per request: 115.813 [ms] (mean)
Time per request: 1.158 [ms] (mean, across all concurrent requests)
Transfer rate: 189.72 [Kbytes/sec] received
속도 이륙!800 qps 달성!
100 배 넘 는 거 야?
총결산
물론 이것 은 비교적 간단 한 테스트 일 뿐 이지 만 전체적으로 말하자면 opcache 확장 과 swoole 확장 은 php 스 크 립 트 의 성능 향상 에 뚜렷 하 다.
이상 은 PHP 7 오픈 OPcache 와 Swoole 성능 향상 대비 에 대한 상세 한 내용 입 니 다.더 많은 PHP 7 오픈 OPcache 와 Swoole 성능 향상 대비 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.