- 论坛徽章:
- 0
|
- bash-2.03$ truss vmstat 2\r\nexecve(\"/usr/bin/vmstat\", 0xFFBEFCCC, 0xFFBEFCD8) argc = 2\r\nmmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1,\r\n 0) = 0xFF3A0000\r\nresolvepath(\"/usr/lib/ld.so.1\", \"/usr/lib/ld.so.1\", 1023) = 16\r\nopen(\"/var/ld/ld.config\", O_RDONLY) = 3\r\nfstat(3, 0xFFBEF558) = 0\r\nmmap(0x00000000, 104, PROT_READ, MAP_SHARED, 3, 0) = 0xFF390000\r\nclose(3) = 0\r\nstat(\"/usr/lib/libkstat.so.1\", 0xFFBEF3F4) = 0\r\nopen(\"/usr/lib/libkstat.so.1\", O_RDONLY) = 3\r\nfstat(3, 0xFFBEF3F4) = 0\r\nmmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF380000\r\nmmap(0x00000000, 81920, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF360000\r\nmmap(0xFF372000, 460, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,\r\n8192) = 0xFF372000\r\nmunmap(0xFF362000, 65536) = 0\r\nmemcntl(0xFF360000, 2244, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0\r\nclose(3) = 0\r\nstat(\"/usr/lib/libc.so.1\", 0xFFBEF3F4) = 0\r\nopen(\"/usr/lib/libc.so.1\", O_RDONLY) = 3\r\nfstat(3, 0xFFBEF3F4) = 0\r\nmmap(0xFF380000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3\r\n80000\r\nmmap(0x00000000, 802816, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF280000\r\nmmap(0xFF33C000, 24764, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3\r\n, 704512) = 0xFF33C000\r\nmunmap(0xFF32C000, 65536) = 0\r\nmemcntl(0xFF280000, 113516, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0\r\nclose(3) = 0\r\nstat(\"/usr/lib/libdl.so.1\", 0xFFBEF3F4) = 0\r\nopen(\"/usr/lib/libdl.so.1\", O_RDONLY) = 3\r\nfstat(3, 0xFFBEF3F4) = 0\r\nmmap(0xFF380000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF3\r\n80000\r\nclose(3) = 0\r\nstat(\"/usr/platform/SUNW,UltraAX-i2/lib/libc_psr.so.1\", 0xFFBEF204) = 0\r\nopen(\"/usr/platform/SUNW,UltraAX-i2/lib/libc_psr.so.1\", O_RDONLY) = 3\r\nfstat(3, 0xFFBEF204) = 0\r\nmmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF350000\r\nmmap(0x00000000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF270000\r\nclose(3) = 0\r\nmunmap(0xFF350000, 8192) = 0\r\nsysconfig(_CONFIG_PAGESIZE) = 8192\r\nsysconfig(_CONFIG_CLK_TCK) = 100\r\nopen(\"/dev/kstat\", O_RDONLY) = 3\r\nbrk(0x00024888) = 0\r\nbrk(0x00026888) = 0\r\nioctl(3, KSTAT_IOC_CHAIN_ID, 0x00000000) = 376\r\nioctl(3, KSTAT_IOC_READ, \"kstat_headers\") Err#12 ENOMEM\r\nbrk(0x00026888) = 0\r\nbrk(0x00030888) = 0\r\nioctl(3, KSTAT_IOC_READ, \"kstat_headers\") = 376\r\nbrk(0x00030888) = 0\r\nbrk(0x00032888) = 0\r\nbrk(0x00032888) = 0\r\nbrk(0x00034888) = 0\r\nbrk(0x00034888) = 0\r\nbrk(0x00036888) = 0\r\nbrk(0x00036888) = 0\r\nbrk(0x00038888) = 0\r\nbrk(0x00038888) = 0\r\nbrk(0x0003A888) = 0\r\nioctl(3, KSTAT_IOC_READ, \"system_misc\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"cpu_stat0\") = 376\r\nsigaction(SIGCONT, 0xFFBEFB48, 0xFFBEFBC8) = 0\r\nioctl(3, KSTAT_IOC_READ, \"sysinfo\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"vminfo\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"system_misc\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"cpu_stat0\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"dad0\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"dad1\") = 376\r\nioctl(3, KSTAT_IOC_READ, \"sd0\") = 376\r\nioctl(1, TCGETA, 0xFFBEED8C) = 0\r\n procs memory page disk faults cpu\r\nwrite(1, \" p r o c s m\".., 75) = 75\r\n r b w swap free re mf pi po fr de sr dd dd s0 -- in sy cs us sy id\r\nwrite(1, \" r b w s w a\".., 79) = 79\r\n 0 0 0 2481624 501464 2 6 2 0 0 0 0 4 0 0 0 320 398 226 1 1 98\r\nwrite(1, \" 0 0 0 2 4 8 1 6\".., 79) = 79\r\n
复制代码 \r\n\r\n\r\n\r\n我做了一下,得到上面的结果。\r\n分析一下:\r\nstat(\"/usr/lib/libkstat.so.1\", 0xFFBEF3F4) = 0\r\nopen(\"/usr/lib/libkstat.so.1\", O_RDONLY) = 3\r\n上面的两句话应该是调用共享的库libkstat.so.1,听名字就应该跟kernel的state或status有关,应该就是通过这个程序来得到结果吧\r\n\r\n\r\nioctl(3, KSTAT_IOC_READ, \"system_misc\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"cpu_stat0\" = 376\r\nsigaction(SIGCONT, 0xFFBEFB48, 0xFFBEFBC = 0\r\nioctl(3, KSTAT_IOC_READ, \"sysinfo\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"vminfo\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"system_misc\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"cpu_stat0\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"dad0\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"dad1\" = 376\r\nioctl(3, KSTAT_IOC_READ, \"sd0\" = 376\r\nioctl(1, TCGETA, 0xFFBEED8C) = 0\r\n\r\n上面的这些咚咚应该就是具体的kernel的那些变量吧。\r\n\r\n\r\n\r\n应该差不多了吧,这些信息? |
|