So a few posts ago I cavalierly wrote how easy it was to add a timestamp to lvmstat for unattended data gathering when hotspot hunting. (Hotspot hunting ain't easy unless you can time-align lvmstat and iostat data.) I was overconfident, in my own awk abilities at the very least.
Sure, I found the hot logical partitions when I was reviewing data. But every single one of my timestamps in the log had the same value! Criminey! It took me forever to spreadsheet-mod my way out of that in order to create some decent looking spreadsheet and graph data.
If you McGoogle "lvmstat", "awk", and "timestamp" I don't think you'll find very much that is helpful in allowing time-aligning of unattended lvmstat logs with iostat logs. Maybe there's a compact answer somewhere, but I didn't find it... don't wanna brag but I'm a pretty good McGoogler. Most of the responses in various forums resulted in the same stale date timestamp values, collected at the beginning of script execution and repeated throughout. Eventually I was able to get a date timestamp value that was updated throughout execution... but then I had extra linebreaks that I didn't want.
My pain... your gain. Here's what I ended up with*.
# ###find top 4 partitions, 5 second interval, 4 iterations
# lvmstat -s -l sasquatch_lv -c4 5 4 | awk -u '{ORS=" ";} {print $0 ; system("date") ; close("date") ; }'
Wed Jul 31 16:40:16 CDT 2013
Log_part mirror# iocnt Kb_read Kb_wrtn Kbps Wed Jul 31 16:40:16 CDT 2013
45 1 39773 16 340312 0.02 Wed Jul 31 16:40:17 CDT 2013
1 1 16298 0 425208 0.02 Wed Jul 31 16:40:17 CDT 2013
3 1 5428 0 685612 0.03 Wed Jul 31 16:40:17 CDT 2013
2 1 4528 0 480760 0.02 Wed Jul 31 16:40:17 CDT 2013
... Wed Jul 31 16:40:26 CDT 2013
Yay! A small victory, but I'll take it.
*This isn't really the end of course... there's a bit more cleanup. The empty first line can be removed, the lines that represent no change in values and have only periods and timestamps can be removed. Those are left as exercises for the reader. :)
***** Update sql_sasquatch 10/03/2013 *****
I pulled this out today to make sure it really works and that I wasn't just conveniently ignoring timestamps that weren't updating as desired. Nope, its working like I thought.
# lvmstat -s -l lv_unicorn -c4 5 20 | awk -u '{ORS=" ";} {print $0 ; system("date") ; close("date") ; }'
Thu Oct 3 15:00:45 CDT 2013
Log_part mirror# iocnt Kb_read Kb_wrtn Kbps Thu Oct 3 15:00:45 CDT 2013
77 1 146 0 592 0.06 Thu Oct 3 15:00:45 CDT 2013
75 1 91 144 240 0.04 Thu Oct 3 15:00:45 CDT 2013
78 1 88 4 348 0.04 Thu Oct 3 15:00:45 CDT 2013
85 1 80 4 2412 0.26 Thu Oct 3 15:00:45 CDT 2013
. Thu Oct 3 15:00:55 CDT 2013
85 1 2 0 52 11.11 Thu Oct 3 15:00:55 CDT 2013
....... Thu Oct 3 15:01:35 CDT 2013
75 1 7 0 28 5.80 Thu Oct 3 15:01:35 CDT 2013
85 1 7 0 148 30.67 Thu Oct 3 15:01:35 CDT 2013
77 1 5 0 20 4.15 Thu Oct 3 15:01:35 CDT 2013
40 1 4 0 16 3.32 Thu Oct 3 15:01:35 CDT 2013
........ Thu Oct 3 15:02:15 CDT 2013
85 1 2 0 124 21.96 Thu Oct 3 15:02:15 CDT 2013
No comments:
Post a Comment