ext4 時延stap指令碼
#!/bin/sh STAP_FILE_PATH="/tmp/moderate-ext4.stp" MODERATE_EXT4_FUNCTIONS=( #ext4 direct io function "ext4_direct_IO" #ext4 page related functions #"ext4_readpages" #"ext4_writepage" #ext4 aio related functions "generic_file_aio_read" "ext4_file_write" #ext4 sync function "ext4_sync_file" ) function error() { echo $@ exit 1 } function probe_functions() { local delay=${1:-"1"} rm $STAP_FILE_PATH &>/dev/null # header cat <> $STAP_FILE_PATH #!/usr/bin/stap -DSTP_NO_OVERLOAD # Delay reads by 250 ms # stap -v -g nfsd_delay_op.stp nfsd_read 250 %{ #undef STP_OVERLOAD #include %} function udelay(ms:long) %{ /* guru */ udelay(THIS->ms); %} EOF for func_name in ${MODERATE_EXT4_FUNCTIONS[@]}; do if [[ $func_name =~ "ext4" ]]; then # ext4 module probe body cat <> $STAP_FILE_PATH probe module("ext4").function("$func_name").return { udelay($delay); } EOF else # kernel probe body cat <> $STAP_FILE_PATH probe kernel.function("$func_name").return { udelay($delay); } EOF fi done } function usage() { local program=`basename $0` echo "Usage: $program is a tool to moderate ext4's io based on systemtap" echo "the only option is time, and the unit is milliseconds" exit 1 } function main() { if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then usage fi which stap &>/dev/null || yum -b current intall -y systemtap probe_functions $1 stap -v -g $STAP_FILE_PATH } main $1 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30088583/viewspace-2136830/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- stap監控IO指令碼指令碼
- stap監控cpu指令碼小結指令碼
- 網路兩端延時測試指令碼指令碼
- stap 命令
- 我對JS延遲非同步指令碼的思考JS非同步指令碼
- mysql時間指令碼MySql指令碼
- 定時ftp指令碼FTP指令碼
- php訂單延時處理-延時佇列PHP佇列
- 延時函式函式
- Oracle指令碼收集【不定時更新】Oracle指令碼
- Linux 時間同步指令碼Linux指令碼
- linux建立定時指令碼Linux指令碼
- linux啟定時指令碼Linux指令碼
- 詳解低延時高音質:編解碼篇
- RocketMQ定時/延時訊息MQ
- 應用響應時延背後 深藏的網路時延
- 延時佇列(RabbitMQ)佇列MQ
- ORACLE常用定時備份指令碼Oracle指令碼
- mysql每天定時備份指令碼MySql指令碼
- 定時刪除檔案指令碼指令碼
- oracle rman 定時備份指令碼Oracle指令碼
- tomcat定時啟動指令碼Tomcat指令碼
- 指令碼:定時生成awr報告指令碼
- javascript指令碼何時被執行JavaScript指令碼
- 定時收集gc事件的指令碼GC事件指令碼
- mysql定時備份shell指令碼MySql指令碼
- RMAN定時全備份指令碼指令碼
- linux 定時關機指令碼Linux指令碼
- 練習時的docker部署指令碼Docker指令碼
- H.265低延時編碼IP技術
- sleep 時間段不佔指令碼執行時間指令碼
- ORACLE 11g的密碼錯誤延時驗證Oracle密碼
- 清理臨時表規範以及指令碼指令碼
- Linux 定時執行指令碼、命令Linux指令碼
- 通過 Redis 定時執行指令碼Redis指令碼
- javascript指令碼何時會被執行JavaScript指令碼
- Mysql定時備份資料指令碼MySql指令碼
- Linux Shell指令碼時間排程Linux指令碼