MySQL 구성 튜닝은 데이터베이스 전문가와 관리자가 구현하는 데이터베이스 관리의 중요한 구성 요소입니다. 하드웨어와 워크로드에 맞게 데이터베이스를 구성하는 것을 목표로 합니다. 그러나 데이터베이스 관리 영역을 넘어서는 MySQL 구성 튜닝의 유용성은 대부분 무시됩니다.
우리는 MySQL 튜닝이 웹 앱 성능에 큰 영향을 미칠 수 있다고 가정합니다. MySQL 튜닝의 가치를 보여줄 수 있다면 기업과 조직은 이 관행을 더 큰 규모로 통합하고 싶어할 것이라고 믿습니다.
조정을 통한 애플리케이션 성능 향상은 다음 영역을 다루는 포괄적인 접근 방식을 통해 가장 잘 달성됩니다.
경험이 풍부한 많은 개발자는 데이터베이스 성능 튜닝을 앱 성능을 향상할 수 있는 기회로 여기지 않습니다. 왜냐하면 이 영역에 대해 거의 알지 못하기 때문입니다. 그들은 코드베이스를 최적화하는 데 많은 시간을 소비하지만, 투자한 시간과 에너지에 비해 더 이상 가치 있는 결과를 가져오지 못하는 지점에 도달합니다. MySQL 튜닝이 인기 있는 오픈 소스 웹 애플리케이션의 성능에 어떻게 긍정적인 영향을 미치는지에 대한 우리의 연구는 이 사실을 개발자에게 보여주는 것을 목표로 합니다.
Laravel Aimeos에 대한 테스트 절차를 통해 시드된 데이터를 사용하여 구성 전과 후의 앱 성능을 비교할 수 있습니다. 먼저 기본 구성으로 테스트를 실행하면 조정된 구성과 비교할 수 있는 귀중한 제어 결과를 얻을 수 있습니다.
우리는 다음 프로세스를 사용하여 각 애플리케이션을 준비하고 테스트했습니다.
Github에서 테스트하는 동안 JMeter 테스트, MySQL 상태 및 MySQL 변수를 게시했습니다.
이 연구에서 살펴본 측정항목은 다음과 같습니다.
CPU 사용률 및 초당 쿼리 수 지표를 수집하여 작업 부하를 비교했습니다.
Aimeos Laravel은 온라인 상점, 마켓플레이스 및 B2B 앱을 만들기 위한 인기 있는 전자 상거래 웹 앱 프레임워크입니다. Aimeos를 사용하면 사용자는 10억 개 이상의 항목을 지원하도록 확장할 수 있는 Laravel용 API 우선 전자상거래 상점을 만들 수 있습니다. 30개 이상의 언어로 제공되며 300,000회 이상 설치되었습니다.
Aimeos를 테스트하기 위해 10명의 사용자로 테스트를 시작했는데 기본 구성으로는 테스트를 완료할 수 없어 사용자 수를 줄여야 했습니다.
우리는 500Mb 데이터로 데이터베이스를 시드했습니다.
테스트 시간은 10분이었습니다.
우리는 사용했었다:
Aimeos Laravel에 사용되는 구성은 다음과 같습니다.
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개.
결과 그래프는 아래에서 확인할 수 있습니다.
응답 시간(ms), Aimeos Tuned MySQL 구성과 기본값 비교
CPU 사용률(%), Aimeos Tuned MySQL 구성과 기본값 비교
초당 쿼리 수, 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과 같은 도구를 사용하면 데이터베이스가 최적의 성능을 위해 자동으로 구성되어 소프트웨어 개발 팀의 부담을 줄일 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3