MySQL 튜닝으로 PrestaShop 성능을 향상시키는 방법

王林
풀어 주다: 2024-08-13 18:30:40
원래의
1089명이 탐색했습니다.

PrestaShop은 스타트업부터 대기업까지 기업에 온라인 상점 출시, 관리 및 확장을 위한 인프라를 제공하는 것을 목표로 하는 PHP로 개발된 전문적인 무료 오픈 소스 전자 상거래 플랫폼입니다.

맞춤형 테마와 포괄적인 전자상거래 기능을 다양하게 제공하는 PrestaShop은 제품 관리, 보안 결제, 배송, 재고 관리 등 다양한 기능을 즉시 지원합니다.

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

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

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

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

테스트 설정

테스트에 활용되는 PrestaShop 버전은 8.1.2이며, 특히 PHP 8.1에 최적화되어 있습니다. 이 버전의 PrestaShop 설치에 대한 자세한 지침은 공식 문서에서 확인할 수 있습니다.

데모 데이터가 포함된 기본 설치로 PrestaShop을 설치하고 모든 데모 제품을 내보내고 새 제품으로 여러 번 가져온 다음 전자상거래를 위해 여러 언어를 설치합니다.

테스트 기간은 2일이었습니다. 이렇게 긴 테스트 기간을 처리하기 위해 우리는 BlazeMeter(최대 테스트 기간 20분)에서 오픈 소스 부하 테스트 도구인 Locust로 전환했습니다.

다음을 사용했습니다:
GCP Compute Engine 인스턴스 c2-standard-4는 운영 체제용 Debian Bullseye, 웹 서버용 Apache, 데이터베이스 크기 1GB의 기본 구성인 MariaDB 10.5를 갖추고 있습니다.

MySQL 구성

Prestashop을 위한 조정된 구성:

[mysqld]
innodb_change_buffering=none
innodb_change_buffer_max_size=25
innodb_adaptive_flushing_lwm=25.000000
innodb_max_dirty_pages_pct=70.000000
innodb_autoextend_increment=48
thread_stack=299008
transaction_prealloc_size=8192
thread_cache_size=172
max_connections=172
query_cache_type=1
query_cache_size=134217728
query_cache_limit=33554432
query_cache_min_res_unit=4096
key_buffer_size=8388608
max_heap_table_size=16777216
tmp_table_size=16777216
innodb_buffer_pool_size=3355443200
innodb_log_file_size=25165824
innodb_file_per_table=1
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
join_buffer_size=8388608
table_open_cache=2048
table_definition_cache=512
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
optimizer_search_depth=0
innodb_purge_threads=4
thread_handling=one-thread-per-connection
thread_pool_size=6
로그인 후 복사

테스트 결과

PrestaShop의 성능 평가에서 최적화 후 상당한 개선이 나타났습니다.

특히 응답 시간이 610ms에서 370ms로 39% 개선되는 놀라운 감소를 기록했습니다. 마찬가지로 웹사이트의 요청 처리 능력도 초당 요청 8건에서 12건으로 50% 급증했습니다.

CPU 사용률이 감소하여 전체 용량 100%에서 90%로 감소하고 로드가 10% 감소되었습니다. 가장 인상적인 점은 MySQL의 쿼리 처리 기능이 초당 5078개에서 7816개로 53%나 증가한 것입니다.

권장 MySQL 구성을 적용한 후 응답 시간에 미치는 영향을 보여주기 위해 스크린캐스트를 녹화했습니다.

How MySQL Tuning Can Improve PrestaShop Performance

How MySQL Tuning Can Improve PrestaShop Performance

Prestashop Tuned MySQL 구성과 기본값

테스트 결과 그래프는 아래에서 확인할 수 있습니다.

How MySQL Tuning Can Improve PrestaShop Performance
응답 시간(ms), Prestashop에서 조정한 MySQL 구성과 기본값 비교

How MySQL Tuning Can Improve PrestaShop Performance
CPU 사용률(%), PrestaShop 조정 MySQL 구성 대 기본값

How MySQL Tuning Can Improve PrestaShop Performance
초당 쿼리 수, Prestashop에서 조정한 MySQL 구성과 기본값 비교

지역사회 기여

테스트 환경을 설정하는 과정에서 Multiservicios Austral의 CEO인 Giuseppe Pompeo와 긴밀하게 협력했습니다. Giuseppe의 회사는 칠레 디지털 서비스의 최전선에 있으며, 특히 PrestaShop을 통한 전자 상거래 전문 지식으로 유명합니다. PrestaShop의 인정과 인증을 받은 팀은 6년 넘게 이 분야에서 전문적이고 전문적인 서비스를 제공해 왔습니다.

Giuseppe의 참여는 서버를 준비하고, 웹사이트를 시작하고, 초기 데이터를 채우는 데 결정적인 역할을 했습니다. 클라우드 인프라에 대한 그의 방대한 경험과 PrestaShop과 같은 전자 상거래 플랫폼 최적화에 대한 집중은 테스트가 원활하게 진행되는 데 중요한 역할을 했습니다. Giuseppe가 우리 프로젝트에 가져온 지식과 효율성에 대해 무한한 감사를 드립니다.

결론

PrestaShop을 사용한 테스트 절차에서는 데이터베이스 서버 구성을 구성한 후 응답 시간(대기 시간), CPU 사용률, 초당 쿼리 수가 개선된 것으로 나타났습니다. .

응답 시간(지연 시간)은 39% 사이로 감소했고 CPU 사용률은 10% 감소했습니다. 초당 쿼리 수 PrestaShop이 53% 증가했습니다. 웹사이트에 대한 초당 요청 수가 50% 증가합니다.

이 연구를 통해 우리는 PrestaShop 애플리케이션의 성능을 향상시키는 수단으로 MySQL 튜닝의 가치를 보여주고 PrestaShop 사용자가 웹사이트 성능을 최적화할 때 이 방법을 고려하도록 장려하고 싶습니다.

Releem과 같은 도구를 사용하면 최적의 성능을 위해 데이터베이스를 빠르고 쉽게 구성할 수 있으므로 소프트웨어 개발 팀의 부담이 줄어듭니다.

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

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