SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
SSD 성능시험


작성일 : 2010/07/28



1. 개요
  DBMS는 데이터의 저장과 관리를 목적으로 한다. 대용량 DB의 저장매체로서 HDD가 대중적으로 쓰이고 있지만, I/O Bound 워크로드에서
  HDD(I/O)에서의 병목현상으로 인해 성능 저하가 발생한다. 본 문서는 새로운 저장매체로 각광받고 있는 SSD를 주 저장매체로 사용할 때 DBMS의
  성능향상 정도를 시험한 내용을 기술한다.



  1.1. 시험 목적
  CUBRID 와 MySQL 을 HDD 와 SSD를 사용하는 장비에 설치하여, 성능 향상 정도(TPS기준)를 알아본다.



  1.2. 시험 장비 및 시험 환경
  시험에 사용한 HDD장비 및 SSD장비의 스펙은 다음과 같다. HDD vs SSD의 성능향상 정도를 정확하게 확인하기 위해서는 저장매체만 HDD와
  SSD로 차이가 있어야 하지만, 시험 장비 확보가 어려워 비교적 스펙이 비슷한 장비 2대를 사용하였다.


                                                HDD 장비                  SSD 장비
                                 OS             CentOS 5.2 x86_64       CentOS 5.3 x86_64
                                 CPU            Xeon 2.5GHz Quad * 2    Xeon 2.26Ghz (L5640)
                                                                        2way 6core
                                 Memory         2G * 4                  8G
                                 Disk           Raid 0+1 SAS 300G * 6   RAID0+1 100G * 6


  HDD장비와 SSD장비 각각에 MySQL과 CUBRID를 설치 하였다. 시험에 사용한 CUBRID/MySQL 의 버젂은 다음과 같다.


          CUBRID 2008 R3.0
          MySQL 5.1.47 (innoDB)


  CUBRID와 MySQL 에 사용된 configuration 은 다음과 같다.(동일하게 4G 데이터 버퍼를 설정함)


      cubrid.conf
       [service]
       service=server,broker,manager


       [common]
       data_buffer_pages=25000
       sort_buffer_pages=16
       log_buffer_pages=50
       lock_escalation=100000
       lock_timeout_in_secs=-1
       deadlock_detection_interval_in_secs=1
       checkpoint_interval_in_mins=720
       isolation_level="TRAN_REP_CLASS_UNCOMMIT_INSTANCE"
       cubrid_port_id=15097
       max_clients=50




1/8
SSD 성능시험


      auto_restart_server=yes
      replication=no
      java_stored_procedure=no


      checkpoint_every_npages=100000000
      data_buffer_pages=262144
      error_log_level=notification
      communication_histogram=yes
      num_LRU_chains=200
      async_commit=yes
      group_commit_interval_in_msecs=1000


     my.cnf
      [client]
      socket = /home1/mysql/mysql/tmp/mysql.sock


      [mysqld]
      user       = mysql
      port       = 3306
      basedir = /home1/mysql/mysql
      datadir = /home1/mysql/mysql/data
      tmpdir = /home1/mysql/mysql/tmp
      socket = /home1/mysql/mysql/tmp/mysql.sock


      default-character-set = utf8
      default_table_type = InnoDB
      skip_name_resolve


      back_log = 100
      max_connections = 500
      max_connect_errors = 999999
      max_allowed_packet = 16M
      max_heap_table_size = 64M
      tmp_table_size = 64M
      binlog_cache_size = 1M
      thread_cache_size = 128


      table_cache = 1024
      sort_buffer_size = 8M
      join_buffer_size = 8M
      read_buffer_size = 2M
      read_rnd_buffer_size = 16M
      query_cache_size = 64M
      query_cache_limit = 2M
      # MyISAM options
      key_buffer_size = 32M
      bulk_insert_buffer_size = 64M
      myisam_sort_buffer_size = 128M
      myisam_max_sort_file_size = 10G
      myisam_max_extra_sort_file_size = 10G
      myisam_repair_threads = 1




2/8
SSD 성능시험


      myisam_recover
      ft_min_word_len = 4


      # INNODB options
      innodb_buffer_pool_size = 4G             # 50 ~ 70% of main memory
      innodb_log_buffer_size = 8M
      innodb_additional_mem_pool_size = 16M
      innodb_data_file_path = ibdata1:100M:autoextend
      innodb_file_per_table
      innodb_log_file_size = 256M
      innodb_log_files_in_group = 3
      innodb_support_xa=0
      innodb_thread_concurrency = 16
      innodb_lock_wait_timeout = 60
      innodb_flush_log_at_trx_commit = 0        # 0 for slave, 1 for master


      # Loging Configuration
      log-bin=mysql-bin
      expire_logs_days=5
      log_warnings
      log_slow_queries
      log_slow_admin_statements
      long_query_time = 2
      log_long_format


      # Replication setting
      server-id      =1



  1.3. 시험 시나리오
     시험을 위한 Table Schema
  성능 시험을 위해서 아래와 같은 테이블 스키마를 이용하여 tbl_200 ~ tbl_239 까지 40개의 테이블을 생성하였다.
  CREATE TABLE tbl_200;

  ALTER CLASS tbl_200 ADD ATTRIBUTE

        id character varying(20) NOT NULL,

        seq integer NOT NULL,

        col3 character varying(16) NOT NULL,

        col4 character varying(5) NOT NULL,

        col5 character varying(50) NOT NULL,

        col6 character varying(1000),

        col7 character varying(300) NOT NULL,

        col8 character varying(150),

        col9 timestamp NOT NULL,




3/8
SSD 성능시험


            col10 smallint DEFAULT 0 NOT NULL,

            col11 timestamp NOT NULL,

            col12 character varying(15) NOT NULL,

            col13 character(1) NOT NULL,

            col14 character(1) NOT NULL,

            col15 timestamp DEFAULT timestamp '04:25:44 PM 07/30/2009' NOT NULL;




  ALTER CLASS tbl_200 ADD ATTRIBUTE

            CONSTRAINT "iuk_tbl" UNIQUE(id, col3, col4, col5),

            CONSTRAINT "ipk_tbl" PRIMARY KEY(id, seq);




  CREATE INDEX ink1_tbl ON tbl_200 (id, col9 DESC, col14);



      위의 테이블 스키마를 사용하여 시험 테이블을 생성하고, HDD/SSD 장비에서 다음 3가지 시험을 진행한다.
              40개의 테이블에 총 2천5백만건의 데이터를 입력한 DB를 생성한 다음, 30분 동안 Insert Full 부하를 주었을 때 성능측정
              40개의 테이블에 총 6천4백만건의 데이터를 입력한 DB를 생성한 다음, CPU Bound Select 부하를 주었을 때 성능측정.
              40개의 테이블에 총 6천4백만건의 데이터를 입력한 DB를 생성한 다음, I/O Bound Select 부하를 주었을 때 성능측정
  위 3가지 모두 40개의 쓰레드에서 부하를 주도록 한다. Insert 부하는 1개의 INSERT 질의로 구성된 트랜잭션이고, SELECT 부하는 primary key,
  unique index, non-unique index 각각을 사용하는 3개의 SELECT 질의로 구성된 트랜잭션이다.


2. 시험 내용 및 결과
  2.1. I/O Bound Insert workload 시험
  40개의 테이블 각각에 약 625,000건의 데이터가 들어 있는 DB(총 2천5백만건)를 생성한 후 Insert Full 부하를 주는 성능 시험을 HDD/ SSD 장비
  각각에서 30분동안 수행하였다. 다음은 수행 결과이다.




                        tps                           IO Read                          IO Write                         % UTIL
         INSERT_FULL_       INSERT_FULL_    INSERT_FULL_    INSERT_FULL_     INSERT_FULL_    INSERT_FULL_     INSERT_FULL_   INSERT_FULL_
                CU              My              CU               My              CU               My              CU             My
 HDD                  508             656             772              828             740              808          100%           100%

 SSD                 2569            1624            3872             1968            4320             2156          100%        75~90%


              TPS 변화




4/8
SSD 성능시험




                        INSERT_FULL : CU vs MY
             3000

             2500

             2000
       TPS




             1500                                                          INSERT_FULL_CU
             1000                                                          INSERT_FULL_My
              500

                0
                          HDD                         SSD


  위 Insert Full 부하에서,
            CUBRID 는 SSD장비에서 HDD 대비 약 5배의 TPS 향상이 있었으며,
            MySQL 은 약 2.5 배의 TPS 향상이 있다.(MySQL은 %UTIL이 100%가 아니므로 추가적인 성능향상의 여지가 있어 보인다.)



  2.2. CPU Bound Select workload 시험
      40개의 테이블 각각에 약 1,600,000건의 데이터가 들어 있는 DB(총 6천4백만건)를 생성한 후 CPU Bound 부하를 주는 성능 시험을 HDD/SSD
  장비 각각에서 10분 동안 수행하였다. 이 워크로드는 Select 질의를 수행하는데 필요한 모든 Page가 메모리 Buffer에 올라 올 수 있도록 질의문의
  검색 범위를 좁혀서 작성하여 Buffer Hit Ratio 가 100%를 유지하도록 하였다. 이 워크로드는 I/O가 발생하지 않기 때문에 HDD vs SSD 장비에서
  I/O 성능을 제외한 부분의 성능 차이를 관찰할 목적으로 수행한 것이다.


      다음은 시험 결과이다.


                                             tps                          % UTIL
                                 SELECT5PR     SELECT5PRO_     SELECT5PRO_    SELECT5PRO_
                                O_FULL_CU          FULL_My      FULL_CU            FULL_My
                          HDD         1131              1276           0%                0%

                          SSD          945              1357           0%                0%




            TPS 변화




5/8
SSD 성능시험




                               SELECT_CPU_FULL : CU vs MY
                            1500



                            1000
                      TPS




                                                                             SELECT5PRO_FULL_CU
                             500                                             SELECT5PRO_FULL_My


                               0
                                            HDD             SSD


  I/O 가 발생하지 않는 상황에서 CUBRID는 약 17%정도의 성능 저하가 있었고, MySQL 은 약 6%정도의 성능 향상이 있었다.
  I/O를 제외 부분에서 두 장비 스펙의 성능차이는 이 정도로 보여진다.



  2.3. I/O Bound Select workload 시험
      40개의 테이블 각각에 약 1,600,000건의 데이터가 들어 있는 DB(총 6천4백만건)를 생성한 후 I/O Bound 부하를 주는 성능 시험을 HDD/SSD
  장비 각각에서 10분동안 수행하였다. 이 워크로드는 Select를 수행하는데 필요한 모든 Page들이 메모리 Buffer에 올라오지 못하도록 질의문의
  검색 범위를 넓혀서 빈번한 Page 교체가 발생하도록 작성되었다. 그래서 이 워크로드는 극심한 I/O작업을 발생시키는 것이 특징이다.


      다음은 시험 결과이다.


                                        tps                                           % UTIL

                     SELECT100PRO_FULL_CU    SELECT100PRO_FULL_My   SELECT100PRO_FULL_CU   SELECT100PRO_FULL_My

            HDD                       212                     176                  100%                   100%

            SSD                       896                     506                  100%                   100%




           TPS 변화




6/8
SSD 성능시험




                                  SELECT_IO_FULL : CU vs MY
                     1000

                     800

                     600
              TPS




                                                                                       SELECT100PRO_FULL_CU
                     400
                                                                                       SELECT100PRO_FULL_My
                     200

                         0
                                      HDD                           SSD


  위 I/O Bound SELECT 부하에서,
           CUBRID 는 SSD장비에서 HDD 대비 약 4.2배의 TPS 향상이 있었으며,
           MySQL 은 SSD 장비에서 HDD 대비 약 2.8 배의 TPS 향상이 있다.
  두 DBMS모두 SSD를 사용할 경우에 성능향상이 있음을 알 수 있다.



  2.4. Select 시험의 정리


  다음은 위의 두 Select 시험 결과를 하나의 표로 정리한 것이다.


                                                  tps                                        % UTIL
             Workload
              Type           HDD_SELECT_FULL_CU     HDD_SELECT_FULL_My       HDD_SELECT_FULL_CU   HDD_SELECT_FULL_My

             CPU BOUND                     1131                       1276                  0%                   0%
      HDD
              IO BOUND                      212                        176                100%                 100%

                             SSD_SELECT_FULL_CU         SSD_SELECT_FULL_My   SSD_SELECT_FULL_CU   SSD_SELECT_FULL_My

             CPU BOUND                      945                       1357                  0%                   0%
      SSD
              IO BOUND                      896                        506                100%                 100%




7/8
SSD 성능시험




                          HDD vs SSD SELECT : CU vs MY
                   1500



                   1000
                                                                        HDD_SELECT_FULL_CU
             tps




                                                                        HDD_SELECT_FULL_My
                    500                                                 SSD_SELECT_FULL_CU
                                                                        SSD_SELECT_FULL_My
                      0
                                 0%                 100%


      위 그래프의 왼쪽은 CPU bound 상황이고 오른쪽은 I/O bound 상황이다. 모든 경우에 CPU Bound 작업이 I/O Bound 보다 TPS 수치가 높다.
  이것은 I/O 가 DBMS의 성능을 저하시키는 주요 원인이라는 것을 보여준다. 가장 특이한 점은 CUBRID는 SSD 장비에서 CPU Bound작업과 I/O
  Bound 작업갂의 성능 변화가 크지 않다는 것이다. 즉, SSD 장비의 이점을 최대한 활용하고 있는 것으로 보인다. (시험에 사용된 SSD 장비의
  random 엑세스가 매우 빠르기 때문으로 판단된다.)



3. 결론
      위 시험에서 MySQL, CUBRID 둘다 SSD에서 TPS 수치가 올라가는 것을 확인 할 수 있다. I/O Bound 워크로드에서 CUBRID는 약 4.2배의 TPS
  향상 효과가 있었으며, MySQL 은 2.8배의 TPS 향상 효과가 있다. 이 시험에서는 CUBRID 든 MySQL 이든 SSD 장비의 특성을 고려한 별도의 DB
  튜닝을 수행하지 않았다. 때문에 SSD장비에서 어느 DBMS가 더 적합한가는 논의 대상이 아니다. 다만, CUBRID/MySQL 모두 SSD장비를 통해서
  I/O bound 작업의 성능 향상이 가능하다는 결롞은 얻을 수 있겠다. 향후에 하드웨어 스펙과 OS가 완젂히 동일한 장비를 사용하고(저장매체만
  HDD와 SSD로 다른 장비를 설정) DB configuration 또한 CUBRID/MySQL 모두 최적으로 설정한 상태에서 보다 다양한 시험을 수행해 볼 수
  있다면, 더 많은 흥미로운 결과를 얻을 수 있을 것으로 보인다.




8/8

Contenu connexe

Tendances

Azure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveAzure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveNaohiro Fujie
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProXToru Makabe
 
AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼
AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼
AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼Amazon Web Services Korea
 
[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁
[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁
[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁jiminlee81
 
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들XpressEngine
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)WhaTap Labs
 
AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...
AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...
AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...Amazon Web Services Korea
 
UKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsUKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsConnor McDonald
 
仕組みがわかるActive Directory
仕組みがわかるActive Directory仕組みがわかるActive Directory
仕組みがわかるActive DirectorySuguru Kunii
 
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~Michio Koyama
 
SQL Tuning, takes 3 to tango
SQL Tuning, takes 3 to tangoSQL Tuning, takes 3 to tango
SQL Tuning, takes 3 to tangoMauro Pagano
 
[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...
[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...
[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...AWS Korea 금융산업팀
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」裕之 木下
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)I Goo Lee.
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介Shinya Sugiyama
 
適切な Azure AD 認証方式の選択の決め手
適切な Azure AD 認証方式の選択の決め手適切な Azure AD 認証方式の選択の決め手
適切な Azure AD 認証方式の選択の決め手Yusuke Kodama
 
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計Trainocate Japan, Ltd.
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesBobby Curtis
 

Tendances (20)

Azure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveAzure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep Dive
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProX
 
AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼
AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼
AWS Summit Seoul 2023 | Snowflake: 모든 데이터 워크로드를 위한 하나의 클라우드 데이터 플랫폼
 
[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁
[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁
[29DCF] PostgreSQL에서 DB Lock을 줄이는 5가지 팁
 
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
 
AWS CLIでAssumeRole
AWS CLIでAssumeRoleAWS CLIでAssumeRole
AWS CLIでAssumeRole
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)
 
AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...
AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...
AWS CDK를 활용한 게임 데이터 파이프라인 구축 방안 [레벨 200] - 발표자: Douglas Lima, 데브옵스 컨설턴트, AWS ...
 
UKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsUKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tips
 
Powershell Demo Presentation
Powershell Demo PresentationPowershell Demo Presentation
Powershell Demo Presentation
 
仕組みがわかるActive Directory
仕組みがわかるActive Directory仕組みがわかるActive Directory
仕組みがわかるActive Directory
 
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
 
SQL Tuning, takes 3 to tango
SQL Tuning, takes 3 to tangoSQL Tuning, takes 3 to tango
SQL Tuning, takes 3 to tango
 
[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...
[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...
[보험사를 위한 AWS Data Analytics Day] 3_교보생명의 빅데이터 플랫폼 ...
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
 
適切な Azure AD 認証方式の選択の決め手
適切な Azure AD 認証方式の選択の決め手適切な Azure AD 認証方式の選択の決め手
適切な Azure AD 認証方式の選択の決め手
 
IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計IDaaS を正しく活用するための認証基盤設計
IDaaS を正しく活用するための認証基盤設計
 
Examining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail FilesExamining Oracle GoldenGate Trail Files
Examining Oracle GoldenGate Trail Files
 

En vedette

SSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracleSSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracle엑셈
 
Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Young D
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble ShootingJi-Woong Choi
 
정보과학회 FTL논문 아이디어
정보과학회 FTL논문 아이디어정보과학회 FTL논문 아이디어
정보과학회 FTL논문 아이디어Jaemyung Kim
 
Karen Lopez 10 Physical Data Modeling Blunders
Karen Lopez 10 Physical Data Modeling BlundersKaren Lopez 10 Physical Data Modeling Blunders
Karen Lopez 10 Physical Data Modeling BlundersKaren Lopez
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database ModelsPrithwis Mukerjee
 
246 deview 2013 신기빈
246 deview 2013 신기빈246 deview 2013 신기빈
246 deview 2013 신기빈NAVER D2
 
[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화Henry Jeong
 
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가Devgear
 
데이터베이스 모델링
데이터베이스 모델링데이터베이스 모델링
데이터베이스 모델링Hoyoung Jung
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)중선 곽
 
이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]
이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]
이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]WSConf.
 
쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정Yoonwhan Lee
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1현찬 양
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬KTH, 케이티하이텔
 
Mysql old password 깨기
Mysql old password 깨기Mysql old password 깨기
Mysql old password 깨기HyunSeung Kim
 
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTYoung D
 

En vedette (20)

SSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracleSSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracle
 
Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
 
정보과학회 FTL논문 아이디어
정보과학회 FTL논문 아이디어정보과학회 FTL논문 아이디어
정보과학회 FTL논문 아이디어
 
Scalable
ScalableScalable
Scalable
 
Karen Lopez 10 Physical Data Modeling Blunders
Karen Lopez 10 Physical Data Modeling BlundersKaren Lopez 10 Physical Data Modeling Blunders
Karen Lopez 10 Physical Data Modeling Blunders
 
Aurora Project
Aurora ProjectAurora Project
Aurora Project
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database Models
 
246 deview 2013 신기빈
246 deview 2013 신기빈246 deview 2013 신기빈
246 deview 2013 신기빈
 
[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화[2 d1] elasticsearch 성능 최적화
[2 d1] elasticsearch 성능 최적화
 
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
 
데이터베이스 모델링
데이터베이스 모델링데이터베이스 모델링
데이터베이스 모델링
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)
 
이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]
이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]
이환 - 이미지는 마크업의 반이다. [WSConf. Seoul 2016/2017]
 
쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
 
Mysql old password 깨기
Mysql old password 깨기Mysql old password 깨기
Mysql old password 깨기
 
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDTPHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
 
Exception&log
Exception&logException&log
Exception&log
 

Similaire à Ssd 성능시험 cubrid mysql

[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1Seok-joon Yun
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTI Goo Lee
 
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Sanghee Lee
 
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트OpenStack Korea Community
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle엑셈
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...Amazon Web Services Korea
 
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
 
Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Daum DNA
 
데이타베이스 기본튜닝
데이타베이스 기본튜닝 데이타베이스 기본튜닝
데이타베이스 기본튜닝 Jinuk Bhak
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Gruter
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part Isprdd
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancementsbeamofhope
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter엑셈
 

Similaire à Ssd 성능시험 cubrid mysql (20)

[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
 
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313
 
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
 
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012
 
데이타베이스 기본튜닝
데이타베이스 기본튜닝 데이타베이스 기본튜닝
데이타베이스 기본튜닝
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part I
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter
 

Ssd 성능시험 cubrid mysql

  • 1. SSD 성능시험 작성일 : 2010/07/28 1. 개요 DBMS는 데이터의 저장과 관리를 목적으로 한다. 대용량 DB의 저장매체로서 HDD가 대중적으로 쓰이고 있지만, I/O Bound 워크로드에서 HDD(I/O)에서의 병목현상으로 인해 성능 저하가 발생한다. 본 문서는 새로운 저장매체로 각광받고 있는 SSD를 주 저장매체로 사용할 때 DBMS의 성능향상 정도를 시험한 내용을 기술한다. 1.1. 시험 목적 CUBRID 와 MySQL 을 HDD 와 SSD를 사용하는 장비에 설치하여, 성능 향상 정도(TPS기준)를 알아본다. 1.2. 시험 장비 및 시험 환경 시험에 사용한 HDD장비 및 SSD장비의 스펙은 다음과 같다. HDD vs SSD의 성능향상 정도를 정확하게 확인하기 위해서는 저장매체만 HDD와 SSD로 차이가 있어야 하지만, 시험 장비 확보가 어려워 비교적 스펙이 비슷한 장비 2대를 사용하였다. HDD 장비 SSD 장비 OS CentOS 5.2 x86_64 CentOS 5.3 x86_64 CPU Xeon 2.5GHz Quad * 2 Xeon 2.26Ghz (L5640) 2way 6core Memory 2G * 4 8G Disk Raid 0+1 SAS 300G * 6 RAID0+1 100G * 6 HDD장비와 SSD장비 각각에 MySQL과 CUBRID를 설치 하였다. 시험에 사용한 CUBRID/MySQL 의 버젂은 다음과 같다.  CUBRID 2008 R3.0  MySQL 5.1.47 (innoDB) CUBRID와 MySQL 에 사용된 configuration 은 다음과 같다.(동일하게 4G 데이터 버퍼를 설정함)  cubrid.conf [service] service=server,broker,manager [common] data_buffer_pages=25000 sort_buffer_pages=16 log_buffer_pages=50 lock_escalation=100000 lock_timeout_in_secs=-1 deadlock_detection_interval_in_secs=1 checkpoint_interval_in_mins=720 isolation_level="TRAN_REP_CLASS_UNCOMMIT_INSTANCE" cubrid_port_id=15097 max_clients=50 1/8
  • 2. SSD 성능시험 auto_restart_server=yes replication=no java_stored_procedure=no checkpoint_every_npages=100000000 data_buffer_pages=262144 error_log_level=notification communication_histogram=yes num_LRU_chains=200 async_commit=yes group_commit_interval_in_msecs=1000  my.cnf [client] socket = /home1/mysql/mysql/tmp/mysql.sock [mysqld] user = mysql port = 3306 basedir = /home1/mysql/mysql datadir = /home1/mysql/mysql/data tmpdir = /home1/mysql/mysql/tmp socket = /home1/mysql/mysql/tmp/mysql.sock default-character-set = utf8 default_table_type = InnoDB skip_name_resolve back_log = 100 max_connections = 500 max_connect_errors = 999999 max_allowed_packet = 16M max_heap_table_size = 64M tmp_table_size = 64M binlog_cache_size = 1M thread_cache_size = 128 table_cache = 1024 sort_buffer_size = 8M join_buffer_size = 8M read_buffer_size = 2M read_rnd_buffer_size = 16M query_cache_size = 64M query_cache_limit = 2M # MyISAM options key_buffer_size = 32M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_max_extra_sort_file_size = 10G myisam_repair_threads = 1 2/8
  • 3. SSD 성능시험 myisam_recover ft_min_word_len = 4 # INNODB options innodb_buffer_pool_size = 4G # 50 ~ 70% of main memory innodb_log_buffer_size = 8M innodb_additional_mem_pool_size = 16M innodb_data_file_path = ibdata1:100M:autoextend innodb_file_per_table innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_support_xa=0 innodb_thread_concurrency = 16 innodb_lock_wait_timeout = 60 innodb_flush_log_at_trx_commit = 0 # 0 for slave, 1 for master # Loging Configuration log-bin=mysql-bin expire_logs_days=5 log_warnings log_slow_queries log_slow_admin_statements long_query_time = 2 log_long_format # Replication setting server-id =1 1.3. 시험 시나리오  시험을 위한 Table Schema 성능 시험을 위해서 아래와 같은 테이블 스키마를 이용하여 tbl_200 ~ tbl_239 까지 40개의 테이블을 생성하였다. CREATE TABLE tbl_200; ALTER CLASS tbl_200 ADD ATTRIBUTE id character varying(20) NOT NULL, seq integer NOT NULL, col3 character varying(16) NOT NULL, col4 character varying(5) NOT NULL, col5 character varying(50) NOT NULL, col6 character varying(1000), col7 character varying(300) NOT NULL, col8 character varying(150), col9 timestamp NOT NULL, 3/8
  • 4. SSD 성능시험 col10 smallint DEFAULT 0 NOT NULL, col11 timestamp NOT NULL, col12 character varying(15) NOT NULL, col13 character(1) NOT NULL, col14 character(1) NOT NULL, col15 timestamp DEFAULT timestamp '04:25:44 PM 07/30/2009' NOT NULL; ALTER CLASS tbl_200 ADD ATTRIBUTE CONSTRAINT "iuk_tbl" UNIQUE(id, col3, col4, col5), CONSTRAINT "ipk_tbl" PRIMARY KEY(id, seq); CREATE INDEX ink1_tbl ON tbl_200 (id, col9 DESC, col14); 위의 테이블 스키마를 사용하여 시험 테이블을 생성하고, HDD/SSD 장비에서 다음 3가지 시험을 진행한다.  40개의 테이블에 총 2천5백만건의 데이터를 입력한 DB를 생성한 다음, 30분 동안 Insert Full 부하를 주었을 때 성능측정  40개의 테이블에 총 6천4백만건의 데이터를 입력한 DB를 생성한 다음, CPU Bound Select 부하를 주었을 때 성능측정.  40개의 테이블에 총 6천4백만건의 데이터를 입력한 DB를 생성한 다음, I/O Bound Select 부하를 주었을 때 성능측정 위 3가지 모두 40개의 쓰레드에서 부하를 주도록 한다. Insert 부하는 1개의 INSERT 질의로 구성된 트랜잭션이고, SELECT 부하는 primary key, unique index, non-unique index 각각을 사용하는 3개의 SELECT 질의로 구성된 트랜잭션이다. 2. 시험 내용 및 결과 2.1. I/O Bound Insert workload 시험 40개의 테이블 각각에 약 625,000건의 데이터가 들어 있는 DB(총 2천5백만건)를 생성한 후 Insert Full 부하를 주는 성능 시험을 HDD/ SSD 장비 각각에서 30분동안 수행하였다. 다음은 수행 결과이다. tps IO Read IO Write % UTIL INSERT_FULL_ INSERT_FULL_ INSERT_FULL_ INSERT_FULL_ INSERT_FULL_ INSERT_FULL_ INSERT_FULL_ INSERT_FULL_ CU My CU My CU My CU My HDD 508 656 772 828 740 808 100% 100% SSD 2569 1624 3872 1968 4320 2156 100% 75~90%  TPS 변화 4/8
  • 5. SSD 성능시험 INSERT_FULL : CU vs MY 3000 2500 2000 TPS 1500 INSERT_FULL_CU 1000 INSERT_FULL_My 500 0 HDD SSD 위 Insert Full 부하에서,  CUBRID 는 SSD장비에서 HDD 대비 약 5배의 TPS 향상이 있었으며,  MySQL 은 약 2.5 배의 TPS 향상이 있다.(MySQL은 %UTIL이 100%가 아니므로 추가적인 성능향상의 여지가 있어 보인다.) 2.2. CPU Bound Select workload 시험 40개의 테이블 각각에 약 1,600,000건의 데이터가 들어 있는 DB(총 6천4백만건)를 생성한 후 CPU Bound 부하를 주는 성능 시험을 HDD/SSD 장비 각각에서 10분 동안 수행하였다. 이 워크로드는 Select 질의를 수행하는데 필요한 모든 Page가 메모리 Buffer에 올라 올 수 있도록 질의문의 검색 범위를 좁혀서 작성하여 Buffer Hit Ratio 가 100%를 유지하도록 하였다. 이 워크로드는 I/O가 발생하지 않기 때문에 HDD vs SSD 장비에서 I/O 성능을 제외한 부분의 성능 차이를 관찰할 목적으로 수행한 것이다. 다음은 시험 결과이다. tps % UTIL SELECT5PR SELECT5PRO_ SELECT5PRO_ SELECT5PRO_ O_FULL_CU FULL_My FULL_CU FULL_My HDD 1131 1276 0% 0% SSD 945 1357 0% 0%  TPS 변화 5/8
  • 6. SSD 성능시험 SELECT_CPU_FULL : CU vs MY 1500 1000 TPS SELECT5PRO_FULL_CU 500 SELECT5PRO_FULL_My 0 HDD SSD I/O 가 발생하지 않는 상황에서 CUBRID는 약 17%정도의 성능 저하가 있었고, MySQL 은 약 6%정도의 성능 향상이 있었다. I/O를 제외 부분에서 두 장비 스펙의 성능차이는 이 정도로 보여진다. 2.3. I/O Bound Select workload 시험 40개의 테이블 각각에 약 1,600,000건의 데이터가 들어 있는 DB(총 6천4백만건)를 생성한 후 I/O Bound 부하를 주는 성능 시험을 HDD/SSD 장비 각각에서 10분동안 수행하였다. 이 워크로드는 Select를 수행하는데 필요한 모든 Page들이 메모리 Buffer에 올라오지 못하도록 질의문의 검색 범위를 넓혀서 빈번한 Page 교체가 발생하도록 작성되었다. 그래서 이 워크로드는 극심한 I/O작업을 발생시키는 것이 특징이다. 다음은 시험 결과이다. tps % UTIL SELECT100PRO_FULL_CU SELECT100PRO_FULL_My SELECT100PRO_FULL_CU SELECT100PRO_FULL_My HDD 212 176 100% 100% SSD 896 506 100% 100%  TPS 변화 6/8
  • 7. SSD 성능시험 SELECT_IO_FULL : CU vs MY 1000 800 600 TPS SELECT100PRO_FULL_CU 400 SELECT100PRO_FULL_My 200 0 HDD SSD 위 I/O Bound SELECT 부하에서,  CUBRID 는 SSD장비에서 HDD 대비 약 4.2배의 TPS 향상이 있었으며,  MySQL 은 SSD 장비에서 HDD 대비 약 2.8 배의 TPS 향상이 있다. 두 DBMS모두 SSD를 사용할 경우에 성능향상이 있음을 알 수 있다. 2.4. Select 시험의 정리 다음은 위의 두 Select 시험 결과를 하나의 표로 정리한 것이다. tps % UTIL Workload Type HDD_SELECT_FULL_CU HDD_SELECT_FULL_My HDD_SELECT_FULL_CU HDD_SELECT_FULL_My CPU BOUND 1131 1276 0% 0% HDD IO BOUND 212 176 100% 100% SSD_SELECT_FULL_CU SSD_SELECT_FULL_My SSD_SELECT_FULL_CU SSD_SELECT_FULL_My CPU BOUND 945 1357 0% 0% SSD IO BOUND 896 506 100% 100% 7/8
  • 8. SSD 성능시험 HDD vs SSD SELECT : CU vs MY 1500 1000 HDD_SELECT_FULL_CU tps HDD_SELECT_FULL_My 500 SSD_SELECT_FULL_CU SSD_SELECT_FULL_My 0 0% 100% 위 그래프의 왼쪽은 CPU bound 상황이고 오른쪽은 I/O bound 상황이다. 모든 경우에 CPU Bound 작업이 I/O Bound 보다 TPS 수치가 높다. 이것은 I/O 가 DBMS의 성능을 저하시키는 주요 원인이라는 것을 보여준다. 가장 특이한 점은 CUBRID는 SSD 장비에서 CPU Bound작업과 I/O Bound 작업갂의 성능 변화가 크지 않다는 것이다. 즉, SSD 장비의 이점을 최대한 활용하고 있는 것으로 보인다. (시험에 사용된 SSD 장비의 random 엑세스가 매우 빠르기 때문으로 판단된다.) 3. 결론 위 시험에서 MySQL, CUBRID 둘다 SSD에서 TPS 수치가 올라가는 것을 확인 할 수 있다. I/O Bound 워크로드에서 CUBRID는 약 4.2배의 TPS 향상 효과가 있었으며, MySQL 은 2.8배의 TPS 향상 효과가 있다. 이 시험에서는 CUBRID 든 MySQL 이든 SSD 장비의 특성을 고려한 별도의 DB 튜닝을 수행하지 않았다. 때문에 SSD장비에서 어느 DBMS가 더 적합한가는 논의 대상이 아니다. 다만, CUBRID/MySQL 모두 SSD장비를 통해서 I/O bound 작업의 성능 향상이 가능하다는 결롞은 얻을 수 있겠다. 향후에 하드웨어 스펙과 OS가 완젂히 동일한 장비를 사용하고(저장매체만 HDD와 SSD로 다른 장비를 설정) DB configuration 또한 CUBRID/MySQL 모두 최적으로 설정한 상태에서 보다 다양한 시험을 수행해 볼 수 있다면, 더 많은 흥미로운 결과를 얻을 수 있을 것으로 보인다. 8/8