반응형

 


글 작성한 날짜: 2023년 2월 22일

 

자세한 테스트 내용은 나중에 작성하고, 오늘은 튜닝하면서 참고했던 문서만 리스팅~

 

Ceph를 실행할 때 Linux 커널에 대한 튜닝 고려 사항 (redhat 문서)
https://access.redhat.com/documentation/ko-kr/red_hat_ceph_storage/5/html/object_gateway_guide/tuning-considerations-for-the-linux-kernel-when-running-ceph_rgw

 

 


MariaDB + Ceph 조합으로 성능 테스트한 블로그 참고
  - https://ablog.jc-lab.net/230

 

 

[ 테스트 여담 ]
처음 Ceph cluster를 구축할 때, Storage로 HDD를 사용했었다.
그러다가 1개월 후에 SSD로 변경했는데 Bandwidth는 미미하게 커졌고, IOPS 값이 많이 상승했다.
mariaDB 처럼 OS Cache 사용을 원천적으로 막은 DB 제품은 Transaction이 빈번하게 발생하는데, 이런 경우 SSD를 사용하면
엄청나게 큰 효과를 볼 수 있다.
반면 큰 파일을 write, read 하는 Use case라면, ceph storage로 HDD를 사용하든 SSD를 사용하든 성능 면에서 큰 차이는 없다.

 

 

 

 

 

반응형

 


글 작성 및 테스트한 날짜: 2023년 2월 21일

 

<< 참고 문서 >>

InnoDB(MariaDB, MySQL) System Variables 전체 목록 및 상세 설명 문서
  - https://mariadb.com/kb/en/innodb-system-variables/

DB 관리 목적의 SQL (예: show, backup, analyze, kill, reset, use)
  - https://mariadb.com/kb/en/administrative-sql-statements/

 

 

자세한 설명을 하기 전에 설정 파일 예제부터 보자.

$ cat /etc/mysql/conf.d/mariadb.cnf

[client-server]
port = 3306
socket = /run/mysqld/mysqld.sock

[mariadbd]
server-id = 1
bind-address = 0.0.0.0
lower_case_table_names = 1

... 중간 생략 ...

##
## NOTE: 성능 테스트를 위해 아래 4개 항목을 변경하면서 Query Per Second를 측정해봤다.
##
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT_NO_FSYNC
innodb_flush_sync = OFF
innodb_use_native_aio = OFF

... 중간 생략 ...

$

 

 

Transaction Commit Log에 대한 Flush 여부 설정

설정 항목: innodb_flush_log_at_trx_commit

 

##
##  innodb_flush_log_at_trx_commit 설정 변경
##


MariaDB [(none)]> show variables like '%innodb_flush_log_at%';
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_flush_log_at_timeout    | 1    |
| innodb_flush_log_at_trx_commit | 0     |
+--------------------------------+-------+
2 rows in set (0.001 sec)

MariaDB [(none)]> set global innodb_flush_log_at_trx_commit=0;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]>  show variables like 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 0     |
+--------------------------------+-------+
1 row in set (0.000 sec)

MariaDB [(none)]>

 

위 설정 관련 참고 문서:  innodb_flush_log_at_trx_commit 개념 그림 및 튜닝
https://yunhyeonglee.tistory.com/41

 

Flush method 개념

설정 항목: innodb-flush-method

아래 문서를 참고

-  https://medium.com/releem/innodb-flush-method-cbe0ebba8acb
-  https://dus815.tistory.com/entry/Mysql-InnoDB-%EC%97%90%EC%84%9C-OS-Cache-%EC%99%80%EC%9D%98-%EA%B4%80%EA%B3%84

그런데 mariaDB, MySQL 버전이 올라오면서 최근에는 이 설정값을 변경할 수 없다.

 

 

 

 

+ Recent posts