MySQL 튜닝이 Laravel 성능을 향상시키는 방법

WBOY
풀어 주다: 2024-07-29 20:33:03
원래의
529명이 탐색했습니다.

MySQL 구성 튜닝은 데이터베이스 전문가와 관리자가 구현하는 데이터베이스 관리의 중요한 구성 요소입니다. 하드웨어와 워크로드에 맞게 데이터베이스를 구성하는 것을 목표로 합니다. 그러나 데이터베이스 관리 영역을 넘어서는 MySQL 구성 튜닝의 유용성은 대부분 무시됩니다.

MySQL 튜닝이 웹 앱 성능에 큰 영향을 미칠 수 있다고 가정합니다. MySQL 튜닝의 가치를 보여줄 수 있다면 기업과 조직은 이 관행을 더 큰 규모로 통합하고 싶어할 것이라고 믿습니다.

Laravel 애플리케이션 성능을 향상시키는 방법

조정을 통한 애플리케이션 성능 향상은 다음 영역을 다루는 포괄적인 접근 방식을 통해 가장 잘 달성됩니다.

  • 서버 리소스 – CPU, 메모리, 스토리지
  • 소프트웨어 구성 – Linux, Nginx, Php...
  • 데이터베이스 관리 시스템(DBMS) 구성 – MySQL, PostgreSQL
  • 데이터베이스 구성 최적화 및 인덱스 변경
  • 애플리케이션 최적화 – 코드, 쿼리, 아키텍처...

경험이 풍부한 많은 개발자는 데이터베이스 성능 튜닝을 앱 성능을 향상시킬 수 있는 기회로 여기지 않습니다. 왜냐하면 이 영역에 대해 거의 알지 못하기 때문입니다. 그들은 코드베이스를 최적화하는 데 많은 시간을 소비하지만, 투자한 시간과 에너지에 비해 더 이상 가치 있는 결과를 가져오지 못하는 지점에 도달합니다. MySQL 튜닝이 인기 있는 오픈 소스 웹 애플리케이션의 성능에 어떻게 긍정적인 영향을 미치는지에 대한 우리의 연구는 이 사실을 개발자에게 보여주는 것을 목표로 합니다.

테스트 접근법

Laravel Aimeos에 대한 테스트 절차를 통해 시드된 데이터를 사용하여 구성 전과 후의 앱 성능을 비교할 수 있습니다. 먼저 기본 구성으로 테스트를 실행하면 조정된 구성과 비교할 수 있는 귀중한 제어 결과를 얻을 수 있습니다.

각 애플리케이션을 준비하고 테스트하기 위해 다음 프로세스를 사용했습니다.

  1. Laravel Aimeos를 배포합니다.
  2. 데이터가 포함된 시드 데이터베이스.
  3. JMeter 테스트를 준비합니다.
  4. 10분 동안 테스트 실행 - Blazemeter 성능 테스트 플랫폼을 사용하여 JMeter 테스트를 실행했습니다.
  5. MariaDB 구성 조정 – 기본 구성 테스트 후 설정은 동일하게 유지되었지만 MariaDB는 워크로드, 서버 리소스 및 데이터베이스 크기에 맞게 조정되었습니다.
  6. 테스트 재실행 – 조정된 구성을 위해 Blazemeter를 사용하여 JMeter 테스트를 반복했습니다.

Github 테스트 중에 JMeter 테스트, MySQL 상태 및 MySQL 변수를 게시했습니다.

우리가 살펴본 지표는 무엇입니까?

이 연구에서 살펴본 측정항목은 다음과 같습니다.

  1. 응답 시간(대기 시간)은 요청을 보내고 서버 측에서 처리하는 시간부터 클라이언트가 첫 번째 바이트를 받는 시간까지의 시간입니다. 서버 성능에 대한 통찰력을 제공하는 중요한 지표입니다.
  2. 초당 쿼리 수는 데이터베이스 서버가 초당 실행하는 쿼리 수를 측정하는 지표입니다.
  3. CPU 사용률.

CPU 사용률초당 쿼리 수 지표를 수집하여 작업 부하를 비교했습니다.

라라벨 아이메오스

Aimeos Laravel은 온라인 상점, 마켓플레이스 및 B2B 앱을 만들기 위한 인기 있는 전자상거래 웹 앱 프레임워크입니다. Aimeos를 사용하면 사용자는 10억 개 이상의 항목을 지원하도록 확장할 수 있는 Laravel용 API 우선 전자상거래 상점을 만들 수 있습니다. 30개 이상의 언어로 제공되며 300,000회 이상 설치되었습니다.

테스트 설정

Aimeos를 테스트하기 위해 10명의 사용자로 테스트를 시작했는데 기본 구성으로는 테스트를 마치지 못해 사용자 수를 줄여야 했습니다.

데이터베이스에 500MB 데이터를 시드했습니다.
테스트 시간은 10분이었습니다.

다음을 사용했습니다:

  • 운영 체제로 Debian 11이 설치된 AWS EC2 인스턴스 c5.xlarge,
  • 웹 서버로서의 Apache,
  • MariaDB 10.5가 데이터베이스 크기 500MB의 기본 구성으로 설정되었습니다.

MySQL 구성

Aimeos Laravel에 사용되는 구성은 다음과 같습니다.

Laravel Aimeos 500Mb에 대한 조정된 구성

query_cache_type=1
query_cache_size=134217728
query_cache_limit=16777216
query_cache_min_res_unit=4096
thread_cache_size=0
key_buffer_size=8388608
max_allowed_packet=1073741824
sort_buffer_size=2097152
read_rnd_buffer_size=262144
bulk_insert_buffer_size=8388608
myisam_sort_buffer_size=8388608
innodb_buffer_pool_chunk_size=134217728
innodb_buffer_pool_size=805306368
max_heap_table_size=16777216
tmp_table_size=16777216
join_buffer_size=8388608
max_connections=151
table_open_cache=2048
table_definition_cache=1408
innodb_flush_log_at_trx_commit=1
innodb_log_file_size=201326592
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
innodb_purge_threads=4
optimizer_search_depth=0
thread_handling=pool-of-threads
thread_pool_size=2
로그인 후 복사

테스트 결과

Aimeos Laravel 테스트 결과는 기본 구성과 조정 구성 사이에서 극적인 성능 향상을 보여주었습니다.

MySQL 최적화를 통해 평균 서버 응답 시간이 크게 향상되어 1.4초에서 800밀리초 미만으로 감소되었습니다.

응답 시간(지연 시간)은 42% 감소하고 평균 CPU 사용률은 86%, 초당 쿼리 수는 291%나 증가했습니다. 초당 12~35개의 쿼리

결과 그래프는 아래와 같습니다.

How MySQL Tuning Improves the Laravel Performance 응답 시간(ms), Aimeos Tuned MySQL 구성 대 기본값
How MySQL Tuning Improves the Laravel Performance CPU 사용률(%), Aimeos Tuned MySQL 구성 대 기본값
How MySQL Tuning Improves the Laravel Performance 초당 쿼리 수, Aimeos Tuned MySQL 구성과 기본값 비교

커뮤니티 기여자

우리는 Initlab 회사의 Laravel 개발자 Gevorg Mkrtchyan 및 Sergey Sinitsa와 협력하여 이러한 질문을 조사했으며 그들의 전문 지식에 매우 감사드립니다.
Sergey는 Aimeos를 배포했고 Gevorg는 데이터베이스 시드용 코드를 준비했습니다.

결론

Aimeos Laravel을 사용한 테스트 절차에서는 데이터베이스 구성 후 응답 시간(대기 시간), CPU 사용률초당 쿼리 수가 크게 향상되었습니다. 서버 구성.

응답 시간(지연 시간)은 42% 사이로 감소했고, CPU 사용률은 86% 감소했습니다. 초당 쿼리 수 Aimeos Laravel 500MB에서 291% 증가했습니다.

결론적으로 MySQL 튜닝은 Laravel 애플리케이션의 성능에 큰 영향을 미칠 수 있는 데이터베이스 관리의 필수적인 측면입니다. 성능이 좋지 않은 웹 애플리케이션은 페이지 로드 시간 증가, 요청 처리 속도 저하, 사용자 경험 저하로 이어질 수 있으며, 이는 SEO 및 판매에 부정적인 영향을 미칠 수 있습니다. MySQL 튜닝으로 웹 앱 성능을 최적화함으로써 기업과 조직은 매출, 페이지뷰, 전환율, SEO 순위를 높일 수 있습니다.

이 연구를 통해 우리는 Laravel 애플리케이션의 성능을 향상시키는 수단으로 MySQL 튜닝의 가치를 보여주고 Laravel 개발자가 앱 성능을 최적화할 때 이러한 방식을 고려하도록 장려하기를 바랍니다.

Releem과 같은 도구를 사용하면 최적의 성능을 제공하도록 데이터베이스를 자동으로 구성할 수 있어 소프트웨어 개발팀의 부담이 줄어듭니다.

위 내용은 MySQL 튜닝이 Laravel 성능을 향상시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!