sysbench 项目测试过程与分析
一、sysbench項目測試過程
1.1 sysbench基準壓測 my.cnf
? ? ? 自動生成MySQL的配置文件:http://imysql.cn/my_cnf_generator
[client] port =?3306 socket =?/data/mysql/mysql.sock[mysql] prompt="\u@mysqldb?\R:\m:\s?[\d]>?" no-auto-rehash[mysqld] user =?mysql port =?3306 basedir =?/usr/local/mysql datadir =?/data/mysql/ socket =?/data/mysql/mysql.sock pid-file?=?mysqldb.pid character-set-server?=?utf8mb4 skip_name_resolve?=?1 open_files_limit?=?65536 back_log?=?1024 max_connections?=?512 max_connect_errors?=?1000000 table_open_cache?=?1024 table_definition_cache?=?1400 table_open_cache_instances?=?64 thread_stack?=?512K external-locking?=?FALSE max_allowed_packet?=?32M sort_buffer_size?=?4M join_buffer_size?=?4M thread_cache_size?=?768 interactive_timeout?=?600 wait_timeout?=?600 tmp_table_size?=?32M max_heap_table_size?=?32M slow_query_log?=?1 log_timestamps?=?SYSTEM slow_query_log_file?=?/var/log/slow.log log-error?=?/var/log/error.log long_query_time?=?0.1 log_queries_not_using_indexes?=1 log_throttle_queries_not_using_indexes?=?60 min_examined_row_limit?=?100 log_slow_admin_statements?=?1 log_slow_slave_statements?=?1 server-id?=?3306 log-bin?=?/var/log/mybinlog sync_binlog?=?1 binlog_cache_size?=?4M max_binlog_cache_size?=?2G max_binlog_size?=?1G expire_logs_days?=?7 master_info_repository?=?TABLE relay_log_info_repository?=?TABLE gtid_mode?=?on enforce_gtid_consistency?=?1 log_slave_updates slave-rows-search-algorithms?=?'INDEX_SCAN,HASH_SCAN' binlog_format?=?row binlog_checksum?=?1 relay_log_recovery?=?1 relay-log-purge?=?1 key_buffer_size?=?32M read_buffer_size?=?8M read_rnd_buffer_size?=?4M bulk_insert_buffer_size?=?64M myisam_sort_buffer_size?=?128M myisam_max_sort_file_size?=?10G myisam_repair_threads?=?1 lock_wait_timeout?=?3600 explicit_defaults_for_timestamp?=?1 innodb_thread_concurrency?=?64 innodb_sync_spin_loops?=?100 innodb_spin_wait_delay?=?30transaction_isolation?=?REPEATABLE-READ #innodb_additional_mem_pool_size?=?16M innodb_buffer_pool_size?=?500M innodb_buffer_pool_instances?=?8 innodb_buffer_pool_load_at_startup?=?1 innodb_buffer_pool_dump_at_shutdown?=?1 innodb_data_file_path?=?ibdata1:1G:autoextend innodb_flush_log_at_trx_commit?=?1 innodb_log_buffer_size?=?32M innodb_log_file_size?=?2G innodb_log_files_in_group?=?2 innodb_max_undo_log_size?=?2G innodb_undo_directory?=?undolog innodb_undo_tablespaces?=?3 innodb_undo_log_truncate?=?1#?根據您的服務器IOPS能力適當調整 #?一般配普通SSD盤的話,可以調整到?10000?-?20000 #?配置高端PCIe?SSD卡的話,則可以調整的更高,比如?50000?-?80000 innodb_io_capacity?=?4000 innodb_io_capacity_max?=?8000 innodb_flush_sync?=?0 innodb_flush_neighbors?=?1 innodb_write_io_threads?=?8 innodb_read_io_threads?=?8 innodb_purge_threads?=?4 innodb_page_cleaners?=?4 innodb_open_files?=?65535 innodb_max_dirty_pages_pct?=?50 innodb_flush_method?=?O_DIRECT innodb_lru_scan_depth?=?2000 innodb_checksum_algorithm?=?0 innodb_lock_wait_timeout?=?5 innodb_rollback_on_timeout?=?1 innodb_print_all_deadlocks?=?1 innodb_file_per_table?=?1 innodb_online_alter_log_max_size?=?4G internal_tmp_disk_storage_engine?=?InnoDB innodb_stats_on_metadata?=?0 innodb_sort_buffer_size?=?64M innodb_autoextend_increment?=?64 innodb_concurrency_tickets?=?5000 innodb_old_blocks_time?=?1000 innodb_open_files?=?65536 innodb_purge_rseg_truncate_frequery?=?128 binlog_gtid_simple_recovery?=?1#?some?var?for?MySQL?8 log_error_verbosity?=?3 innodb_print_ddl_logs?=?1 binlog_expire_logs_seconds?=?604800 #innodb_dedicated_server?=?0innodb_status_file?=?1 #?注意:?開啟?innodb_status_output?&?innodb_status_output_locks?后,?可能會導致log-error文件增長較快 innodb_status_output?=?0 innodb_status_output_locks?=?0#performance_schema performance_schema?=?1 performance_schema_instrument?=?'%=on'#innodb?monitor innodb_monitor_enable="module_innodb" innodb_monitor_enable="module_server" innodb_monitor_enable="module_dml" innodb_monitor_enable="module_ddl" innodb_monitor_enable="module_trx" innodb_monitor_enable="module_os" innodb_monitor_enable="module_purge" innodb_monitor_enable="module_log" innodb_monitor_enable="module_lock" innodb_monitor_enable="module_buffer" innodb_monitor_enable="module_index" innodb_monitor_enable="module_ibuf_system" innodb_monitor_enable="module_buffer_page" innodb_monitor_enable="module_adaptive_hash"[mysqldump] quick max_allowed_packet?=?32M1.2 sysbench 測試準備
測試環境
? 主機、CPU、內存、RAID、硬盤、文件系統、內存、MySQL、sysbench
2. 壓測基準值
? 多少張表,每張表多少數據量,測試腳本,測試多少時間,最大請求數多少,并發線程數,生成多大數量
1.3 進行sysbench OLTP 測試-混合讀寫
準備數據
2. 執行測試
[root@mysql8?~]#?mkdir?/sysbench/report/?-p [root@mysql8?sysbench]#?sysbench?./share/sysbench/tests/include/oltp_legacy/oltp.lua?\ --mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=root?--mysql-password=#root#?\ --oltp-test-mode=complex?--oltp-tables-count=10?--oltp-table-size=100000?\ --threads=10?--time=120?--report-interval=10?run?>>?/sysbench/report/mysysbench-20190225.log3. 清理數據
[root@mysql8?sysbench]#?sysbench?./share/sysbench/tests/include/oltp_legacy/oltp.lua?\ --mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=root?--mysql-password=#root#?cleanup sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Dropping?table?'sbtest1'...4. 測試結果
? ? 重點關注:TPS,QPS,95%以上的響應時長統計
[root@mysql8?report]#?more?mysysbench-20190225.log? sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?10 Report?intermediate?results?every?10?second(s) Initializing?random?number?generator?from?current?timeInitializing?worker?threads...Threads?started! #?每10秒鐘報告一次測試結果,tps,qps,95%以上的響應時長統計 [?10s?]?thds:?10?tps:?235.04?qps:?4719.82?(r/w/o:?3304.58/944.16/471.08)?lat?(ms,95%):?55.82?err/s:?0.00?reconn/s:?0.00 [?20s?]?thds:?10?tps:?178.21?qps:?3563.14?(r/w/o:?2494.90/711.83/356.41)?lat?(ms,95%):?62.19?err/s:?0.00?reconn/s:?0.00 [?30s?]?thds:?10?tps:?330.10?qps:?6598.23?(r/w/o:?4619.12/1319.01/660.10)?lat?(ms,95%):?63.32?err/s:?0.00?reconn/s:?0.00 [?40s?]?thds:?10?tps:?310.48?qps:?6208.25?(r/w/o:?4346.35/1240.83/621.06)?lat?(ms,95%):?102.97?err/s:?0.00?reconn/s:?0.00 [?50s?]?thds:?10?tps:?113.91?qps:?2278.52?(r/w/o:?1594.59/456.12/227.81)?lat?(ms,95%):?253.35?err/s:?0.00?reconn/s:?0.00 [?60s?]?thds:?10?tps:?293.66?qps:?5880.66?(r/w/o:?4115.41/1177.83/587.42)?lat?(ms,95%):?59.99?err/s:?0.10?reconn/s:?0.00 [?70s?]?thds:?10?tps:?289.04?qps:?5773.85?(r/w/o:?4042.82/1152.95/578.07)?lat?(ms,95%):?68.05?err/s:?0.00?reconn/s:?0.00 [?80s?]?thds:?10?tps:?187.30?qps:?3746.45?(r/w/o:?2622.66/749.19/374.59)?lat?(ms,95%):?43.39?err/s:?0.00?reconn/s:?0.00 [?90s?]?thds:?10?tps:?234.98?qps:?4705.58?(r/w/o:?3292.91/942.72/469.96)?lat?(ms,95%):?130.13?err/s:?0.00?reconn/s:?0.00 [?100s?]?thds:?10?tps:?306.92?qps:?6138.76?(r/w/o:?4296.85/1228.07/613.84)?lat?(ms,95%):?64.47?err/s:?0.00?reconn/s:?0.00 [?110s?]?thds:?10?tps:?187.60?qps:?3749.19?(r/w/o:?2625.20/748.60/375.40)?lat?(ms,95%):?46.63?err/s:?0.20?reconn/s:?0.00 [?120s?]?thds:?10?tps:?290.62?qps:?5815.27?(r/w/o:?4071.46/1162.57/581.24)?lat?(ms,95%):?97.55?err/s:?0.00?reconn/s:?0.00 SQL?statistics:queries?performed:read:????????????????????????????414288???????#?讀總數write:???????????????????????????118360???????#?寫總數other:???????????????????????????59181????????#?其它操作,如committotal:???????????????????????????591829???????#?全部總數transactions:????????????????????????29589??(246.53?per?sec.)?????#?總事務數(TPS,每秒事務數)queries:?????????????????????????????591829?(4931.09?per?sec.)????#?讀寫數(QPS,每秒讀寫次數)ignored?errors:??????????????????????3??????(0.02?per?sec.)???????#?忽略的錯誤數reconnects:??????????????????????????0??????(0.00?per?sec.)General?statistics:????????????#?一些統計結果total?time:??????????????????????????120.0183s??????#?總耗時total?number?of?events:??????????????29589??????????#?共發生了多少事務數Latency?(ms):?????????????????#?響應時長統計min:????????????????????????????????????3.97???#?最小耗時avg:???????????????????????????????????40.56???#?平均耗時max:?????????????????????????????????5478.23???#?最長耗時95th?percentile:???????????????????????70.55???#?95%請求的最大響應時間sum:??????????????????????????????1199998.40???#?總耗時Threads?fairness:????????????#?與線程相關的指標events?(avg/stddev):???????????2958.9000/47.60??????#?事件(平均值/偏差)execution?time?(avg/stddev):???119.9998/0.00????????#?執行時間(平均值/偏差)1.4 生成圖片報告
gnuplot下載地址:https://sourceforge.net/projects/gnuplot/files/latest/download
通過Excel進行數據分析:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser
1.4.1 安裝及使用 gnuplot
[root@mysql8?software]#?yum?install??gnuplot [root@mysql8?~]#?gnuplot? G?N?U?P?L?O?TVersion?4.6?patchlevel?2????last?modified?2013-03-14?Build?System:?Linux?x86_64Copyright?(C)?1986-1993,?1998,?2004,?2007-2013Thomas?Williams,?Colin?Kelley?and?many?othersgnuplot?home:?????http://www.gnuplot.infofaq,?bugs,?etc:???type?"help?FAQ"immediate?help:???type?"help"??(plot?window:?hit?'h')Terminal?type?set?to?'x11'gnuplot>?plot?'/root/mysysbench-20190225.log'?using?9?with?lines?title?'QPS' #?using?9:表示使用第9列數據作圖 #?with?lines:定義圖中的趨勢使用線來表示 #?title?‘QPS’:定義線的名稱 #?使用,(逗號)分割,進行多列數據的繪制http://sourceforge.net/projects/nmon/files/nmon16g_x86.tar.gz
[root@mysql8?report]#?vim?sysbench_monitor.sh #!/bin/bash #開始前獲取全局配置參數 #每五秒獲取一次cpu?load,MySQL全局信息,InnoDB引擎相關信息,線程信息? INTERVAL=5 PREFIX=$INTERVAL-sec-status RUNFILE=/sysbench/report mysql?-uroot?-p123456?-e?'show?global?variables'>>mysql-variables while??test?-e?$RUNFILE;?dofile=$(date?+%F_%H)sleep=$(date?+%s.%N?|awk?"{print?$INTERVAL?-(\$1?%?$INTERVAL)}")sleep?$sleepts="$(date?+"TS?%s.%N?%F?%T")"loadavg="$(uptime)"?????????????????????????????????#通過uptime命令獲取cpu?loadecho?"$ts?$loadavg">>?$PREFIX-${file}-statusmysql?-uroot?-p123456??-e?"show?global?status"?>>?$PREFIX-${file}-status?2>/dev/null?&???#獲取MySQL全局信息echo?"$ts?$loadavg">>?$PREFIX-${file}-innodbstatusmysql?-uroot?-p123456??-e?"show?engine?innodb?status\G"?>>?$PREFIX-${file}-innodbstatus?2>/dev/null?&????#獲取引擎信息echo?"$ts?$loadavg">>?$PREFIX-${file}-processlistmysql?-uroot?-p123456??-e?"show?full?processlist\G"?>>$PREFIX-${file}-processlist?2>/dev/null?&??#獲取線程信息echo?$ts done echo?Exiting?because?$RUNFILE?not?exist [root@mysql8?report]#?chmod?+x?sysbench_monitor.sh? [root@mysql8?report]#?nohup?/sysbench/report/sysbench_monitor.sh?& [root@mysql8?report]#?vim?sysbench_anaylyze.sh #!/bin/bash awk?'BEGIN{printf?"#ts?date?time?load?QPS";fmt?=?"?%.2f";}/^TS/?{?#?The?timestamp?lines?begin?with?TS.ts?=?substr($2,?1,?index($2,".")?-?1);load?=?NF?-??2;diff?=?ts?-prev_ts;prev_ts?=?ts;printf?"\n%s?%s?%s?%s",ts,$3,$4,substr($load,?1,?length($load)-1);}/Queries/?{printf?fmt,?($2-Queries)/diff;Queries=$2}'?"$@" [root@mysql8?report]#?chmod?+x?sysbench_anaylyze.sh [root@mysql8?report]#?/sysbench/report/sysbench_anaylyze.sh?5-sec-status-2019-03-02_15-status?>?sysbench_status_out.log1.5?每次壓縮后要做什么1.5 每次壓縮后要做什么
清數據
重啟主機
二、sysbench 其它類型測試
2.1 只讀(從庫查詢)
[root@mysql8?sysbench]#?sysbench?/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua?--mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=root?--mysql-password=123456?--mysql-db=sbtest?--oltp-tables-count=10?--oltp-table-size=100000?--threads=10?--time=20?--report-interval=10?--rand-init=on?--max-requests=0?--oltp-test-mode=nontrx?--oltp-nontrx-mode=select?--oltp-read-only=on?--oltp-skip-trx=on?prepare [root@mysql8?sysbench]#?sysbench?/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua?--mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=root?--mysql-password=123456?--mysql-db=sbtest?--oltp-tables-count=10?--oltp-table-size=100000?--threads=10?--time=20?--report-interval=10?--rand-init=on?--max-requests=0?--oltp-test-mode=nontrx?--oltp-nontrx-mode=select?--oltp-read-only=on?--oltp-skip-trx=on?run?>?/sysbench/report/mysysbench-20190302.log [root@mysql8?sysbench]#?sysbench?/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua?--mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=123456--mysql-password=root?--oltp-tables-count=10?cleanup2.2 只寫-更新測試(主庫寫)
如果基準測試的時候,你只想比較兩個項目的update(或insert)效率,那可以不使用oltp腳本,而直接改用update_index.lua。
[root@mysql8?sysbench]#?sysbench?/sysbench/share/sysbench/tests/include/oltp_legacy/update_index.lua?--mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=root?--mysql-password=123456?--mysql-db=sbtest?--oltp-tables-count=10?--oltp-table-size=10000?--threads=10?--time=20?--report-interval=10?--rand-init=on?--oltp-read-only=off?prepare [root@mysql8?sysbench]#?sysbench?/sysbench/share/sysbench/tests/include/oltp_legacy/update_index.lua?--mysql-host=172.16.216.195?--mysql-port=3306?--mysql-user=123456?--mysql-password=root?--mysql-db=sbtest?--oltp-tables-count=10?--oltp-table-size=100000?--threads=10?--time=20?--report-interval=10?--rand-init=on?--oltp-read-only=off?run?>?/sysbench/report/mysysbench-19030205.log [root@mysql8?sysbench]#?sysbench?/sysbench/share/sysbench/tests/include/oltp_legacy/update_index.lua?--mysql-host=172.16.216.195--mysql-port=3306?--mysql-user=root?--oltp-tables-count=10?--mysql-password=123456?cleanup三、IO性能測試-fileio
[root@mysql8?sysbench]#?sysbench?fileio?help sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)fileio?options:--file-num=N??????????????????number?of?files?to?create?[128]???????????????????????#?創建測試文件的數量。默認是?128--file-block-size=N???????????block?size?to?use?in?all?IO?operations?[16384]????????#?測試時文件塊的大小。默認是?16384(16K)--file-total-size=SIZE????????total?size?of?files?to?create?[2G]????????????????????#?測試文件的總大小。默認是?2G--file-test-mode=STRING???????test?mode?{seqwr,?seqrewr,?seqrd,?rndrd,?rndwr,?rndrw}?#?文件測試模式{seqwr(順序寫),?seqrewr(順序讀寫), seqrd(順序讀),?rndrd(隨機讀),?rndwr(隨機寫),?rndrw(隨機讀寫)}--file-io-mode=STRING?????????file?operations?mode?{sync,async,mmap}?[sync]?????????#?文件操作模式{sync(同步),async(異步),fastmmap(快速 map?映射),slowmmap(慢?map?映射)}。默認是?sync--file-async-backlog=N????????number?of?asynchronous?operatons?to?queue?per?thread?[128]--file-extra-flags=[LIST,...]?list?of?additional?flags?to?use?to?open?files?{sync,dsync,direct}?[]--file-fsync-freq=N???????????do?fsync()?after?this?number?of?requests?(0?-?don't?use?fsync())?[100]??#?執行?fsync()的頻率。(0?–?不使用?fsync())。默認是?100--file-fsync-all[=on|off]?????do?fsync()?after?each?write?operation?[off]???#?每執行完一次寫操作就執行一次?fsync。默認是?off--file-fsync-end[=on|off]?????do?fsync()?at?the?end?of?test?[on]???#?在測試結束時才執行?fsync。默認是?on?--file-fsync-mode=STRING??????which?method?to?use?for?synchronization?{fsync,?fdatasync}?[fsync]???#?使用額外的標志來打開文件{sync,dsync,direct}?。 默認為空--file-merged-requests=N??????merge?at?most?this?number?of?IO?requests?if?possible?(0?-?don't?merge)?[0]??#?如果可以,合并最多的?IO?請求數(0?–?表示不合并)。默 認是?0--file-rw-ratio=N?????????????reads/writes?ratio?for?combined?test?[1.5]?#?測試時的讀寫比例。默認是?1.5Sysbench 的文件測試模式:
seqwr 順序寫
seqrew r 順序讀寫
seqrd 順序讀
rndrd 隨機讀
rndwr 隨機寫
rndrw 隨機讀寫
3.1 準備 IO 測試文件:執行如下命令,生成 16 個文件,用于本次測試
[root@mysql8?~]#?mkdir?/mysql/data/tmp?-p [root@mysql8?~]#?cd?/mysql/data/tmp [root@mysql8?tmp]#?sysbench?fileio?--file-num=16?--file-total-size=20M?prepare sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)16?files,?1280Kb?each,?20Mb?total Creating?files?for?the?test... Extra?file?open?flags:?(none) Creating?file?test_file.0 Creating?file?test_file.1 Creating?file?test_file.2 Creating?file?test_file.3 Creating?file?test_file.4 Creating?file?test_file.5 Creating?file?test_file.6 Creating?file?test_file.7 Creating?file?test_file.8 Creating?file?test_file.9 Creating?file?test_file.10 Creating?file?test_file.11 Creating?file?test_file.12 Creating?file?test_file.13 Creating?file?test_file.14 Creating?file?test_file.15 20971520?bytes?written?in?0.61?seconds?(32.86?MiB/sec). [root@mysql8?tmp]#?ls test_file.0??test_file.10??test_file.12??test_file.14??test_file.2??test_file.4??test_file.6??test_file.8 test_file.1??test_file.11??test_file.13??test_file.15??test_file.3??test_file.5??test_file.7??test_file.93.2 測試多線程下小 IO 的隨機只讀性能
[root@mysql8?tmp]#?sysbench?fileio?--file-num=16?--file-total-size=20M?--file-test-mode=rndrd?--file-extra-flags=direct??--file-fsync-freq=0?--file-block-size=16384?run #?--file-num=16:文件數量是16個 #?--file-total-size=20M:文件總大小20M #?--file-test-mode=rndrd:測試模式是隨機讀取 #?--file-extra-flags=direct:使用額外的標志來打開文件{sync,dsync,direct} #?--file-fsync-freq=0:執行fsync()的頻率 #?--file-block-size=16384:測試時文件塊的大小位16384(16k) sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?1 Initializing?random?number?generator?from?current?timeExtra?file?open?flags:?directio 16?files,?1.25MiB?each 20MiB?total?file?size Block?size?16KiB Number?of?IO?requests:?0 Read/Write?ratio?for?combined?random?IO?test:?1.50 Calling?fsync()?at?the?end?of?test,?Enabled. Using?synchronous?I/O?mode Doing?random?read?test Initializing?worker?threads...Threads?started!File?operations:reads/s:??????????????????????7332.59????#?每秒讀寫次數,也就是IOPS,越大越好writes/s:?????????????????????0.00???????#?每秒寫的次數fsyncs/s:?????????????????????0.00???????#?每秒同步的次數Throughput:???#吞吐量??????????read,?MiB/s:??????????????????114.57?????#?每秒讀多少兆,越大越好written,?MiB/s:???????????????0.00???????General?statistics:total?time:??????????????????????????10.0002s???#?總時間total?number?of?events:??????????????73340??????#?總事件Latency?(ms):min:????????????????????????????????????0.06avg:????????????????????????????????????0.14max:????????????????????????????????????8.5595th?percentile:????????????????????????0.18????????#?95%的響應時間,越小越好sum:?????????????????????????????????9939.93Threads?fairness:events?(avg/stddev):???????????73340.0000/0.00execution?time?(avg/stddev):???9.9399/0.003.3 測試多線程下小IO的隨機寫入性能
[root@mysql8?tmp]#?sysbench?fileio?--file-num=16?--file-total-size=20M?--file-test-mode=rndwr?--max-time=120?--file-extra-flags=direct?--file-fsync-freq=0?--file-block-size=16384?run WARNING:?--max-time?is?deprecated,?use?--time?instead sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?1 Initializing?random?number?generator?from?current?timeExtra?file?open?flags:?directio 16?files,?1.25MiB?each 20MiB?total?file?size Block?size?16KiB Number?of?IO?requests:?0 Read/Write?ratio?for?combined?random?IO?test:?1.50 Calling?fsync()?at?the?end?of?test,?Enabled. Using?synchronous?I/O?mode Doing?random?write?test Initializing?worker?threads...Threads?started!File?operations:reads/s:??????????????????????0.00writes/s:?????????????????????6236.45fsyncs/s:?????????????????????0.13Throughput:read,?MiB/s:??????????????????0.00written,?MiB/s:???????????????97.44General?statistics:total?time:??????????????????????????120.0013stotal?number?of?events:??????????????748392Latency?(ms):min:????????????????????????????????????0.06avg:????????????????????????????????????0.16max:?????????????????????????????????1417.1695th?percentile:????????????????????????0.20sum:???????????????????????????????119277.92Threads?fairness:events?(avg/stddev):???????????748392.0000/0.00execution?time?(avg/stddev):???119.2779/0.00 [root@mysql8?~]#?iostat?5 Linux?3.10.0-957.5.1.el7.x86_64?(mysql8.linuxplus.com)??03/02/2019??????_x86_64_????????(2?CPU)avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle3.30????0.03????2.42????2.42????0.00???91.82Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda?????????????109.04???????259.23??????1440.35????3636386???20204721 scd0??????????????0.00?????????0.07?????????0.00???????1028??????????0 dm-0????????????109.23???????258.41??????1438.81????3624842???20183129 dm-1??????????????0.37?????????0.22?????????1.39???????3016??????19560avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.83????0.00???13.36???37.39????0.00???47.41Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????4130.40?????????0.00?????66077.60??????????0?????330388 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????4130.20?????????0.00?????66074.40??????????0?????330372 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle2.16????0.00???20.48???30.49????0.00???46.87Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????6307.80?????????0.00????100981.60??????????0?????504908 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????6308.20?????????0.00????100988.00??????????0?????504940 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle2.36????0.00???20.11???29.10????0.00???48.43Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????6778.60?????????0.00????108450.40??????????0?????542252 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????6778.40?????????0.00????108447.20??????????0?????542236 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle2.16????0.00???18.97???27.16????0.00???51.72Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????6572.20?????????0.00????105148.00??????????0?????525740 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????6572.00?????????0.00????105144.80??????????0?????525724 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.49????0.00???10.73???14.45????0.00???73.33Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????3265.20?????????0.00?????52256.80??????????0?????261284 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????3265.20?????????0.00?????52256.80??????????0?????261284 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.11????0.00????1.31????4.92????0.00???92.66Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda???????????????2.99?????????3.19????????38.22?????????16????????191 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0??????????????3.59?????????3.19????????39.02?????????16????????195 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????03.4 測試多線程下小IO的隨機讀寫性能
[root@mysql8?tmp]#?sysbench?fileio?--file-num=16?--file-total-size=20M?--file-test-mode=rndrw?--file-extra-flags=direct?--file-fsync-freq=0?--max-time=60?--file-block-size=16384?run?? WARNING:?--max-time?is?deprecated,?use?--time?instead sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?1 Initializing?random?number?generator?from?current?timeExtra?file?open?flags:?directio 16?files,?1.25MiB?each 20MiB?total?file?size Block?size?16KiB Number?of?IO?requests:?0 Read/Write?ratio?for?combined?random?IO?test:?1.50 Calling?fsync()?at?the?end?of?test,?Enabled. Using?synchronous?I/O?mode Doing?random?r/w?test Initializing?worker?threads...Threads?started!File?operations:reads/s:??????????????????????4239.61writes/s:?????????????????????2826.41fsyncs/s:?????????????????????0.27Throughput:read,?MiB/s:??????????????????66.24written,?MiB/s:???????????????44.16General?statistics:total?time:??????????????????????????60.0002stotal?number?of?events:??????????????423975Latency?(ms):min:????????????????????????????????????0.06avg:????????????????????????????????????0.14max:??????????????????????????????????558.8295th?percentile:????????????????????????0.18sum:????????????????????????????????59647.57Threads?fairness:events?(avg/stddev):???????????423975.0000/0.00execution?time?(avg/stddev):???59.6476/0.00 [root@mysql8?~]#?iostat?10 Linux?3.10.0-957.5.1.el7.x86_64?(mysql8.linuxplus.com)??03/02/2019??????_x86_64_????????(2?CPU)avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle3.25????0.03????2.47????2.50????0.00???91.75Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda?????????????140.33???????491.59??????1709.91????7095746???24681318 scd0??????????????0.00?????????0.07?????????0.00???????1028??????????0 dm-0????????????140.51???????490.79??????1708.41????7084202???24659710 dm-1??????????????0.36?????????0.21?????????1.36???????3016??????19560avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.60????0.00???12.18???15.37????0.00???70.85Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????4111.30?????39457.60?????26351.60?????394576?????263516 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????4111.30?????39457.60?????26351.60?????394576?????263516 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.82????0.00???18.68???30.46????0.00???49.03Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????6489.40?????62289.60?????41530.40?????622896?????415304 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????6489.50?????62289.60?????41532.00?????622896?????415320 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.95????0.00???21.36???28.00????0.00???48.69Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????7318.10?????70248.00?????46834.40?????702480?????468344 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????7318.00?????70248.00?????46832.80?????702480?????468328 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle2.07????0.00???21.02???28.28????0.00???48.63Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????7119.20?????68332.80?????45603.20?????683328?????456032 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????7119.20?????68332.80?????45603.20?????683328?????456032 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle2.05????0.00???18.25???27.48????0.00???52.21Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????6722.40?????64524.80?????43022.00?????645248?????430220 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????6722.50?????64524.80?????43022.00?????645248?????430220 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle2.17????0.00???20.75???24.93????0.00???52.15Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????7425.50?????71278.40?????47521.20?????712784?????475212 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????7425.50?????71278.40?????47521.20?????712784?????475212 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????0avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle1.40????0.00????9.11???10.04????0.00???79.45Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn sda????????????3218.20?????30884.80?????20594.65?????308848?????205946 scd0??????????????0.00?????????0.00?????????0.00??????????0??????????0 dm-0???????????3218.20?????30884.80?????20594.65?????308848?????205946 dm-1??????????????0.00?????????0.00?????????0.00??????????0??????????03.5 清理測試時生成的文件
[root@mysql8?tmp]#?sysbench?fileio?--threads=20?--file-total-size=20M?--file-test-mode=rndrw?cleanup sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Removing?test?files...四、CPU 性能測試
[root@mysql8?tmp]#?sysbench?cpu?--cpu-max-prime=2000?run #?--cpu-max-prime=N?最大質數發生器數量。默認是?10000 sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?1 Initializing?random?number?generator?from?current?timePrime?numbers?limit:?2000Initializing?worker?threads...Threads?started!CPU?speed:events?per?second:??9643.27General?statistics:total?time:??????????????????????????10.0002stotal?number?of?events:??????????????96451Latency?(ms):min:????????????????????????????????????0.09avg:????????????????????????????????????0.10max:???????????????????????????????????28.5295th?percentile:????????????????????????0.12sum:?????????????????????????????????9970.21Threads?fairness:events?(avg/stddev):???????????96451.0000/0.00execution?time?(avg/stddev):???9.9702/0.00五、內存性能測試
[root@mysql8?tmp]#?sysbench?memory?help sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)memory?options:--memory-block-size=SIZE????size?of?memory?block?for?test?[1K]??????????#?測試時內存塊大小。默認是?1K--memory-total-size=SIZE????total?size?of?data?to?transfer?[100G]???????#?傳輸數據的總大小。默認是?100G--memory-scope=STRING???????memory?access?scope?{global,local}?[global]?#?內存訪問范圍{global,local}。默認是?global--memory-hugetlb[=on|off]???allocate?memory?from?HugeTLB?pool?[off]?????#?從?HugeTLB?池內存分配。默認是?off--memory-oper=STRING????????type?of?memory?operations?{read,?write,?none}?[write]?#?內存操作類型。{read,?write,?none}?默認是?write--memory-access-mode=STRING?memory?access?mode?{seq,rnd}?[seq]?#?存儲器存取方式{seq,rnd}?默認是?seq[root@mysql8?tmp]#?sysbench?memory?--memory-block-size=8k?--memory-total-size=1G?run sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?1 Initializing?random?number?generator?from?current?timeRunning?memory?speed?test?with?the?following?options:block?size:?8KiBtotal?size:?1024MiBoperation:?writescope:?globalInitializing?worker?threads...Threads?started!Total?operations:?131072?(1153336.20?per?second)1024.00?MiB?transferred?(9010.44?MiB/sec)General?statistics:total?time:??????????????????????????0.1119stotal?number?of?events:??????????????131072Latency?(ms):min:????????????????????????????????????0.00avg:????????????????????????????????????0.00max:????????????????????????????????????3.7795th?percentile:????????????????????????0.00sum:???????????????????????????????????92.14Threads?fairness:events?(avg/stddev):???????????131072.0000/0.00execution?time?(avg/stddev):???0.0921/0.00六、線程性能測試
[root@mysql8?~]#?sysbench?threads?help sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)threads?options:--thread-yields=N?number?of?yields?to?do?per?request?[1000]????#?每個請求產生多少個線程。默認是?1000--thread-locks=N??number?of?locks?per?thread?[8]??#?每個線程的鎖的數量。默認是?8[root@mysql8?~]#?sysbench?threads?--num-threads=100?--thread-yields=100?--thread-locks=4?run WARNING:?--num-threads?is?deprecated,?use?--threads?instead sysbench?1.0.16?(using?bundled?LuaJIT?2.1.0-beta2)Running?the?test?with?following?options: Number?of?threads:?100 Initializing?random?number?generator?from?current?timeInitializing?worker?threads...Threads?started!General?statistics:total?time:??????????????????????????10.0367stotal?number?of?events:??????????????15943Latency?(ms):min:????????????????????????????????????0.20avg:???????????????????????????????????62.86max:?????????????????????????????????7007.0595th?percentile:??????????????????????118.92sum:??????????????????????????????1002219.97Threads?fairness:events?(avg/stddev):???????????159.4300/157.31execution?time?(avg/stddev):???10.0222/0.01You?have?mail?in?/var/spool/mail/root七、OLTP性能測試
oltp?options: --oltp-test-mode=STRING???????????????#?執行模式?{simple,complex(advanced?transactional),nontrx(non-transactional),sp}。默認是?complex --oltp-reconnect-mode=STRING??????????#?重新連接模式{session(不使用重新連接。每個線程斷開只在測試結束),transaction(在每次事務結束后重新連接),query(在每個?SQL?語句執行完重新連接),random(對于每個事務隨機選擇以上重新連接模式)}。默認是?session --oltp-sp-name=STRING?????????????????#?存儲過程的名稱。默認為空 --oltp-read-only=[on|off]?????????????#?只讀模式。Update,delete,insert?語句不可執行。默認是?off --oltp-skip-trx=[on|off]??????????????#?省略?begin/commit?語句。默認是?off --oltp-range-size=N???????????????????#?查詢范圍。默認是?100 --oltp-point-selects=N????????????????#?number?of?point?selects?[10] --oltp-simple-ranges=N????????????????#?number?of?simple?ranges?[1] --oltp-sum-ranges=N??????????????????#?number?of?sum?ranges?[1] --oltp-order-ranges=N????????????????#?number?of?ordered?ranges?[1] --oltp-distinct-ranges=N?????????????#?number?of?distinct?ranges?[1] --oltp-index-updates=N???????????????#?number?of?index?update?[1] --oltp-non-index-updates=N???????????#?number?of?non-index?updates?[1] --oltp-nontrx-mode=STRING???????????????????#?查詢類型對于非事務執行模式{select,?update_key,update_nokey,?insert,?delete}?[select] --oltp-auto-inc=[on|off]?AUTO_INCREMENT?????#是否開啟。默認是?on --oltp-connect-delay=N??????????????????????#?在多少微秒后連接數據庫。默認是?10000 --oltp-user-delay-min=N?????????????????????#?每個請求最短等待時間。單位是?ms。默認是?0 --oltp-user-delay-max=N?????????????????????#?每個請求最長等待時間。單位是?ms。默認是?0 --oltp-table-name=STRING????????????????????#?測試時使用到的表名。默認是?sbtest --oltp-table-size=N?????????????????????????#?測試表的記錄數。默認是?10000 --oltp-dist-type=STRING?????????????????????#?分布的隨機數{uniform(均勻分布),Gaussian(高斯分布),special(空間分布)}。默認是?special --oltp-dist-iter=N??????????????????????????#?產生數的迭代次數。默認是?12 --oltp-dist-pct=N???????????????????????????#?值的百分比被視為'special'?(for?special?distribution)。默認是?1 --oltp-dist-res=N???????????????????????????#?‘special’的百分比值。默認是?75轉載于:https://blog.51cto.com/stuart/2379233
總結
以上是生活随笔為你收集整理的sysbench 项目测试过程与分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 安装 VMware Too
- 下一篇: 安全研究人受够!再公布WordPress