- 论坛徽章:
- 0
|
各位高手好:
最近我在linux服务器之上运行一些比较大型的java的网页抓取程序,现在发现了一个vmstat之中的wa始终下不来,在95以上,另外,b之中的uninterrupted 队列也是10个,我看了一些文档与资料,知道这是IO问题,利用iostat察看了一下,vmstat与iostat的结果分别如下:
0 10 440 18028 191876 1171968 0 0 33364 0 706 1032 0 2 0 98
0 10 440 17896 191876 1172100 0 0 30828 0 678 1008 1 1 0 98
0 10 440 18008 191876 1171988 0 0 30552 0 675 1005 1 1 0 98
0 10 440 17960 191884 1172028 0 0 33236 80 743 1120 0 2 0 98
0 10 440 17868 191884 1172120 0 0 31796 0 691 1033 0 2 0 97
1 10 440 17988 191884 1172000 0 0 32640 0 696 1039 0 2 0 98
0 9 440 17964 191884 1172024 0 0 31140 0 724 1052 1 2 0 97
0 9 440 17964 191884 1172024 0 0 30676 0 734 1020 1 2 0 97
iostat的:
avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 3.01 96.99 0.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 600.00 62608.00 0.00 62608 0
sda1 0.00 0.00 0.00 0 0
sda2 0.00 0.00 0.00 0 0
sda3 0.00 0.00 0.00 0 0
sda4 0.00 0.00 0.00 0 0
sda5 600.00 62608.00 0.00 62608 0
这应该是指在sda5之上,有大量的读的操作,然后,我查看了一些相应的资料,有人说利用fuser -vm 加上设备名可以看见在上面相应的进程号,我试了一下,好像是我是java的进程,可是,我再利用java之中Thread.getAllStackTraces(),获取当前java虚拟机的线程运行情况,没有发现多少的IO操作。
我有问题,有没有方法,可以直接看见,我当前那一个文件正在进行频繁的IO操作,我知道lsof可以看见我的java进程打开的文件,可是文件太多了,我也不知道是那个,因此,我也就没有办法判断,究竟是我的JAVA程序,还是其它的原因出了问题?
先谢过了,实在是没有办法,折腾一天了,昨天晚上都没有睡,那位大哥知道的给点建议也行,先谢过了。 |
|