Gh-ost란, MySQL에서 online alter 기능이 있지만 아직 완벽하지는 않습니다. 이를 보완하기 위해 percona 의 pt-online-schema-change 스크립트를 사용하기도 하는데요, 원본과 복사본 테이블의 sync 를 trigger 기반으로 맞춘다는 단점이 있습니다. 특수 케이스에서는 일관성 문제도 야기될 수 있고, trigger 가 유발할 수 있는 Lock 으로 인해서 마지막에 swap 할 때 쿼리들이 실패하기도 합니다. 이러한 컨셉은 2009년부터 이어져왔고 큰 변화가 없었습니다. gh-ost 가 이러한 단점을 보완해서 pt-online-schema-change 를 대체할 수 있을지 조심스레 살펴보고 있습니다. 원본과 복사본(ghost table) 간의 sync 를 맞추는데 ..
Cache란 캐시는 고속 저장소로 대용량 데이터, 복잡한 수학적 연산 결과, 정적 컨텐츠 등을 연산 없이 데이터를 불러올 수 있어 CPU 기능 부하와 지연 시간을 줄여줄 수 있고 퍼포먼스를 향상 시킬 수 있습니다. 보통 RAM이나 인메모리 엔진 같이 가볍고 빠른 하드웨어에 설치되어 실행됩니다. 캐시 히트율(cache hit rate)은 요청이 들어왔을 때 캐싱된 데이터가 있는 확률로 들어온 전체 요청 수 대비 캐시가 히트돼서 응답한 개수를 나타냅니다. 캐시 히트율이 높다는 건 그만큼 캐싱 데이터가 쓰여서 성능이 높다는 걸 의미합니다. 하지만 무조건 높다는 게 좋은 건 아닙니다. RDB인 MySQL과 캐시 DB인 Redis는 실시간 싱크(synch)가 이뤄지지 않기에 즉각적인 데이터 반영이 필요한 경우 캐..
프로젝트 진행 중 DB 성능 테스트를 할 일이 생겨서 회사 사수님의 가르침으로 Jmeter툴을 사용해 테스트 진행했습니다. ■ JMeter 파일 다운로드 JMeter Download URL : https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directo..
vm생성 part1에 이어 terraform을 실행해보겠습니다. https://jhdatabase.tistory.com/87 [Terraform - NaverCloud vm생성] part 1 Terraform 이란, 테라폼(Terraform)은 Hashicorp에서 오픈소스로 개발 중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 Infrastructure as Code, IaC 도구입니다. AWS, Azure, GCP 등 여러 cloud 플랫.. jhdatabase.tistory.com ■ Terraform init Terraform provider로 ncloud 등록 [root@terraform ~]# terraform init init 성공시 아래와 같은 로그들 확인 가능 ■ Terrafor..
Terraform 이란, 테라폼(Terraform)은 Hashicorp에서 오픈소스로 개발 중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 Infrastructure as Code, IaC 도구입니다. AWS, Azure, GCP 등 여러 cloud 플랫폼에서 사용이 가능하며, 국내 플랫폼중에서는 네이버 클라우드 플랫폼이 유일하게 등록되어 있습니다. Terraform 기본 개념 resource : 실제로 생성할 인프라 자원을 의미 provider : 리소스들이 배포될 환경을 정의한 것으로 ncp, aws, gcp 등 output : 인프라를 프로비저닝 한 후에 생성된 자원을 output 부분으로 뽑을 수 있습니다. Output으로 추출한 부분은 이후에 remote state에서 활용 가능 bac..
pt-query-digest 이용 TOP10 쿼리를 뽑아 mail로 첨부파일 형식으로 주에 한번씩 보내볼 예정입니다. Slow query에 변수로 인한 같은 쿼리임에도 불구하고 숫자하나만 다른 데이터가 들어가도 top 쿼리에 찍힙니다..결국 중복된 쿼리가 찍혀있을 수 있기때문에 필터링하는 방법을 강구해야할 거 같습니다. 사전 작업 pt-query-digest 설치 https://jhdatabase.tistory.com/53?category=953606 [pt-query-digest - Mysql slowquery 분석 ] 안녕하세요 이번글에서는 Mysql or Mariadb에서 쿼리 실행 시간이 설정된 시간 이상으로 걸릴 시 slow query log가 남게됩니다. 하지만 가시성 가독성이 떨어지기 때문에..
애플리케이션 관련 문제 발생시 얼롯을 받기위해 Slack을 사용하였습니다. Slack 어플을 다운로드 후 얼롯팅 받을 새로운 워크 스페이스를 생성합니다. ▶ 새 워크스페이스 추가 ▶ 채널을 우클릭하여 세부정보를 open합니다. 통합 -> 앱 추가 클릭 ▶ incoming-webhook 앱 설치 Incoming Webhook 외부 소스로부터 Slack 으로 메시지를 게시할 수 있는 방법을 제공하는 Plugin HTTP 요청을 사용하여 원하는 형태의 메시지 (더불어 기타 세부 정보)를 JSON 페이로드와 함께 사용가능 ▶ 얼롯을 받고자하는 채널에 설치 ▶ Webhook URL을 잘 저장해둡니다. https://hooks.slack.com/services/T03E6JT5QAD/B03DR4ANLCD/iCwZn0..
▶Mariadb 설치 yml파일 실행 테스트 [root@jh-semaphore playbooks]# vi dbinstall.yml --- - name: mariadb_install hosts: all remote_user: root tasks: - name: Connection Test ping: - name: Install wget yum: name: wget state: present - name: Create directoty file: path: /root/Downloads state: directory mode: 0775 - name: Download mariadb_repo_setup File get_url: url: https://downloads.mariadb.com/MariaDB/maria..
[분류별 설명] Dashboard : 대시보드 Task Templates : Ansible-PlayBook 실행(Task)을 정의하는 템플릿을 작성합니다. (매개변수 포함) Inventory : 대상서버들의 목록(ansible의 Hosts 파일로 생각하면 됩니다.) Environment : 환경변수 설정 Key Store : Target 서버로 접근할때 사용할 Key(SSH Key or ID/Password 등…) Repositories : Playbook 저장소 설정 Team : Project별 사용자 관리 Task Templates을 만들기 위해서는 KeyStore / Environment / Repositories / Inventory이 필요합니다. Inventory와 Repository를 만들기 ..
Semaphore란 Ansible Tower의 대쳉용 오픈소스로 Semaphore버전입니다. Ansible Tower의 대부분 기능이 구현되어 있으며 가격은 community는 free, Enterprise는 commercial H/W Requirement Spec - CPU: 3.4Ghz(2cores) / Memory : 4GB / Storage : 40GB Prerequisites - Mysql : 5.6.4 / MariaDB : 5.3 / git : 2.x Ansivle semaphre install Docs : https://docs.ansible-semaphore.com/administration-guide/installation Installation - SemaphoreDocs If you ..