run.sh: update run.sh to get more accurate data
This commit is contained in:
parent
0fc5a21bc1
commit
15b49dd069
121
run.sh
121
run.sh
|
|
@ -1,60 +1,113 @@
|
|||
# prepare
|
||||
echo always > /sys/kernel/mm/transparent_hugepage/hugepages-64kB/enabled
|
||||
|
||||
tmpfile=$(mktemp)
|
||||
|
||||
# record data before test
|
||||
pgfault1=$(cat /proc/vmstat | grep pgfault | awk '{print $2}')
|
||||
|
||||
./test_swap > $tmpfile
|
||||
|
||||
pgfault2=$(cat /proc/vmstat | grep pgfault | awk '{print $2}')
|
||||
|
||||
swapout=$(head -n 1 $tmpfile | awk '{print $4}')
|
||||
swapin=$(tail -n 1 $tmpfile | awk '{print $4}')
|
||||
|
||||
cat /sys/block/zram0/mm_stat > $tmpfile
|
||||
|
||||
total_size=$(cat $tmpfile | awk '{print $1}')
|
||||
used_size=$(cat $tmpfile | awk '{print $2}')
|
||||
comp_ratio=`echo "scale=4; $total_size / $used_size" | bc`
|
||||
# used to calculate zram compress ratio
|
||||
prev_zram_total_size=$(cat $tmpfile | awk '{print $1}')
|
||||
prev_zram_used_size=$(cat $tmpfile | awk '{print $2}')
|
||||
|
||||
# used to calculate hugepage alloc success ratio
|
||||
prev_anon_fault_alloc=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_alloc)
|
||||
prev_anon_fault_fallback=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_fallback)
|
||||
|
||||
anon_fault_alloc=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_alloc)
|
||||
anon_fault_fallback=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_fallback)
|
||||
anon_total=$(($anon_fault_fallback + $anon_fault_alloc))
|
||||
folio_alloc_success_ratio=`echo "scale=4; $anon_fault_alloc / $anon_total" | bc`
|
||||
# used to calculate hugepage swapout success ratio
|
||||
prev_swpout_alloc=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpout)
|
||||
prev_swpout_fault_fallback=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpout_fallback)
|
||||
|
||||
# used to calculate zram multipage read/write success ratio
|
||||
if [ -f /sys/block/zram0/multi_pages_debug_stat ]; then
|
||||
|
||||
cat /sys/block/zram0/multi_pages_debug_stat > $tmpfile
|
||||
|
||||
prev_nr_write_multipage=$(head -n 1 $tmpfile | awk '{print $5}')
|
||||
prev_nr_read_multipage=$(head -n 1 $tmpfile | awk '{print $6}')
|
||||
|
||||
prev_nr_write_failed_multipage=$(cat $tmpfile | grep "failed" | awk '{print $6}')
|
||||
prev_nr_read_failed_multipage=$(cat $tmpfile | grep "failed" | awk '{print $7}')
|
||||
fi
|
||||
|
||||
# start test
|
||||
./test_swap > $tmpfile
|
||||
|
||||
# check data
|
||||
pgfault2=$(cat /proc/vmstat | grep pgfault | awk '{print $2}')
|
||||
pgfault_inc=$(($pgfault2-$pgfault1))
|
||||
|
||||
bandwidth_swapout=$(head -n 1 $tmpfile | awk '{print $4}')
|
||||
bandwidth_swapin=$(tail -n 1 $tmpfile | awk '{print $4}')
|
||||
|
||||
cat /sys/block/zram0/mm_stat > $tmpfile
|
||||
|
||||
# calculate zram comp_ratio
|
||||
new_zram_total_size=$(cat $tmpfile | awk '{print $1}')
|
||||
new_zram_used_size=$(cat $tmpfile | awk '{print $2}')
|
||||
|
||||
zram_total_size_inc=$(($new_zram_total_size-$prev_zram_total_size))
|
||||
zram_used_size_inc=$(($new_zram_used_size-$prev_zram_used_size))
|
||||
|
||||
comp_ratio=`echo "scale=4; $zram_total_size_inc / $zram_used_size_inc" | bc`
|
||||
|
||||
# calculate huge page alloc success ratio
|
||||
new_anon_fault_alloc=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_alloc)
|
||||
new_anon_fault_fallback=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_fallback)
|
||||
|
||||
anon_fault_alloc_inc=$(($new_anon_fault_alloc-$prev_anon_fault_alloc))
|
||||
anon_fault_fallback_inc=$(($new_anon_fault_fallback-$prev_anon_fault_fallback))
|
||||
anon_fault_total_inc=$(($anon_fault_alloc_inc+$anon_fault_fallback_inc))
|
||||
|
||||
anon_fault_success_ratio=`echo "scale=4; $anon_fault_alloc_inc / $anon_fault_total_inc" | bc`
|
||||
|
||||
# calculate huge page swapout success ratio
|
||||
new_swpout_alloc=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpout)
|
||||
new_swpout_fault_fallback=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpout_fallback)
|
||||
|
||||
swpout_alloc_inc=$(($new_swpout_alloc-$prev_swpout_alloc))
|
||||
swpout_fault_fallback_inc=$(($new_swpout_fault_fallback-$prev_swpout_fault_fallback))
|
||||
swpout_total_inc=$(($swpout_alloc_inc+$swpout_fault_fallback_inc))
|
||||
|
||||
swapout_success_ratio=`echo "scale=4; $swpout_alloc_inc / $swpout_total_inc" | bc`
|
||||
|
||||
swpout_alloc=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpout)
|
||||
swpout_fault_fallback=$(cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/swpout_fallback)
|
||||
swpout_total=$(($swpout_fault_fallback + $swpout_alloc))
|
||||
swapout_success_ratio=`echo "scale=4; $swpout_alloc / $swpout_total" | bc`
|
||||
|
||||
if [ -f /sys/block/zram0/multi_pages_debug_stat ]; then
|
||||
|
||||
cat /sys/block/zram0/multi_pages_debug_stat > $tmpfile
|
||||
|
||||
nr_write_multipage=$(head -n 1 $tmpfile | awk '{print $5}')
|
||||
nr_read_multipage=$(head -n 1 $tmpfile | awk '{print $6}')
|
||||
new_nr_write_multipage=$(head -n 1 $tmpfile | awk '{print $5}')
|
||||
new_nr_read_multipage=$(head -n 1 $tmpfile | awk '{print $6}')
|
||||
|
||||
nr_write_failed_multipage=$(cat $tmpfile | grep "failed" | awk '{print $6}')
|
||||
nr_read_failed_multipage=$(cat $tmpfile | grep "failed" | awk '{print $7}')
|
||||
new_nr_write_failed_multipage=$(cat $tmpfile | grep "failed" | awk '{print $6}')
|
||||
new_nr_read_failed_multipage=$(cat $tmpfile | grep "failed" | awk '{print $7}')
|
||||
|
||||
nr_write_succeed_multipage=$(($nr_write_multipage-$nr_write_failed_multipage))
|
||||
nr_read_succeed_multipage=$(($nr_read_multipage-$nr_read_failed_multipage))
|
||||
nr_write_multipage_inc=$(($new_nr_write_multipage-$prev_nr_write_multipage))
|
||||
nr_read_multipage_inc=$(($new_nr_read_multipage-$prev_nr_read_multipage))
|
||||
|
||||
zram_write_multipage_ratio=`echo "scale=4; $nr_write_succeed_multipage / $nr_write_multipage" | bc`
|
||||
zram_read_multipage_ratio=`echo "scale=4; $nr_read_succeed_multipage / $nr_read_multipage" | bc`
|
||||
nr_write_failed_multipage_inc=$(($new_nr_write_failed_multipage-$prev_nr_write_failed_multipage))
|
||||
nr_read_failed_multipage_inc=$(($new_nr_read_failed_multipage-$prev_nr_read_failed_multipage))
|
||||
|
||||
nr_write_succeed_multipage_inc=$(($nr_write_multipage_inc-$nr_write_failed_multipage_inc))
|
||||
nr_read_succeed_multipage_inc=$(($nr_read_multipage_inc-$nr_read_failed_multipage_inc))
|
||||
|
||||
zram_write_multipage_ratio=`echo "scale=4; $nr_write_succeed_multipage_inc / $nr_write_multipage_inc" | bc`
|
||||
zram_read_multipage_ratio=`echo "scale=4; $nr_read_succeed_multipage_inc / $nr_read_multipage_inc" | bc`
|
||||
fi
|
||||
|
||||
echo swapout $swapout
|
||||
echo swapin $swapin
|
||||
echo comp_ratio $comp_ratio
|
||||
echo pagefault $(($pgfault2-$pgfault1))
|
||||
echo folio_alloc_success_ratio $folio_alloc_success_ratio
|
||||
echo swapout_success_ratio $swapout_success_ratio
|
||||
echo "swapout_bandwidth $bandwidth_swapout"
|
||||
echo "swapin_bandwidth $bandwidth_swapin"
|
||||
echo "comp_ratio $comp_ratio"
|
||||
echo "pagefault increased $pgfault_inc"
|
||||
echo "anon_fault_success_ratio $anon_fault_success_ratio"
|
||||
echo "swapout_success_ratio $swapout_success_ratio"
|
||||
|
||||
if [ -f /sys/block/zram0/multi_pages_debug_stat ]; then
|
||||
echo zram_write_multipage_ratio $zram_write_multipage_ratio
|
||||
echo zram_read_multipage_ratio $zram_read_multipage_ratio
|
||||
echo "zram_write_multipage_ratio $zram_write_multipage_ratio"
|
||||
echo "zram_read_multipage_ratio $zram_read_multipage_ratio"
|
||||
fi
|
||||
|
||||
killall test_swap
|
||||
rm $tmpfile
|
||||
|
|
|
|||
Loading…
Reference in New Issue