시스템 튜토리얼 리눅스 기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?

기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?

Jan 13, 2024 pm 06:24 PM
linux 리눅스 튜토리얼 레드햇 리눅스 시스템 리눅스 명령 리눅스 인증 빨간 모자 리눅스 리눅스 비디오

소개 데이터베이스 관리 시스템(DBMS)은 데이터 집약적인 애플리케이션 시스템에서 가장 중요한 부분입니다. 대용량 데이터와 복잡한 워크로드를 처리할 수 있습니다. 그러나 캐싱에 사용되는 메모리 양, 데이터가 저장 장치에 기록되는 빈도 등의 요소를 제어하는 ​​수백 또는 수천 개의 구성 "손잡이"가 있기 때문에 관리하기가 어렵습니다. 조직에서는 캠페인을 세부적으로 조정하기 위해 전문가를 고용하는 경우가 많지만 많은 기업에서는 전문가에게 비용이 엄청나게 많이 듭니다.

이 기사는 Carnegie Mellon University의 게스트 세 명(Dana Van Aken, Andy Pavlo 및 Geoff Gordon 기사)이 공동 집필했습니다. 이 프로젝트는 학술 연구자들이 연구 프로그램용 AWS 클라우드 크레딧(https://aws.amazon.com/research-credits/)을 사용하여 과학적 혁신을 지원할 수 있는 방법을 보여줍니다.

OtterTune은 적절한 설정을 찾기 위해 DBMS 버튼 구성을 자동화하는 Carnegie Mellon University Database Group(http://db.cs.cmu.edu/projects/autotune/)의 학생 및 연구원이 개발한 새로운 도구입니다. 목표는 데이터베이스 관리에 대한 전문 지식이 없는 사람이라도 누구나 쉽게 DBMS를 배포할 수 있도록 하는 것입니다.

OtterTune은 이전에 배포한 DBMS를 튜닝하여 얻은 지식을 완전히 활용하여 새로 배포된 DBMS를 튜닝한다는 점에서 다른 DBMS 구성 도구와 다릅니다. 이는 새로 배포된 DBMS를 조정하는 데 필요한 시간과 리소스를 크게 줄여줍니다. 이를 위해 OtterTune은 이전 튜닝 세션에서 수집된 튜닝 데이터가 포함된 데이터베이스를 유지 관리합니다. 이 데이터를 사용하여 DBMS가 다양한 구성에 반응하는 방식에 대한 정보를 캡처하는 기계 학습 모델을 구축합니다. OtterTune은 이러한 모델을 사용하여 사용자가 새로운 애플리케이션을 시험해 볼 때 지연 시간 감소 또는 처리량 증가와 같은 특정 목표를 개선하는 설정을 제안하도록 안내합니다.

이 기사에서는 OtterTune 기계 학습 파이프라인의 각 구성 요소를 살펴보고 이 구성 요소가 서로 어떻게 연관되어 DBMS 구성을 조정하는지 보여줍니다. 그런 다음 최적 구성의 성능을 데이터베이스 관리자(DBA) 및 기타 자동화된 튜닝 도구가 선택한 구성과 비교하여 MySQL 및 Postgres에서 OtterTune의 성능을 평가했습니다.

OtterTune은 Carnegie Mellon University 데이터베이스 그룹의 학생과 연구원이 개발한 오픈 소스 도구입니다. 모든 코드는 GitHub(https://github.com/cmu-db/ottertune)에 있으며 Apache License 2.0에 따라 릴리스됩니다.

작동 방식

아래 그림은 OtterTune의 구성 요소와 작업 흐름을 보여줍니다.

기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?

새 튜닝 세션이 시작될 때 사용자는 최적화할 특정 목표(예: 대기 시간 또는 처리량)를 OtterTune에 알려줍니다. 클라이언트 컨트롤러는 대상 DBMS에 연결하고 Amazon EC2 인스턴스 유형과 현재 대상을 수집합니다.

그런 다음 컨트롤러는 첫 번째 관찰 기간을 시작합니다. 이 기간 동안 DBMS를 관찰하고 특정 대상을 기록합니다. 관찰 기간이 끝나면 컨트롤러는 디스크에서 읽은 페이지 수 및 디스크에 쓴 페이지의 MySQL 수와 같은 내부 측정항목을 DBMS에서 수집합니다. 컨트롤러는 특정 목표와 내부 측정항목을 모두 튜닝 관리자에게 반환합니다.

OtterTune의 튜닝 관리자는 메트릭을 수신한 후 이를 저장소에 저장합니다. OtterTune은 결과를 사용하여 컨트롤러가 대상 DBMS에 설치해야 하는 다음 구성을 계산합니다. 튜닝 관리자는 이 구성을 컨트롤러에 반환하고 실제 실행을 통해 예상되는 개선 사항을 추정합니다. 사용자는 튜닝 세션을 계속할지 또는 종료할지 결정할 수 있습니다.

지침

OtterTune은 지원하는 각 DBMS 버전에 대한 버튼 블랙리스트를 유지 관리합니다. 블랙리스트에는 조정할 필요가 없는 버튼(예: DBMS 저장 파일의 경로 이름) 또는 심각하거나 숨겨진 결과를 초래할 수 있는 버튼(예: DBMS의 데이터 손실을 유발할 수 있음)이 포함됩니다. 각 튜닝 세션이 시작될 때 OtterTune은 사용자에게 블랙리스트를 제공하므로 OtterTune이 튜닝을 피하기를 원하는 다른 버튼을 추가할 수 있습니다.

OtterTune은 일부 사용자에게 유용성을 제한할 수 있는 특정 가정을 합니다. 예를 들어, 사용자에게 관리자 권한이 있어 컨트롤러가 DBMS 구성을 수정할 수 있다고 가정합니다. 사용자에게 관리자 권한이 없는 경우 OtterTune 튜닝 실험을 위해 데이터베이스의 두 번째 복사본을 다른 하드웨어에 배포할 수 있습니다. 이를 위해서는 사용자가 작업 부하 추적을 재생하거나 프로덕션 등급 DBMS에서 쿼리를 전달해야 합니다. 가정 및 제한 사항에 대한 자세한 내용은 논문(http://db.cs.cmu.edu/papers/2017/tuning-sigmod2017.pdf)을 참조하세요.

머신러닝 파이프라인

아래 이미지는 OtterTune의 기계 학습 파이프라인을 통과하는 데이터가 어떻게 처리되는지 보여줍니다. 모든 관찰 내용은 OtterTune의 데이터베이스에 저장됩니다.

OtterTune은 먼저 관찰 결과를 작업 부하 특성화 구성 요소로 전송합니다. 이 구성 요소는 성능 변화와 다양한 워크로드의 고유한 특성을 가장 정확하게 캡처하는 작은 DBMS 지표 집합을 식별합니다.

다음으로 Knob Identification 구성 요소는 DBMS 성능에 가장 큰 영향을 미치는 버튼을 나열하는 버튼 정렬 목록을 생성합니다. 그런 다음 OtterTune은 이 모든 정보를 자동 튜너에 제공합니다. 이 구성요소는 대상 DBMS의 작업 부하를 데이터 저장소의 가장 유사한 작업 부하에 매핑하고 작업 부하 데이터를 재사용하여 보다 적절한 구성을 생성합니다.

기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?

이제 기계 학습 파이프라인의 각 구성 요소를 자세히 살펴보겠습니다.

워크로드 특성화: OtterTune은 DBMS의 내부 런타임 지표를 사용하여 워크로드의 동작 특성을 설명합니다. 이러한 지표는 런타임 동작의 다양한 측면을 포착하므로 워크로드를 정확하게 나타냅니다. 그러나 많은 지표는 중복됩니다. 일부는 서로 다른 단위로 기록된 동일한 지표 값이고 다른 일부는 값이 높은 상관 관계가 있는 DBMS의 독립적인 부분을 나타냅니다. 중복 측정항목을 간소화하는 것은 이를 사용하는 기계 학습 모델의 복잡성을 줄여주기 때문에 중요합니다. 이를 위해 DBMS 메트릭을 상관 패턴을 기반으로 클러스터로 나눕니다. 그런 다음 각 클러스터에서 대표 측정항목, 특히 클러스터 중심에 가장 가까운 측정항목을 선택합니다. 기계 학습 파이프라인의 후속 구성 요소는 이러한 측정항목을 사용합니다.

노브 식별: DBMS에는 수백 개의 버튼이 있을 수 있지만 소수의 버튼만이 DBMS의 성능에 영향을 미칩니다. OtterTune은 Lasso라는 널리 사용되는 기능 선택 기술을 사용하여 시스템의 전체 성능에 큰 영향을 미치는 버튼을 결정합니다. OtterTune은 이 기술을 데이터베이스의 데이터에 적용함으로써 DBMS의 버튼 중요 순서를 식별할 수 있습니다.

OtterTune은 제안된 구성에 사용할 버튼 수를 결정해야 합니다. 버튼을 너무 많이 사용하면 OtterTune의 최적화 시간이 크게 늘어납니다. 버튼을 너무 적게 사용하면 OtterTune이 최적의 구성을 찾지 못합니다. 이 프로세스를 자동화하기 위해 OtterTune은 증분 방식을 사용합니다. 튜닝 세션에 사용되는 버튼 수가 점차 늘어납니다. 이 접근 방식을 통해 OtterTune은 가장 중요한 버튼의 작은 집합에 대한 구성을 탐색 및 최적화한 다음 추가 버튼을 고려하도록 범위를 확장할 수 있습니다.

자동 조정기: 자동 조정 구성 요소는 각 관찰 기간 후에 2단계 분석을 수행하여 OtterTune이 권장해야 하는 구성을 결정합니다.

먼저 시스템은 작업 부하 특성화 구성 요소에서 식별된 지표에 대한 성능 데이터를 사용하여 대상 DBMS 작업 부하를 가장 잘 나타내는 이전 튜닝 세션의 작업 부하를 식별합니다. 세션의 지표를 이전 워크로드의 지표와 비교하여 어느 것이 다른 버튼 설정에 유사하게 반응하는지 확인합니다.

그런 다음 OtterTune은 다른 버튼 구성을 선택하여 시도해 봅니다. 이는 수집된 데이터뿐만 아니라 저장소에서 가장 유사한 워크로드의 데이터에 통계 모델을 적용합니다. 이 모델을 통해 OtterTune은 가능한 모든 구성을 사용하여 DBMS가 어떻게 작동할지 예측할 수 있습니다. OtterTune은 탐색(모델 개선을 위한 정보 수집)과 활용(특정 지표에서 가능한 한 성능을 발휘) 간의 균형을 유지하기 위해 다음 구성을 최적화합니다.

달성

OtterTune은 Python으로 작성되었습니다.

워크로드 특성화 및 Knob 식별에 관한 한 런타임 성능은 걱정할 주요 문제가 아니므로 scikit-learn을 사용하여 해당 기계 학습 알고리즘을 구현했습니다. 이러한 알고리즘은 백그라운드 프로세스에서 실행되며 OtterTune의 데이터베이스에서 새로운 데이터를 사용할 수 있게 되는 즉시 통합됩니다.

자동 튜너의 경우 기계 학습 알고리즘이 중요한 경로에 있습니다. 각 관찰 기간 후에 실행되어 OtterTune이 다음에 시도할 버튼 구성을 선택할 수 있도록 새 데이터를 통합합니다. 성능이 고려 사항이므로 TensorFlow를 사용하여 이러한 알고리즘을 구현했습니다.

DBMS 하드웨어, 버튼 구성 및 런타임 성능 지표에 대한 데이터를 수집하기 위해 OtterTune의 컨트롤러를 OLTP-Bench 벤치마킹 프레임워크와 통합했습니다.

평가

평가를 위해 OtterTune이 선택한 최상의 구성을 MySQL 및 Postgres 성능에 대한 다음 구성과 비교했습니다.

  • 기본값: DBMS에서 제공하는 구성
  • 튜닝 스크립트: 오픈 소스 튜닝 자문 도구로 생성된 구성
  • DBA: 데이터베이스 관리자가 생성한 구성
  • RDS: Amazon RD에서 관리하고 동일한 유형의 EC2 인스턴스에 배포된 DBMS용으로 사용자 정의된 구성입니다.

Amazon EC2 스팟 인스턴스에서 모든 실험을 수행했습니다. 우리는 두 개의 인스턴스(OtterTune의 컨트롤러용 인스턴스와 배포된 대상 DBMS 시스템용 인스턴스)에서 각 평가판을 수행했습니다. 우리는 각각 m4.large 및 m3.xlarge 인스턴스 유형을 사용했습니다. 우리는 20개의 코어와 128GB의 메모리를 갖춘 로컬 서버에 OtterTune의 튜닝 관리자와 데이터 데이터베이스를 배포했습니다.

온라인 트랜잭션 처리(OLTP) 시스템의 성능을 평가하기 위한 업계 표준인 TPC-C 워크로드를 사용했습니다.

실험에 사용한 각 데이터베이스인 MySQL과 Postgres에 대해 대기 시간과 처리량을 측정했습니다. 다음 그림은 결과를 보여줍니다. 첫 번째 그래프는 99번째 백분위수 대기 시간을 보여줍니다. 이는 트랜잭션이 완료되는 데 걸리는 "최악의 경우" 시간을 나타냅니다. 두 번째 그래프는 초당 완료된 평균 트랜잭션 수로 측정된 처리량 결과를 보여줍니다.

MySQL 결과:

기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?

OtterTune에서 생성된 최적의 구성과 튜닝 스크립트 및 RDS에서 생성된 구성을 비교하면 OtterTune 구성을 사용하면 MySQL의 지연 시간이 약 60% 감소하고 처리량이 35% 증가하는 것을 확인할 수 있습니다. OtterTune은 또한 데이터베이스 관리자가 선택한 결과만큼 좋은 구성을 생성합니다.

몇 가지 MySQL 버튼은 TPC-C 워크로드 성능에 상당한 영향을 미칩니다. OtterTune과 데이터베이스 관리자가 생성한 구성은 이러한 각 버튼에 대한 좋은 설정을 제공합니다. RDS는 하나의 버튼에 대해 최적이 아닌 설정을 제공하기 때문에 성능이 약간 떨어졌습니다. 튜닝 스크립트의 구성은 버튼 하나만 수정했기 때문에 최악의 성능을 보였습니다.

Postgres에 대한 결과:

기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?

대기 시간 측면에서 OtterTune, 튜닝 도구, 데이터베이스 관리 및 RDS 생성 구성은 모두 Postgres의 기본 설정에 비해 유사한 개선 사항을 보여줍니다. 이는 아마도 네트워크를 통한 OLTP-Bench 클라이언트와 DBMS 간의 왕복에 필요한 오버헤드 때문이라고 할 수 있습니다. 처리량의 경우 OtterTune에서 권장하는 구성을 사용하면 Postgres 성능은 데이터베이스 관리자 및 튜닝 스크립트가 선택한 구성보다 약 12%, RDS보다 약 32% 더 높습니다.

MySQL과 유사하게 Postgres 성능에 중요한 영향을 미치는 버튼은 몇 개뿐입니다. OtterTune, 데이터베이스 관리자, 튜닝 스크립트 및 RDS 생성 구성은 모두 이러한 버튼을 수정하며 대부분은 꽤 좋은 설정을 제공합니다.

결론

OtterTune은 DBMS 구성 버튼에 대한 올바른 설정을 찾는 프로세스를 자동화합니다. 새로 배포된 DBMS를 튜닝하기 위해 이전 튜닝 세션에서 수집된 교육 데이터를 재사용합니다. OtterTune에서는 기계 학습 모델 교육을 위한 초기 데이터 세트 생성이 필요하지 않으므로 튜닝 시간이 크게 단축됩니다.

다음은 무엇인가요? DBMS 호스트 시스템에 대한 원격 액세스가 없는 DBaaS 배포의 인기가 높아지는 것을 수용하기 위해 OtterTune은 곧 원격 액세스 없이 대상 DMBS의 하드웨어 기능을 자동으로 감지할 수 있게 될 것입니다.

OtterTune에 대한 자세한 내용은 당사의 논문이나 GitHub의 코드를 참조하세요. 이 웹사이트(http://ottertune.cs.cmu.edu/)를 계속 지켜봐 주시기 바랍니다. 곧 온라인 튜닝 서비스인 OtterTune을 출시할 예정입니다.
저자 소개:

Dana Van Aken은 Andrew Pavlo 박사의 지도를 받는 Carnegie Mellon University의 컴퓨터 과학 박사 과정 학생입니다.

Andy Pavlo는 카네기 멜론 대학교 컴퓨터 과학과의 데이터베이스 과학 조교수입니다.

Geoff Gordon은 카네기멜론대학교 기계학습학과의 부교수이자 교육부 부책임자입니다.

위 내용은 기계 학습으로 인해 데이터베이스 관리 시스템 운영자가 실직하게 될까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

VSCODE에 필요한 컴퓨터 구성 VSCODE에 필요한 컴퓨터 구성 Apr 15, 2025 pm 09:48 PM

대 코드 시스템 요구 사항 : 운영 체제 : Windows 10 이상, MacOS 10.12 이상, Linux 배포 프로세서 : 최소 1.6GHz, 권장 2.0GHz 이상의 메모리 : 최소 512MB, 권장 4GB 이상의 저장 공간 : 최소 250MB, 권장 1GB 및 기타 요구 사항 : 안정 네트워크 연결, Xorg/Wayland (LINUX)

VSCODE는 확장자를 설치할 수 없습니다 VSCODE는 확장자를 설치할 수 없습니다 Apr 15, 2025 pm 07:18 PM

VS 코드 확장을 설치하는 이유는 다음과 같습니다. 네트워크 불안정성, 불충분 한 권한, 시스템 호환성 문제, C 코드 버전은 너무 오래된, 바이러스 백신 소프트웨어 또는 방화벽 간섭입니다. 네트워크 연결, 권한, 로그 파일, 업데이트 대 코드 업데이트, 보안 소프트웨어 비활성화 및 대 코드 또는 컴퓨터를 다시 시작하면 점차 문제를 해결하고 해결할 수 있습니다.

Apr 16, 2025 pm 07:39 PM

메모장은 Java 코드를 직접 실행할 수는 없지만 다른 도구를 사용하여 명령 줄 컴파일러 (Javac)를 사용하여 Bytecode 파일 (filename.class)을 생성하면 달성 할 수 있습니다. Java Interpreter (Java)를 사용하여 바이트 코드를 해석하고 코드를 실행하고 결과를 출력하십시오.

vScode를 Mac에 사용할 수 있습니다 vScode를 Mac에 사용할 수 있습니다 Apr 15, 2025 pm 07:36 PM

VS 코드는 Mac에서 사용할 수 있습니다. 강력한 확장, GIT 통합, 터미널 및 디버거가 있으며 풍부한 설정 옵션도 제공합니다. 그러나 특히 대규모 프로젝트 또는 고도로 전문적인 개발의 경우 VS 코드는 성능 또는 기능 제한을 가질 수 있습니다.

VScode 란 무엇입니까? VScode 란 무엇입니까? Apr 15, 2025 pm 06:45 PM

VS Code는 Full Name Visual Studio Code로, Microsoft가 개발 한 무료 및 오픈 소스 크로스 플랫폼 코드 편집기 및 개발 환경입니다. 광범위한 프로그래밍 언어를 지원하고 구문 강조 표시, 코드 자동 완료, 코드 스 니펫 및 스마트 프롬프트를 제공하여 개발 효율성을 향상시킵니다. 풍부한 확장 생태계를 통해 사용자는 디버거, 코드 서식 도구 및 GIT 통합과 같은 특정 요구 및 언어에 확장을 추가 할 수 있습니다. VS 코드에는 코드에서 버그를 신속하게 찾아서 해결하는 데 도움이되는 직관적 인 디버거도 포함되어 있습니다.

git의 창고 주소를 확인하는 방법 git의 창고 주소를 확인하는 방법 Apr 17, 2025 pm 01:54 PM

git 저장소 주소를 보려면 다음 단계를 수행하십시오. 1. 명령 줄을 열고 리포지토리 디렉토리로 이동하십시오. 2. "git remote -v"명령을 실행하십시오. 3. 출력 및 해당 주소에서 저장소 이름을 봅니다.

Linux Architecture : 5 개의 기본 구성 요소를 공개합니다 Linux Architecture : 5 개의 기본 구성 요소를 공개합니다 Apr 20, 2025 am 12:04 AM

Linux 시스템의 5 가지 기본 구성 요소는 다음과 같습니다. 1. Kernel, 2. System Library, 3. System Utilities, 4. 그래픽 사용자 인터페이스, 5. 응용 프로그램. 커널은 하드웨어 리소스를 관리하고 시스템 라이브러리는 사전 컴파일 된 기능을 제공하며 시스템 유틸리티는 시스템 관리에 사용되며 GUI는 시각적 상호 작용을 제공하며 응용 프로그램은 이러한 구성 요소를 사용하여 기능을 구현합니다.

vscode를 사용하는 방법 vscode를 사용하는 방법 Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCODE)는 Microsoft가 개발 한 크로스 플랫폼, 오픈 소스 및 무료 코드 편집기입니다. 광범위한 프로그래밍 언어에 대한 가볍고 확장 성 및 지원으로 유명합니다. VSCODE를 설치하려면 공식 웹 사이트를 방문하여 설치 프로그램을 다운로드하고 실행하십시오. VScode를 사용하는 경우 새 프로젝트를 만들고 코드 편집, 디버그 코드, 프로젝트 탐색, VSCODE 확장 및 설정을 관리 할 수 ​​있습니다. VSCODE는 Windows, MacOS 및 Linux에서 사용할 수 있으며 여러 프로그래밍 언어를 지원하며 Marketplace를 통해 다양한 확장을 제공합니다. 이점은 경량, 확장 성, 광범위한 언어 지원, 풍부한 기능 및 버전이 포함됩니다.

See all articles