新聞中心
隨著互聯(lián)網(wǎng)的快速發(fā)展,Linux系統(tǒng)在服務(wù)器領(lǐng)域的地位愈加顯著。然而,Linux操作系統(tǒng)在性能監(jiān)測和故障排除方面的問題依然難以避免。為了解決這些問題,開發(fā)人員不斷尋找更高效的監(jiān)測工具。DTrace技術(shù)就是其中一種解決方案,它在Solaris系統(tǒng)上面得到了廣泛的應(yīng)用,后來也被引入到出的操作系統(tǒng)如FreeBSD等中。本文將深入剖析DTrace技術(shù)在Linux系統(tǒng)中的應(yīng)用。

創(chuàng)新互聯(lián)是一家專業(yè)提供吳忠企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、html5、小程序制作等業(yè)務(wù)。10年已為吳忠眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
一、DTrace技術(shù)
DTrace是一款高效的監(jiān)測工具,最初由Sun Microsystems公司在Solaris系統(tǒng)上開發(fā)。它可以幫助開發(fā)人員深入分析系統(tǒng)的運(yùn)行狀態(tài)。DTrace技術(shù)通過直接觀察系統(tǒng)的應(yīng)用程序,并提供更加詳盡的分析信息。同時,它支持分類對應(yīng)用程序進(jìn)行全面監(jiān)控,這使得開發(fā)人員可以更加細(xì)致地進(jìn)行調(diào)試工作。
Linux操作系統(tǒng)中更大的好處之一就是它的開源性質(zhì),它可以輕松地進(jìn)行模塊化開發(fā)。因此,遵循著這一理念,開發(fā)者使用Linux系統(tǒng)中的DTrace技術(shù),也需要在內(nèi)核中插入幾個內(nèi)核模塊實(shí)現(xiàn);以實(shí)現(xiàn)對內(nèi)核的監(jiān)控,并在運(yùn)行時對內(nèi)核進(jìn)行修改,以滿足對故障的定位和診斷。
二、DTrace技術(shù)在Linux中的配置和使用
DTrace技術(shù)在Linux中的使用也是非常便捷的。我們需要檢查DTrace是否已安裝。在大多數(shù)Linux發(fā)行版中,DTrace都是默認(rèn)的。如果沒有,我們需要自行下載安裝。
1.安裝DTrace
在Ubuntu系統(tǒng)上,可以使用下面的命令安裝DTrace:
“`
sudo apt-get install dtrace-utils
“`
在CentOS上,要使用EPEL倉庫啟用DTrace,命令如下:
“`
sudo yum install kernel-devel systemtap-sdt-devel kernel-debuginfo kernel-debuginfo-common
sudo yum install systemtap #安裝systemtap,使用其dtrace工具進(jìn)行DTrace的工作
“`
以上命令將下載并安裝所需的內(nèi)核模塊和DTrace工具,下載過程可能需要較長時間,具體取決于您的服務(wù)器速度。
2.使用DTrace工具
安裝完成后,我們就可以開始使用DTrace工具了。在Linux中,DTrace一般是使用Systemtap工具運(yùn)行。
我們需要通過以下命令來確??捎玫腄Trace工具:
“`
whereis dtrace
“`
然后,我們就可以運(yùn)行DTrace工具來檢查我們的系統(tǒng)。隨意選擇一個需要檢查的系統(tǒng)進(jìn)程,對其運(yùn)行如下DTrace命令:
“`
sudo stap -v —dtrace “syscall::read:return {printf(“%s,%d\n”,execname(),arg0);}”
“`
然后,我們可以在Shell中看到輸出結(jié)果了。以上命令將輸出針對所有進(jìn)程做的系統(tǒng)調(diào)用讀量,并打印出相關(guān)信息。
三、DTrace技術(shù)的優(yōu)點(diǎn)和局限性
DTrace技術(shù)具有以下幾個重要的優(yōu)點(diǎn):
1.高效性:DTrace技術(shù)十分高效,因此能夠在長時間的操作中提供不間斷的監(jiān)控和數(shù)據(jù)分析。
2.領(lǐng)先的診斷和問題排除能力:許多問題可以通過DTrace技術(shù)進(jìn)行定位和處理,有助于改善服務(wù)質(zhì)量和可用性。
3.可擴(kuò)展性:DTrace技術(shù)能夠擴(kuò)展到多個操作系統(tǒng),因此開發(fā)人員可以在多個平臺下進(jìn)行更加統(tǒng)一的監(jiān)測解決方案的設(shè)計(jì)。
雖然DTrace技術(shù)確實(shí)具有強(qiáng)大的功能和易于使用的優(yōu)點(diǎn),但它也存在著一定的局限性。以下是DTrace技術(shù)的一些不足之處:
1.應(yīng)用程序需特有的庫:由于這是一種新技術(shù),因此大多數(shù)操作系統(tǒng)都需要一些特有的庫。
2.可能會導(dǎo)致性能問題:如果DTrace技術(shù)被廣泛使用,它可能會導(dǎo)致一定數(shù)量的性能問題。
四、
盡管DTrace技術(shù)在Linux系統(tǒng)中仍然存在一些問題,但它的出現(xiàn)仍然對開發(fā)人員的故障排除和性能監(jiān)測領(lǐng)域產(chǎn)生了深遠(yuǎn)的影響。通過提供更加便捷的分析工具,DTrace技術(shù)有助于開發(fā)人員更高效地定位問題、改善問題,提升服務(wù)質(zhì)量。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
幾個常用的MySQL性能測試工具
1、mysqlslap
安裝:簡單,裝了mysql就有了
作用:模擬并發(fā)測試數(shù)據(jù)做賀梁庫性能。
優(yōu)點(diǎn):簡單,容易使用。
不足:不能指定生成的數(shù)據(jù)規(guī)模,測試過程不清楚針對十萬級還是百萬級數(shù)據(jù)做的測試,感覺不太適合做綜合測試,比較適合針對既有數(shù)據(jù)庫,對單個sql進(jìn)行優(yōu)化的測試。
使用方法:
可以使用mysqlslap –help來顯示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
–concurrency代表并發(fā)數(shù)量,多個可以用逗號隔開,concurrency=10,50,100, 并發(fā)連接線程數(shù)分別是10、50、100個并發(fā)。
–engines代表要測試的引擎,可以有多個,用分隔符隔開。
–iterations代表要運(yùn)行這些測試多少次。
–auto-generate-sql 代表用系統(tǒng)自己生成的SQL腳本來測試。
–auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
–number-of-queries 代表總共要運(yùn)行多少次查詢拍伍。每個客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來計(jì)算。
–debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息。
–number-int-cols :創(chuàng)建測試表的 int 型字段數(shù)量
–auto-generate-sql-add-autoincrement : 代表對生成的表自動添加auto_increment列,從5.1.18版本開始
–number-char-cols 創(chuàng)建測試表的 char 型字段數(shù)量。
–create-schema 測試的schema,MySQL中schema也就是database。
–query 使用自定義腳本執(zhí)行測試,例如可以調(diào)用自定義的一個存儲過程或者sql語句來執(zhí)行測試。
–only-print 如果純運(yùn)只想打印看看SQL語句是什么,可以用這個選項(xiàng)。
mysqlslap -umysql -p123 –concurrency=100 –iterations=1 –auto-generate-sql –auto-generate-sql-add-autoincrement –auto-generate-sql-load-type=mixed –engine=myisam –number-of-queries=10 –debug-info
或:
指定數(shù)據(jù)庫和sql語句:
mysqlslap -h192.168.3.18 -Pconcurrency=100 –iterations=1 –create-schema=’test’ –query=’select * from test;’ –number-of-queries=10 –debug-info -umysql -p123
要是看到底做了什么可以加上:–only-print
Benchmark
Average number of seconds to run all queries: 25.225 seconds
Minimum number of seconds to run all queries: 25.225 seconds
Maximum number of seconds to run all queries: 25.225 seconds
Number of clients running queries: 100
Average number of queries per client: 0
以上表明100個客戶端同時運(yùn)行要25秒
2、syench
安裝:
可以從
下載
tar zxf syench-0.4.12.tar.gz
cd syench-0.4.12
./autogen.sh
./configure && make && make install
strip /usr/local/bin/syench
安裝時候可能會報錯,后來baidu發(fā)現(xiàn)個好文
怕以后找不到,也貼過來吧
1.如果mysql不是默認(rèn)路徑安裝,那么需要通過指定–with-mysql-includes和–with-mysql-libs參數(shù)來加載mysql安裝路徑
2.如果報錯:
../libtool: line 838: X–tag=CC: command not found
../libtool: line 871: libtool: ignoring unknown tag : command not found
../libtool: line 838: X–mode=link: command not found
../libtool: line 1004:Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1005:Future versions of Libtool will require –mode=MODE be specified.: command not found
../libtool: line 2231: X-g: command not found
../libtool: line 2231: X-O2: command not found
那么執(zhí)行下根目錄的:autogen.sh文件,然后重新configure && make && make install
3.如果報錯:
syench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
那么執(zhí)行下:
n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/
4.如果執(zhí)行autogen.sh時,報如下錯誤:
./autogen.sh: line 3: aclocal: command not found
那么需要安裝一個軟件:
yum install automake
然后需要增加一個參數(shù):查找: AC_PROG_LIOOL 將其注釋,然后增加AC_PROG_RANLIB
作用:模擬并發(fā),可以執(zhí)行CPU/內(nèi)存/線程/IO/數(shù)據(jù)庫等方面的性能測試。數(shù)據(jù)庫目前支持MySQL/Oracle/PostgreSQL
優(yōu)點(diǎn):可以指定測試數(shù)據(jù)的規(guī)模,可以單獨(dú)測試讀、寫的性能,也可以測試讀寫混合的性能。
不足:測試的時候,由于網(wǎng)絡(luò)原因,測試的非常慢,但是最終給的結(jié)果卻很好,并發(fā)支持很高,所以給我的感覺是并不太準(zhǔn)確。當(dāng)然也可能我沒搞明白原理
使用方法:
準(zhǔn)備數(shù)據(jù)
syench –test=oltp –mysql-table-engine=myisam –oltp-table-size=mysql-db=dbtest2 –mysql-user=root –mysql-host=192.168.1.101 –mysql-password=pwd prepare
執(zhí)行測試
syench –num-threads=100 –max-requests=test=oltp –mysql-table-engine=innodb –oltp-table-size=mysql-db=dbtest1 –mysql-user=root –mysql-host=192.168.1.101 –mysql-password=pwd run
syench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using “BEGIN” for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 4000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 56014
write: 20235
other: 8002
total: 84021
transactions: 4001 (259.14 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests:(4923.75 per sec.)
other operations: 8002 (518.29 per sec.)
Test execution summary:
total time: 15.4393s
total number of events: 4001
total time taken by event execution: 1504.7744
per-request statistics:
min: 33.45ms
avg: 376.10ms
max: 861.53ms
approx. 95 percentile: 505.65ms
Threads fairness:
events (avg/stddev): 40.0100/0.67
execution time (avg/stddev): 15.0477/0.22
3、tpcc-mysql
安裝:
如果從原網(wǎng)站上下載源碼比較麻煩,需要工具、注冊、生成證書等。這里提供一個下載包
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然后就會在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:測試mysql數(shù)據(jù)庫的整體性能
優(yōu)點(diǎn):符合tpcc標(biāo)準(zhǔn),有標(biāo)準(zhǔn)的方法,模擬真實(shí)的交易活動,結(jié)果比較可靠。
不足:不能單獨(dú)測試讀或者寫的性能,對于一些以查詢?yōu)橹骰蛘咧粚懙膽?yīng)用,就沒有這么大的意義了。
使用方法:
加載數(shù)據(jù)
創(chuàng)建庫
mysql>create database tpcc10;
創(chuàng)建表:
shell>mysql tpcc10 mysql tpcc10 ./tpcc_load 192.168.11.172 tpcc10 root pwd 300
|主機(jī)||數(shù)據(jù)庫||用戶||密碼||warehouse|
2、并發(fā)加載:(推薦,但需要修改一下)
shell>./load.sh tpcc
|數(shù)據(jù)庫||warehouse|
3、測試
./tpcc_start -h192.168.11.172 -d tpcc -u root -p ‘pwd’ -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_.txt
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value ‘192.168.11.172’
option d with value ‘tpcc’
option u with value ‘root’
option p with value ‘pwd’
option w with value ‘1’
option c with value ‘100’
option r with value ‘120’
option l with value ’60’
option i with value ’10’
option f with value ‘/mnt/hgfs/mysql/tpcc100_.txt’
: 192.168.11.172
: 3306
: tpcc
: root
: pwd
: 1
: 100
: 120 (sec.)
: 60 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
使用 bcc 工具觀測 MySQL:1)dbstat功能:將 MySQL/PostgreSQL 的查詢延遲匯總為直方圖
語法:
dbstat >> {mysql,postgres}
選項(xiàng):
{mysql,postgres}# 觀測哪種數(shù)據(jù)庫-h, –help # 顯示幫助然后退出-v, –verbose # 顯示BPF程序-p >, –pid > # 要觀測的進(jìn)程號,空格分隔-m THRESHOLD, –threshold THRESHOLD# 只統(tǒng)計(jì)查詢延遲比此閾值高的-u, –microseconds# 以微秒為時間單位來配棚顯示延遲(默認(rèn)單位:毫秒)-i INTERVAL, –interval INTERVAL# 打印摘要的時間間隔(單位:秒)
示例:
# 使用 syench 在被觀測數(shù)據(jù)庫上執(zhí)行 select# dbstat mysql -p `pidof mysqld` -uTracing database queries for pids 3350 slower than 0 ms…^C query latency (us)
2)dbslower
功能:跟蹤 MySQL/PostgreSQL 的查詢時間高于閾值
語法:
dbslower >> 培弊則 {mysql,postgres}
參數(shù):
{mysql,postgres}# 觀測哪種數(shù)據(jù)庫 -h, –help # 顯示幫助然后退出 -v, –verbose # 顯示BPF程序 -p >, –pid > # 要觀測的進(jìn)程號,空格分隔 -m THRESHOLD, –threshold THRESHOLD# 只統(tǒng)計(jì)查詢延遲比此閾值卜弊高的 -x PATH, –exe PATH# 數(shù)據(jù)庫二進(jìn)制文件的位置
示例:
# 使用syench在被觀測數(shù)據(jù)庫上執(zhí)行update_index # dbslower mysql -p `pidof mysqld` -m 2 Tracing database queries for pids 3350 slower than 2 ms… TIME(s)PIDMS QUERY 1..996 UPDATE test1 SET k=k+1 WHERE id=963 3..069 UPDATE test1 SET k=k+1 WHERE id=628 5..171 UPDATE test1 SET k=k+1 WHERE id=325 7..853 UPDATE test1 SET k=k+1 WHERE id=595
5. 使用限制
bcc 基于 eBPF 開發(fā)(需要 Linux 3.15 及更高版本)。bcc 使用的大部分內(nèi)容都需要 Linux 4.1 及更高版本。
如何檢查MySQL數(shù)據(jù)庫的主從延時?
mysql數(shù)據(jù)手雀庫性能診斷與調(diào)優(yōu),本文介紹了塌鬧如何使用seconds_behind_master和mk-heartbeat
檢查mysql數(shù)據(jù)庫主從延時的問題,我們要保證復(fù)制的整體結(jié)構(gòu)畢衫早是否正
MySQL數(shù)據(jù)庫主從延時如何去判斷呢?本文我們介紹了兩種判斷方法:1. Seconds_Behind_Master vs 2. mk-heartbeat,接下來我們就分別介紹這些內(nèi)容。 日常工作中,對于MySQL主從復(fù)制檢查,一方面我們要保證復(fù)制的整體結(jié)構(gòu)是否正常,另一方面需要檢查主從數(shù)據(jù)是否保持一致。對于前者我們可以通過監(jiān)控復(fù)制線程是否工作正常以及主從延時是否在容忍范圍內(nèi),對于后者則可以通過分別校驗(yàn)主從表中數(shù)據(jù)的md5碼是否一致,來保證數(shù)據(jù)一致,可以使用Maatkit工具包中的mk-table- checksum工具去檢查。 方法1: 通過監(jiān)控show slave status\G命令輸出的Seconds_Behind_Master參數(shù)的值來判斷,是否有發(fā)生主從延時。其值有這么幾種: NULL — 表示io_thread或是sql_thread有任何一個發(fā)生故障,也就是該線程的Running狀態(tài)是No,而非Yes。 0 — 該值為零,是我們極為渴望看到的情況,表示主從復(fù)制良好,可以認(rèn)為lag不存在。 正值— 表示主從已經(jīng)出現(xiàn)延時,數(shù)字越大表示從庫落后主庫越多。 負(fù)值— 幾乎很少見,我只是聽一運(yùn)緩些資深的DBA說見過,其實(shí),這是一個BUG值,該參數(shù)是不支持負(fù)值的,也就是不應(yīng)該出現(xiàn)。 show slave status\G,該命令的輸出結(jié)果非常豐厚,給我們的監(jiān)控提供了很多有意義的參數(shù),比如旁爛模:Slave_IO_Running該參數(shù)可作為 io_thread的監(jiān)控項(xiàng),Yes表示io_thread的和主庫連接正常并能實(shí)施復(fù)制工作,No則說明與主庫通訊異常,多數(shù)情況是由主從間網(wǎng)絡(luò)引起的問題;Slave_SQL_Running該參數(shù)代表sql_thread是否正常,具體就是語句是否執(zhí)行通過,常會遇到主鍵重復(fù)或是某個表不存在。下面就說到今天的重點(diǎn)Seconds_Behind_Master,該值作為判斷主從延時的指標(biāo),那么它又是怎么得到這個歷卜值的呢,同時,它為什么又受到很多人的質(zhì)疑? Seconds_Behind_Master是通過比較sql_thread執(zhí)行的event的timestamp和 io_thread復(fù)制好的event的timestamp(簡寫為ts)進(jìn)行比較,而得到的這么一個差值。我們都知道的relay-log和主庫的 bin-log里面的內(nèi)容完全一樣,在記錄sql語句的同時會被記錄上當(dāng)時的ts,所以比較參考的值來自于binlog,其實(shí)主從沒有必要與NTP進(jìn)行同步,也就是說無需保證主從時鐘的一致。 你也會發(fā)現(xiàn),其實(shí)比較真正是發(fā)生在io_thread與sql_thread之間,而io_thread才真正與主庫有關(guān)聯(lián),于是,問題就出來了,當(dāng)主庫I/O負(fù)載很大或是網(wǎng)絡(luò)阻塞,io_thread不能及時復(fù)制binlog(沒有中斷,也在復(fù)制),而 sql_thread一直都能跟上io_thread的腳本,這時Seconds_Behind_Master的值是0,也就是我們認(rèn)為的無延時,但是,實(shí)際上不是,你懂得。這也就是為什么大家要批判用這個參數(shù)來監(jiān)控數(shù)據(jù)庫是否發(fā)生延時不準(zhǔn)的原因,但是這個值并不是總是不準(zhǔn),如果當(dāng)io_thread與 master網(wǎng)絡(luò)很好的情況下,那么該值也是很有價值的。 之前,提到Seconds_Behind_Master這個參數(shù)會有負(fù)值出現(xiàn),我們已經(jīng)知道該值是io_thread的最近跟新的ts與sql_thread執(zhí)行到的ts差值,前者始終是大于后者的,唯一的肯能就是某個event的ts發(fā)生了錯誤,比之前的小了,那么當(dāng)這種情況發(fā)生時,負(fù)值出現(xiàn)就成為可能。 方法2: mk-heartbeat,Maatkit萬能工具包中的一個工具,被認(rèn)為可以準(zhǔn)確判斷復(fù)制延時的方法。 mk-heartbeat的實(shí)現(xiàn)也是借助timestmp的比較實(shí)現(xiàn)的,它首先需要保證主從服務(wù)器必須要保持一致,通過與相同的一個NTP server同步時鐘。它需要在主庫上創(chuàng)建一個heartbeat的表,里面至少有id與ts兩個字段,id為server_id,ts就是當(dāng)前的時間戳 now(),該結(jié)構(gòu)也會被復(fù)制到從庫上。 表建好以后,會在主庫上以后臺進(jìn)程的模式去執(zhí)行一行更新操作的命令,定期去向表中的插入數(shù)據(jù),這個周期默認(rèn)為1 秒,同時從庫也會在后臺執(zhí)行一個監(jiān)控命令,與主庫保持一致的周期去比較,復(fù)制過來記錄的ts值與主庫上的同一條ts值,差值為0表示無延時,差值越大表示延時的秒數(shù)越多。 我們都知道復(fù)制是異步的ts不肯完全一致,所以該工具允許半秒的差距,在這之內(nèi)的差異都可忽略認(rèn)為無延時。這個工具就是通過實(shí)打?qū)嵉膹?fù)制,巧妙的借用timestamp來檢查延時,非常好用! 關(guān)于檢查MySQL數(shù)據(jù)庫的主從延時的兩種方法就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
可以通過監(jiān)控show slave status\G命令輸出的Seconds_Behind_Master參數(shù)的值來判斷,是否有發(fā)生主從延時。
其值有這兆虧畝空掘么幾種:
NULL – 表示io_thread或是sql_thread有任何一個發(fā)生故障,也就是該線程的Running狀態(tài)是No,而非Yes.
0 – 該值為零,是我們極為渴望看到的情況,表示主從復(fù)制良好,可以認(rèn)為lag不存在。
正值 – 表示主從已經(jīng)出現(xiàn)延時,數(shù)字越大表示從庫落后主庫越多。
負(fù)值 – 幾乎很少見,只是聽一些資深的DBA說見過,其實(shí),這是一個族森BUG值,該參數(shù)是不支持負(fù)值的,也就是不應(yīng)該出現(xiàn)。
使用 bcc 工具觀測 MySQL:1)dbstat功能:將 MySQL/PostgreSQL 的查詢延遲匯總為直方圖
語法:
dbstat >> {mysql,postgres}
選項(xiàng):
{mysql,postgres}# 觀測哪種數(shù)據(jù)庫-h, –help # 顯示幫助然后退出-v, –verbose # 顯示BPF程序-p >, –pid > # 要觀測的進(jìn)程號,空格分隔-m THRESHOLD, –threshold THRESHOLD# 只統(tǒng)計(jì)查詢延遲比此閾值高的-u, –microseconds# 以微秒為時間單位來顯示延遲(默認(rèn)單位:毫秒)-i INTERVAL, –interval INTERVAL# 打印摘要的時間間隔(單位:秒)
示例:
# 使用 syench 在被觀測數(shù)培弊則據(jù)庫上執(zhí)行 select# dbstat mysql -p `pidof mysqld` -uTracing database queries for pids 3350 slower than 0 ms…^C query latency (us)
2)dbslower
功能:跟蹤 MySQL/PostgreSQL 的查詢配棚時間高于閾值
語法:
dbslower >> {mysql,postgres}
參數(shù):
{mysql,postgres}# 觀測哪種數(shù)據(jù)庫 -h, –help # 顯示幫助然后退出 -v, –verbose # 顯示BPF程序 -p >, –pid > # 要觀測的進(jìn)程號,空格分隔 -m THRESHOLD, –threshold THRESHOLD# 只統(tǒng)計(jì)查詢延遲比此閾值高的 -x PATH, –exe PATH卜弊 # 數(shù)據(jù)庫二進(jìn)制文件的位置
示例:
# 使用syench在被觀測數(shù)據(jù)庫上執(zhí)行update_index # dbslower mysql -p `pidof mysqld` -m 2 Tracing database queries for pids 3350 slower than 2 ms… TIME(s)PIDMS QUERY 1..996 UPDATE test1 SET k=k+1 WHERE id=963 3..069 UPDATE test1 SET k=k+1 WHERE id=628 5..171 UPDATE test1 SET k=k+1 WHERE id=325 7..853 UPDATE test1 SET k=k+1 WHERE id=5955. 使用限制
bcc 基于 eBPF 開發(fā)(需要 Linux 3.15 及更高版本)。bcc 使用的大部分內(nèi)容都需要 Linux 4.1 及更高版本。
linux dtrace的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux dtrace,深入剖析:Linux下的DTrace技術(shù),幾個常用的MySQL性能測試工具,如何檢查MySQL數(shù)據(jù)庫的主從延時?的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)-老牌IDC、云計(jì)算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計(jì)算服務(wù)、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設(shè),咨詢熱線:028-86922220
分享文章:深入剖析:Linux下的DTrace技術(shù)(linuxdtrace)
網(wǎng)址分享:http://www.dlmjj.cn/article/djhjoop.html


咨詢
建站咨詢
