#!/bin/sh mount -t debugfs nodev /sys/kernel/debug/ pagesize=$(( $(LD_SHOW_AUXV=1 /bin/true | awk '/PAGESZ/{print $2}') / 1024 )) extfrag_threshold=$(cat /proc/sys/vm/extfrag_threshold) get_extfrag_info() { nowtime=$(date +%Y-%m-%d\ %H:%M:%S) echo "$nowtime extfrag_threshold: $extfrag_threshold " buddyinfo=$(cat /proc/buddyinfo) mb0=$(echo $buddyinfo | awk '{print $5}') mb1=$(echo $buddyinfo | awk '{print $6}') mb2=$(echo $buddyinfo | awk '{print $7}') mb3=$(echo $buddyinfo | awk '{print $8}') mb4=$(echo $buddyinfo | awk '{print $9}') mb5=$(echo $buddyinfo | awk '{print $10}') mb6=$(echo $buddyinfo | awk '{print $11}') mb7=$(echo $buddyinfo | awk '{print $12}') mb8=$(echo $buddyinfo | awk '{print $13}') mb9=$(echo $buddyinfo | awk '{print $14}') mb10=$(echo $buddyinfo | awk '{print $15}') printf "%-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s\n" \ "$(((2 << 0) * $pagesize))KB($mb0)" \ "$(((2 << 1) * $pagesize))KB($mb1)" \ "$(((2 << 2) * $pagesize))KB($mb2)" \ "$(((2 << 3) * $pagesize))KB($mb3)" \ "$(((2 << 4) * $pagesize))KB($mb4)" \ "$(((2 << 5) * $pagesize))KB($mb5)" \ "$(((2 << 6) * $pagesize))KB($mb6)" \ "$(((2 << 7) * $pagesize))KB($mb7)" \ "$(((2 << 8) * $pagesize))KB($mb8)" \ "$(((2 << 9) * $pagesize))KB($mb9)" \ "$(((2 << 10) * $pagesize))KB($mb10)" \ extfrag_index=$(cat /sys/kernel/debug/extfrag/extfrag_index) mi0=$(echo $extfrag_index | awk '{print $5}') mi1=$(echo $extfrag_index | awk '{print $6}') mi2=$(echo $extfrag_index | awk '{print $7}') mi3=$(echo $extfrag_index | awk '{print $8}') mi4=$(echo $extfrag_index | awk '{print $9}') mi5=$(echo $extfrag_index | awk '{print $10}') mi6=$(echo $extfrag_index | awk '{print $11}') mi7=$(echo $extfrag_index | awk '{print $12}') mi8=$(echo $extfrag_index | awk '{print $13}') mi9=$(echo $extfrag_index | awk '{print $14}') mi10=$(echo $extfrag_index | awk '{print $15}') printf "%-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s\n" \ $(awk -v mi0=$mi0 'BEGIN{print mi0 * 1000}') \ $(awk -v mi1=$mi1 'BEGIN{print mi1 * 1000}') \ $(awk -v mi2=$mi2 'BEGIN{print mi2 * 1000}') \ $(awk -v mi3=$mi3 'BEGIN{print mi3 * 1000}') \ $(awk -v mi4=$mi4 'BEGIN{print mi4 * 1000}') \ $(awk -v mi5=$mi5 'BEGIN{print mi5 * 1000}') \ $(awk -v mi6=$mi6 'BEGIN{print mi6 * 1000}') \ $(awk -v mi7=$mi7 'BEGIN{print mi7 * 1000}') \ $(awk -v mi8=$mi8 'BEGIN{print mi8 * 1000}') \ $(awk -v mi9=$mi9 'BEGIN{print mi9 * 1000}') \ $(awk -v mi10=$mi10 'BEGIN{print mi10 * 1000}') } while true; do get_extfrag_info sleep 1 done