vmstat does IO-wait
This commit is contained in:
parent
2754004de0
commit
80ec87f55a
2
NEWS
2
NEWS
@ -1,9 +1,11 @@
|
||||
procps-3.0.5 --> procps-3.0.6
|
||||
|
||||
vmstat displays IO-wait time instead of bogus "w"
|
||||
can build w/o shared library (set SHARED=0)
|
||||
when IO-wait hidden, count as idle, not as sys
|
||||
pmap command added (like Sun has)
|
||||
do not crash GNU make 3.79
|
||||
top slightly faster
|
||||
|
||||
procps-3.0.4 --> procps-3.0.5
|
||||
|
||||
|
@ -25,7 +25,7 @@ LIBPROC := proc/lib$(NAME).a
|
||||
endif
|
||||
|
||||
# Separate rule for this directory, to use -fpic or -fPIC
|
||||
$(LIBOBJ): proc/%.o: proc/%.c
|
||||
$(filter-out proc/version.o,$(LIBOBJ)): proc/%.o: proc/%.c
|
||||
$(CC) -c $(CFLAGS) $(FPIC) $< -o $@
|
||||
|
||||
LIB_X := COPYING module.mk
|
||||
@ -70,8 +70,4 @@ $(lib)/$(SONAME) : proc/$(SONAME)
|
||||
|
||||
|
||||
proc/version.o: proc/version.c proc/version.h
|
||||
ifdef MINORVERSION
|
||||
$(strip $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" -c -o $@ $<)
|
||||
else
|
||||
$(strip $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -c -o $@ $<)
|
||||
endif
|
||||
$(CC) $(CFLAGS) $(FPIC) -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\" -c -o $@ $<
|
||||
|
2
top.c
2
top.c
@ -711,7 +711,7 @@ static const char *scale_tics (TICS_t tics, const int width)
|
||||
unsigned cc; // centiseconds
|
||||
unsigned nn; // multi-purpose whatever
|
||||
|
||||
nt = (tics * 100) / Hertz;
|
||||
nt = (tics * 100ull) / Hertz;
|
||||
cc = nt % 100; // centiseconds past second
|
||||
nt /= 100; // total seconds
|
||||
nn = nt % 60; // seconds past the minute
|
||||
|
12
vmstat.8
12
vmstat.8
@ -41,8 +41,6 @@ The \fB-V\fP switch results in displaying version information.
|
||||
.nf
|
||||
r: The number of processes waiting for run time.
|
||||
b: The number of processes in uninterruptable sleep.
|
||||
w: The number of processes swapped out but otherwise runnable. This
|
||||
field is calculated, but Linux never desperation swaps.
|
||||
.fi
|
||||
.PP
|
||||
.SS
|
||||
@ -81,9 +79,10 @@ cs: The number of context switches per second.
|
||||
.B "CPU "
|
||||
These are percentages of total CPU time.
|
||||
.nf
|
||||
us: user time
|
||||
sy: system time
|
||||
id: idle time
|
||||
us: Time spent running non-kernel code. (user time, including nice time)
|
||||
sy: Time spent running kernel code. (system time)
|
||||
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
|
||||
wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.
|
||||
.nf
|
||||
.SH NOTES
|
||||
.B "vmstat "
|
||||
@ -93,7 +92,8 @@ These reports are intended to help identify system bottlenecks. Linux
|
||||
.B "vmstat "
|
||||
does not count itself as a running process.
|
||||
.PP
|
||||
All linux blocks are currently 1k, except for CD-ROM blocks which are 2k.
|
||||
All linux blocks are currently 1024 bytes. Old kernels may report
|
||||
blocks as 512 bytes, 2048 bytes, or 4096 bytes.
|
||||
.PP
|
||||
.SH FILES
|
||||
.ta
|
||||
|
35
vmstat.c
35
vmstat.c
@ -155,6 +155,8 @@ static void getrunners(unsigned int *running, unsigned int *blocked,
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
#if 0
|
||||
|
||||
static void old_header(void){
|
||||
printf("%8s%28s%10s%12s%11s%9s\n",
|
||||
"procs","memory","swap","io","system","cpu");
|
||||
@ -253,10 +255,11 @@ static void old_format(void) {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if 0
|
||||
// produce: " 6 ", "123 ", "123k ", etc.
|
||||
static int format_1024(unsigned long long val64, char *dst){
|
||||
unsigned oldval;
|
||||
@ -321,21 +324,19 @@ static int format_1000(unsigned long long val64, char *dst){
|
||||
}
|
||||
return sprintf(dst, "%3u%c ", val32, suffix[level]);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
procs -----------memory---------- --swap- ----io--- ---system--- ---cpu---
|
||||
r b swpd free buff cache si so bi bo in cs us sy id wa
|
||||
*/
|
||||
#endif
|
||||
|
||||
static void new_header(void){
|
||||
printf("%5s%28s%10s%12s%11s%12s\n",
|
||||
"procs","memory","swap","io","system","cpu");
|
||||
printf("%2s %2s %2s %6s %6s %6s %6s %4s %4s %5s %5s %4s %5s %2s %2s %2s %2s\n",
|
||||
"r","b","w","swpd","free",
|
||||
a_option?"inact":"buff", a_option?"active":"cache",
|
||||
"si","so","bi","bo",
|
||||
"in","cs","us","sy","id","wa");
|
||||
printf("procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----\n");
|
||||
printf(
|
||||
"%2s %2s %6s %6s %6s %6s %4s %4s %5s %5s %4s %5s %2s %2s %2s %2s\n",
|
||||
"b","w",
|
||||
"swpd", "free", a_option?"inact":"buff", a_option?"active":"cache",
|
||||
"si","so",
|
||||
"bi","bo",
|
||||
"in","cs",
|
||||
"us","sy","id","wa"
|
||||
);
|
||||
}
|
||||
|
||||
static void new_format(void) {
|
||||
@ -353,7 +354,7 @@ static void new_format(void) {
|
||||
int debt = 0; // handle idle ticks running backwards
|
||||
|
||||
sleep_half=(sleep_time/2);
|
||||
old_header();
|
||||
new_header();
|
||||
|
||||
getrunners(&running,&blocked,&r_swapp,&d_swapp);
|
||||
meminfo();
|
||||
@ -385,7 +386,7 @@ static void new_format(void) {
|
||||
|
||||
for(i=1;i<num_updates;i++) { /* \\\\\\\\\\\\\\\\\\\\ main loop ////////////////// */
|
||||
sleep(sleep_time);
|
||||
if (moreheaders && ((i%height)==0)) old_header();
|
||||
if (moreheaders && ((i%height)==0)) new_header();
|
||||
tog= !tog;
|
||||
|
||||
getrunners(&running,&blocked,&r_swapp,&d_swapp);
|
||||
@ -487,7 +488,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
setlinebuf(stdout);
|
||||
|
||||
old_format();
|
||||
new_format();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user