ãã¼ã¿ãã¼ã¹è² è·ãã¹ããã¼ã«ã¾ã¨ã(1)
Webã·ã¹ãã éçºã«ããã¦æ§è½è©¦é¨ãè¡ãå ´åãhp LoadRunnerãApache JMeterã¨ãã£ãã¦ã§ããã©ã¦ã¶ãã¨ãã¥ã¬ã¼ã·ã§ã³ãã¦ãããè² è·ãã¹ããã¼ã«ãç¨ããã®ãå®çªã ã¨æãã¾ãããããªãªãããã¾ã«ãã¼ã¿ãã¼ã¹åä½ã§ã®æ§è½ã測ã£ã¦ã»ããã¨é ¼ã¾ãããã¨ãããã®ã§ããããã便å©ãªãã¼ã«ã¯ããã®ããªã¨æã£ã¦èª¿ã¹ã¦ã¿ã¾ããã
ãã¼ã¿ãã¼ã¹ã«å¯¾ããè² è·ãã¹ããã¼ã«ã¯æ¢ãã¨ããããåºã¦ããã®ã§ãããæ¡ä»¶ã§ä½¿ç¨ãã¦ããRDBMSã«å¯¾å¿ãã¦ããªãã£ããããã©ã³ã¶ã¯ã·ã§ã³ä»æ§ãå¸æã¨ç°ãªã£ã¦ããããå¾®å¦ã«ä½ããæªãã£ããã¨ããã¼ãºã«åè´ãããã¼ã«ã¯ããã«ã¯è¦ã¤ããã¾ããããããªã¨ãã«ãã®ã¨ã³ããªããã¼ã«æ¢ãã®åèã«ãªãã°ã¨æãã¾ãã
pgbench
- 対å¿RDBMSï¼PostgreSQL
- 対å¿OSï¼Linuxãªã©
- è¨èªï¼C
- ä½è ï¼ç³äºé夫æ°
- ã©ã¤ã»ã³ã¹ï¼ç¬èª(BSDã©ã¤ã»ã³ã¹ã«è¿ã)
- ãã©ã³ã¶ã¯ã·ã§ã³ä»æ§ï¼TPC-Bãã¼ã¹ãã¦ã¼ã¶æå®
- URLï¼http://www.postgresql.jp/document/current/html/pgbench.html
pgbenchã¯TPC-Bããã¼ã¹ã¨ããæ§è½æ¸¬å®ãã¼ã«ã§ãPostgreSQLæ¬ä½ã«ä»å±ãã¦ãã¾ããTPC-Bã¯TPCã«ãã£ã¦1994å¹´ã«çå®ããããã©ã³ã¶ã¯ã·ã§ã³ä»æ§ã§ã以ä¸ã®SQLãé çªã«å®è¡ãããã®ã§ããæ´æ°ã主ä½ã¨ãããã¼ã¿ãã¼ã¹ã®ãã³ããã¼ã¯ã½ããã«ãªãã¾ãã
UPDATE accounts SET abalance = abalance + :1 WHERE aid = :2; SELECT abalance FROM accounts WHERE aid = :1; UPDATE tellers SET tbalance = abalance + :1 WHERE aid = :2; UPDATE branches SET bbalance = abalance + :1 WHERE aid = :2; INSERT INTO history (aid, aid, aid, delta) VALUES (:1, :2, :3, :4); COMMIT;
TPC-Bèªä½ã¯1995å¹´ã«ã¯ããobsoleteæ±ãã«ãªã£ã¦ãããç¾å¨å
¬å¼ã«ã¯ä½¿ããã¦ãã¾ããã
ãã¾ã©ãã®ãµã¼ãã§ã¯ããã©ã«ãã®è¨å®ã§è©¦é¨ãè¡ãã¨å
¨ãã¼ã¿ãã¡ã¢ãªä¸ã«åã¾ã£ã¦ãã¾ããããã»ã¼COMMITæã®fdatasync()ãã³ããã¼ã¯ã¨ãã£ãæ§ç¸ã«ãªãã¾ããPostgreSQLã®å ´åã¯WALãã°ãONã«ãã¦ãããã©ãããwal_sync_methodã®è¨å®ãã¹ãã¬ã¼ã¸ã«ããããªä¿è·ãããã©ã¤ãããã¯ãã£ãã·ã¥ããããã©ãããã¨ãã£ãç¹ãæ§è½ã®æ±ºå®è¦å ã«ãªãã¾ããGoogleã§æ¤ç´¢ãã¦æ®éã®PCãµã¼ãã§100tpsåå¾ã®çµæãè¼ãã¦ãããã¼ã¸ããã£ãããããããããã¯DBãµã¼ãã®ç·åçãªæ§è½ã測ã£ã¦ããã®ã§ã¯ãªãã¦ãHDDã®æ§è½ã測ã£ã¦ãããã ãªãã¨æã£ãæ¹ãããã§ãã
pgbenchã¯TPC-B以å¤ã«ããç°¡åãªã¹ã¯ãªãããæ¸ããã¨ã§ã¦ã¼ã¶æå®ã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ãããã¨ãã§ãã¾ãã
mysqlbench
- 対å¿RDBMSï¼MySQL
- 対å¿OSï¼Linuxãªã©
- è¨èªï¼C
- ä½è ï¼ä¸æ
- ã©ã¤ã»ã³ã¹ï¼ä¸æ(ã©ã¤ã»ã³ã¹ã«é¢ããè¨è¿°ããªã)
- ãã©ã³ã¶ã¯ã·ã§ã³ä»æ§ï¼TPC-Bãã¼ã¹
- URLï¼http://www.mysql.gr.jp/frame/modules/bwiki/?Contrib#content_1_4
mysqlbenchã¯pgbenchãMySQLã«ç§»æ¤ãããã®ã§ãMyNAã®Webãµã¤ãã§å
¬éããã¦ãã¾ããã¡ã¼ãªã³ã°ãªã¹ãã®éå»ãã°ãæ¼ã£ãã®ã§ãããçµå±ã©ãªããä½ã£ãã®ãåããã¾ããã§ããã
å¾åã¯ãã¡ããpgbenchã¨åãã§ãç¹ã«InnoDBã使ã£ãå ´åã¯å®å
¨ã«fsync()ãããã¯O_DIRECTæã®write()ãã³ããã¼ã¯ã«ãªãã¾ããinnodb_flush_log_at_trx_commitã®è¨å®ãå¤ãã¦ã¿ãããSSDã使ã£ã¦ã¿ããããã¨é¢ç½ãã¨æãã¾ãã
pgbenchã«ããã¦ã¼ã¶æå®ã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããæ©è½ã¯ãmysqlbenchã«ã¯å®è£
ããã¦ãã¾ããã
JDBCBench
- 対å¿RDBMSï¼æ±ç¨
- 対å¿OSï¼æ±ç¨
- è¨èªï¼Java
- ä½è ï¼Mark Matthewsæ°
- ã©ã¤ã»ã³ã¹ï¼ä¸æ(ã©ã¤ã»ã³ã¹ã«é¢ããè¨è¿°ããªã)
- ãã©ã³ã¶ã¯ã·ã§ã³ä»æ§ï¼TPC-Bãã¼ã¹
- URLï¼http://mmmysql.sourceforge.net/performance/
JDBCBenchã¯pgbenchã®å
ã«ãªã£ãããã°ã©ã ã§ãã©ãããããããªãªã¸ãã«ã®ããã§ãããã æ®å¿µãªãããã¦ã³ãã¼ãå
ãè¦ã¤ããã¾ããã§ãããã¨ããããmysqlbenchã«å梱ããã¦ããã®ã§ãããããåãåºãã®ãããã¨æãã¾ããä½è
ã®Mark Matthewsæ°ã¯ç¾å¨Sun Micorosystemsã«å¨ç±ãã¦ãããMySQLã®JDBCãã©ã¤ãConnector/Jã®éçºãããã¦ãã¾ãã
ãã®ãã¼ã«ã¯Javaã§æ¸ããã¦ããããRDBMSãOSãé¸ã³ã¾ãããã¨ã¯ããåºæ¬çã«ã¯MySQLãæ³å®ãã¦æ¸ããã¦ãã¾ãã®ã§ãå¥ã®RDBMSã§åããããå ´åã¯ã¾ãCREATE TABLEæããä¿®æ£ãã¦ããå¿
è¦ãããã¾ãã
ãã®ãã¼ã«ã«ã¯ããã¤ãåé¡ãããã¾ããã¾ãMySQLã®MyISAMãæ³å®ãã¦ä½ãããããããã©ã³ã¶ã¯ã·ã§ã³ãæèããã¦ãã¾ãããJDBCã¯ããã©ã«ãã§ãªã¼ãã³ããããªã®ã§ãInnoDBãä»ã®RDBMSã®å ´å3ã¤ã®UPDATEæã¨1ã¤ã®INSERTæã§ããããCOMMITãè¡ããã¦ãã¾ãã¾ãããã®ããã¾ã¨ããªæ§è½ã測ããã¨ãã§ãã¾ãããç´ãã¦ãã使ãã¾ãããã
ããä¸ã¤ãPreparedStatementã使ããã¦ãã¾ãããããã¯MySQLã«ã¨ã£ã¦ã¯ã©ãã§ããããã¨ãªã®ã§ãããSQLã®è§£æãã§ã¼ãºãé常ã«éãOracleã®å ´åã¯ãã¡ãã¨ããæ§è½ãåããªããªã£ã¦ãã¾ã£ã¦ãã¾ããããã¯ç´ãããããªãä¸ããæ¸ãç´ããæ¹ãæ©ãããããã¾ããã
DbBench
- 対å¿RDBMSï¼FirebirdãMySQL
- 対å¿OSï¼Windows
- è¨èªï¼Delphi
- ä½è ï¼æåæ°
- ã©ã¤ã»ã³ã¹ï¼BSDã©ã¤ã»ã³ã¹
- ãã©ã³ã¶ã¯ã·ã§ã³ä»æ§ï¼TPC-Bãã¼ã¹
- URLï¼http://sourceforge.net/projects/dbbench/
pgbenchãFirebirdåãã«ç§»æ¤ãããã®ã§ããMySQLã«ã対å¿ãã¦ãã¾ããDelphiã§ä½æããã¦ããWindowsä¸ã§åä½ãã¾ãã
ä»åãç´¹ä»ãããã¼ã«ã®ä¸ã§ãå¯ä¸GUIãåãã¦ãã¾ããã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªãå梱ããã¦ããã®ã§ããã¼ã¿ãã¼ã¹ãã»ããã¢ããããã°ããã«æ¸¬å®ãéå§ã§ãã¾ããå°æ¥çã«ã¯PostgreSQLã«ã対å¿ãããã¨ã®ãã¨ã§ãã
DBT-1
- 対å¿RDBMSï¼PostgreSQLãSAP DB
- 対å¿OSï¼Linuxãªã©
- è¨èªï¼C
- ä½è ï¼OSDL(ç¾å¨ã®The Linux Foundation)
- ã©ã¤ã»ã³ã¹ï¼The Artistic License
- ãã©ã³ã¶ã¯ã·ã§ã³ä»æ§ï¼TPC-Wãã¼ã¹
- URLï¼http://sourceforge.net/projects/osdldbt/
DBT-1ã¯OSDL(Open Source Development Labs)ãéçºãããã¼ã¿ãã¼ã¹è² è·ãã¹ããã¼ã«ã§ããTPC-Wããã¼ã¹ã¨ãããã©ã³ã¶ã¯ã·ã§ã³ã®æ§è½ã測å®ãããã¨ãã§ãã¾ãã
TPC-Wã¯Webã®ã·ã§ããã³ã°ãµã¤ãã模ãããã³ããã¼ã¯ä»æ§ã§ãããååæ¤ç´¢ãè³¼å
¥ã¨ãã£ã14ã®å¦çãçµã¿åãããã¦ãã¾ããåºæ¬çã«ã¯ååæ¤ç´¢å¦çã®è² è·ãé«ãã以ä¸ã®ãããªSQLãè² è·ã®å¤§åãå ããå½¢ã§ããããã¯æ¸ç±ãã¸ã£ã³ã«åã§æ¤ç´¢ããã¿ã¤ãã«é ã«ã½ã¼ããã¦æåã®50件ã表示ãããã®ã§ãã
SELECT i_id, i_title, a_fname, a_lname FROM item, author WHERE i_subject = :1 AND i_a_id = a_id ORDER BY i_title ASC LIMIT 50;
TPC-Wã2005å¹´ã«obsoleteã«ãªãã¾ãããç¾å¨å
¬å¼ã«ã¯ä½¿ããã¦ãã¾ããã
DBT-1ã¯ãã¨ãã¨SAP DBãã¿ã¼ã²ããã«éçºããããã®å¾PostgreSQLã¸ã®å¯¾å¿ãè¡ããã¾ãããå
é¨çã«ã¯ãã¼ã¿ãã¼ã¹å
ã«æ ¼ç´ãããã¹ãã¢ãããã·ã¼ã¸ã£ãODBCã¾ãã¯libpqçµç±ã§å®è¡ããã¨ããã¢ã¼ããã¯ãã£ã«ãªã£ã¦ãã¾ããã»ã¨ãã©ã®ãã¸ãã¯ãã¹ãã¢ãããã·ã¼ã¸ã£å
ã«éãã¦ãããããä¸è¬çãªWebã·ã¹ãã ã¨ã¯æ§è½ã®å¾åãç°ãªãã¨èãããã¾ãã
SAP DBã¯SAPãR/3ã®ããã«èªç¤¾éçºããRDBMSã§ããããã®å¾MySQL ABã¨ææºãMaxDBã¨ååãå¤ãã¦éçºãç¶ãããã¦ãã¾ãããã SAP R/3以å¤ã§ä½¿ããã¦ããã±ã¼ã¹ã¯ã»ã¨ãã©ãªãã®ã§ã¯ãªããã¨æãã¾ããMaxDBã¯ãã®å¾2007å¹´ã«SAPã«è¿éããã¾ããã(ãã¥ã¼ã¹ãªãªã¼ã¹)
DBT-1 IPAç
- 対å¿RDBMSï¼MaxDBãOracleãMySQLãPostgreSQL
- 対å¿OSï¼Linuxãªã©
- è¨èªï¼C
- ä½è ï¼æ¥æ¬OSSæ¨é²ãã©ã¼ã©ã
- ã©ã¤ã»ã³ã¹ï¼The Artistic License
- ãã©ã³ã¶ã¯ã·ã§ã³ä»æ§ï¼TPC-Wãã¼ã¹
- URLï¼http://www.ipa.go.jp/software/open/forum/development/index.html
æ¥æ¬OSSæ¨é²ãã©ã¼ã©ã ã¯ãæ
å ±ã·ã¹ãã ã®ã¦ã¼ã¶ã¼ããã³ãã¼ãå¦èçµé¨è
ã®æèè
ãåéããOSSã®æ´»ç¨ä¸ã®èª²é¡ã«ã¤ãã¦ãèªç±ãªç«å ´ã§è°è«ãã課é¡è§£æ±ºã«åãã¦ã®åçµã¿ããè¡ãçµç¹ã ããã§ããIPAãäºåå±ãåãã¦ãã¾ãã
DBT-1 IPAçã¯ãªãªã¸ãã«ã®DBT-1ããã©ã¼ã¯ãã¦ã対å¿RDBMSã追å ãããã¼ã¸ã§ã³ã§ãã
- MaxDBçï¼SAP DBçãä¿®æ£ãã¦MaxDBã§åãããã«ãããã®ãODBCçµç±ã§ã¹ãã¢ãããã·ã¼ã¸ã£ãå®è¡ãã¾ãã
- Oracleçï¼å ã®PostgreSQLçãOracleã«ç§»æ¤ãããã®ãOCI(Oracle Call Interface)çµç±ã§PL/SQLã®ã¹ãã¢ãããã·ã¼ã¸ã£ãå®è¡ãã¾ãã
- MySQLéã¹ãã¢ãçï¼MySQLç¨ã«ãã¼ã¿ãã¼ã¹ã¸ã®ã¤ã³ã¿ãã§ã¼ã¹é¨åãæ°ãã«æ¸ãèµ·ããããã®ãã¹ãã¢ãããã·ã¼ã¸ã£ã¯ä½¿ããã«ãODBCçµç±ã§åã ã®SQLãçºè¡ãã¾ãã
- PostgreSQLéã¹ãã¢ãçï¼MySQLçãPostgreSQLã«ç§»æ¤ãããã®ãã¹ãã¢ãããã·ã¼ã¸ã£ã¯ä½¿ããã«ãODBCçµç±ã§åã ã®SQLãçºè¡ãã¾ãã
å ±åæ¸ãèªãã¨ãIPAçã¯ããªãè¦å´ãã¦ä½ã£ãè·¡ãè¦åãããã¾ããæ®å¿µãªãããç¶ç¶çã«ã¡ã³ããã³ã¹ããã¦ããã½ããã¦ã§ã¢ã§ã¯ãªãããä¸å ·åãã¿ã¤ãã¦ãå ±åããå ããªããã¨ãå ãã¦SAP DBæ代ã®è¨è¨ãå¼ããã£ã¦ã¦ãã¾ã£ããããLinuxã®ã·ã¹ãã éçºã§ã¾ã使ããããã¨ã®ãªãODBCãæ¡ç¨ãã¦ãããã¨ãããã¼ã«èªä½ã測å®çµæã®æ±ããããªãé£ãããã¦ãã¾ã£ã¦ãã¾ããSQLãè¦ãã°è¦ãã»ã©å ¨é¨æ¸ãç´ããããªãã¾ããä»ããDBT-1ãDBT-1 IPAçã使ããã¨ã¯ç§ã¯ãã¾ããããããã¾ããã
ç¶ãã¾ã
ä»åã¯ã¾ãTPC-BãTPC-Wããã¼ã¹ã¨ãããã¼ã«ããç´¹ä»ãã¾ããããã¼ã¿ãã¼ã¹ã®è² è·ãã¹ããã¼ã«ã¯ãããããã£ã¦1ã¨ã³ããªã§ã¾ã¨ããããã¨ã¯é£ããã®ã§ãä»å¾ãã1ã2åããã¦ãããããç´¹ä»ãã¦ããããã¨æãã¾ããããã§ã¯ã¾ãã