zfs and top

Michael Monashev softsearch at gmail.com
Wed Oct 3 11:52:26 PDT 2007


Hi, freebsd-fs.

I have spurious state in top for IO-heavy process:

last pid:  2318;  load averages:  0.18,  0.13,  0.12  up 0+06:02:44  19:57:20
57 processes:  2 running, 55 sleeping
CPU states:  0.4% user,  0.0% nice,  5.1% system,  1.8% interrupt, 92.6% idle
Mem: 281M Active, 1761M Inact, 1673M Wired, 56M Cache, 214M Buf, 141M Free
Swap: 4096M Total, 1344K Used, 4095M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
 2052 www         1  96    0 43272K 38208K zfs:(& 1   0:16  0.10% nginx
 2054 www         1  96    0 43272K 38220K zfs:(& 1   0:15  0.05% nginx
 2059 www         1  96    0 43272K 38224K zfs:(& 1   0:15  0.05% nginx
 2062 www         1  96    0 43272K 38220K zfs:(& 0   0:14  0.05% nginx
 2053 www         1  96    0 43272K 38220K zfs:(& 0   0:16  0.00% nginx
 2058 www         1  96    0 43272K 38208K zfs:(& 1   0:16  0.00% nginx
 2065 www         1  96    0 43272K 38220K zfs:(& 1   0:16  0.00% nginx
 2063 www         1  96    0 43272K 38224K zfs:(& 0   0:16  0.00% nginx
 2050 www         1  96    0 43272K 38208K zfs:(& 0   0:16  0.00% nginx
 2048 www         1  96    0 43272K 38212K zfs:(& 0   0:16  0.00% nginx
 2051 www         1  96    0 43272K 38208K zfs:(& 0   0:16  0.00% nginx
 2060 www         1  96    0 43272K 38212K zfs:(& 1   0:15  0.00% nginx
 2055 www         1  96    0 43272K 38224K zfs:(& 0   0:15  0.00% nginx
 2057 www         1  96    0 43272K 38224K zfs:(& 1   0:15  0.00% nginx
 2046 www         1  96    0 43272K 38208K zfs:(& 0   0:15  0.00% nginx
 2061 www         1  96    0 43272K 38216K zfs:(& 0   0:14  0.00% nginx
 2056 www         1  96    0 43272K 38208K zfs:(& 0   0:14  0.00% nginx
 2049 www         1  96    0 43272K 38204K CPU0   0   0:14  0.00% nginx
 2047 www         1  96    0 43272K 38208K zfs:(& 1   0:13  0.00% nginx
 2064 www         1  96    0 43272K 38208K zfs:(& 1   0:13  0.00% nginx

I patch ps ( thanx Ruslan Ermilov ):
/usr/src/bin/ps/keyword.c

-       {"wchan", "WCHAN", NULL, LJUST, wchan, NULL, 6, 0, CHAR, NULL, 0},
+       {"wchan", "WCHAN", NULL, LJUST, wchan, NULL, 16, 0, CHAR, NULL, 0},

But WCHAN is still spurious :-(

> ps ax -o pid,ppid,%cpu,vsz,wchan,command | egrep '(nginx|PID)'
  PID  PPID %CPU   VSZ WCHAN            COMMAND
  846     1  0.0 36104 pause            nginx: master process /usr/local/sbin/nginx
 2046   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2047   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2048   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2049   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2050   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2051   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2052   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2053   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2054   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2055   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2056   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2057   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2058   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2059   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2060   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2061   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2062   846  0.0 43272 zfs              nginx: worker process (nginx)
 2063   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2064   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
 2065   846  0.0 43272 zfs:(&zi         nginx: worker process (nginx)
>

How to see factual process state?

-- 
Michael Monashev



More information about the freebsd-fs mailing list