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