Chinaunix

标题: 请教:solaris 连接 emc 存储速度极慢 [打印本页]

作者: javapjl    时间: 2012-06-18 11:23
标题: 请教:solaris 连接 emc 存储速度极慢
大家好,

我的系统环境:

  一台sun solaris 主机 (SunOS XXX 5.10 Generic_144488-04 sun4u sparc SUNW,SPARC-Enterprise)

   一台 hp linux 安腾 小机 2660 ,一台 emc nas 存储。

   两台小机都通过 nfs 方式连接到 emc 的同一空间,当然是通过不同的ip挂载(mount)上的。

   主机和存贮之间通过Hua3千兆交换机连接。

   solairs上运行着一个机构仓储(olap)系统,管理的都是几百兆至2G的大文件,大量的客户端会从这里下载文件,

问题:linux 连接emc没有问题,速度正常,但是 solaris连接 emc时就非常慢,几乎连接不上,现象如下:

1、如果 在solaris上执行  df -h 就会发现 原本是要 挂载的几个 存储卷出现的速度非常慢, 比如正常情况下应该有如下信息:

root@digital # df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/md/dsk/d0          20G   7.5G    12G    39%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   108G   1.9M   108G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/dev/md/dsk/d20        9.9G   3.9G   5.8G    41%    /usr
fd                       0K     0K     0K     0%    /dev/fd
swap                   108G   896K   108G     1%    /tmp
swap                   108G    88K   108G     1%    /var/run
/dev/md/dsk/d40         42G   1.1G    41G     3%    /export/home
/dev/dsk/c5t6006016008D028000D9C3D7B9120E111d0s6
                       1.6T   337M   1.6T     1%    /ebook2


运行df后本地设备很快就看到了,但红色部分(emc设备)就要等很久很久才能出现,df的输出就卡在那儿,不动了。

2、从solaris 主机ping emc 存储,结果如下:

64 bytes from 192.168.1.90: icmp_seq=0. time=0.251 ms
64 bytes from 192.168.1.90: icmp_seq=1. time=0.240 ms
64 bytes from 192.168.1.90: icmp_seq=2. time=0.241 ms
64 bytes from 192.168.1.90: icmp_seq=3. time=0.228 ms
64 bytes from 192.168.1.90: icmp_seq=4. time=0.214 ms
64 bytes from 192.168.1.90: icmp_seq=5. time=0.202 ms
64 bytes from 192.168.1.90: icmp_seq=6. time=0.203 ms
64 bytes from 192.168.1.90: icmp_seq=7. time=0.186 ms
64 bytes from 192.168.1.90: icmp_seq=8. time=0.173 ms
64 bytes from 192.168.1.90: icmp_seq=9. time=0.281 ms
64 bytes from 192.168.1.90: icmp_seq=10. time=0.268 ms
64 bytes from 192.168.1.90: icmp_seq=11. time=0.247 ms
64 bytes from 192.168.1.90: icmp_seq=12. time=0.267 ms
64 bytes from 192.168.1.90: icmp_seq=13. time=0.240 ms
64 bytes from 192.168.1.90: icmp_seq=14. time=0.257 ms

3、我查过主机的负载,诸如 mpstat ,vmstat ,iostat等,貌似都很正常,一点都不高,

4、运行 netstat -s :

TCP     tcpRtoAlgorithm     =     4     tcpRtoMin           =   400
        tcpRtoMax           = 60000     tcpMaxConn          =    -1
        tcpActiveOpens      =625995     tcpPassiveOpens     =653332
        tcpAttemptFails     =240240     tcpEstabResets      =100845
        tcpCurrEstab        =   141     tcpOutSegs          =176425096
        tcpOutDataSegs      =221848300  tcpOutDataBytes     =1164290171
        tcpRetransSegs      =8454951    tcpRetransBytes     =3622524478
        tcpOutAck           =46609139   tcpOutAckDelayed    =1921528
        tcpOutUrg           =   126     tcpOutWinUpdate     = 19405
        tcpOutWinProbe      =  5762     tcpOutControl       =2498101
        tcpOutRsts          =289327     tcpOutFastRetrans   =   112
        tcpInSegs           =187196237
        tcpInAckSegs        =108991448  tcpInAckBytes       =172433623
        tcpInDupAck         =9538040    tcpInAckUnsent      =    13
        tcpInInorderSegs    =253961330  tcpInInorderBytes   =2151919823
        tcpInUnorderSegs    =219678     tcpInUnorderBytes   =1633190326
        tcpInDupSegs        = 44673     tcpInDupBytes       =4308560
        tcpInPartDupSegs    = 16267     tcpInPartDupBytes   =9297984
        tcpInPastWinSegs    =    89     tcpInPastWinBytes   =2044903847
        tcpInWinProbe       =    11     tcpInWinUpdate      =  3902
        tcpInClosed         =  2630     tcpRttNoUpdate      =77906834
        tcpRttUpdate        =30544671   tcpTimRetrans       =2771191
        tcpTimRetransDrop   =  2133     tcpTimKeepalive     = 18977
        tcpTimKeepaliveProbe=  6773     tcpTimKeepaliveDrop =     2
        tcpListenDrop       =     0     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =2817688

IPv4    ipForwarding        =     2     ipDefaultTTL        =   255
        ipInReceives        =361884451  ipInHdrErrors       =     7
        ipInAddrErrors      =     0     ipInCksumErrs       =     0
        ipForwDatagrams     =     0     ipForwProhibits     = 12960
        ipInUnknownProtos   =     0     ipInDiscards        =    41
        ipInDelivers        =365653531  ipOutRequests       =272316826
        ipOutDiscards       =  1479     ipOutNoRoutes       =     0
        ipReasmTimeout      =    60     ipReasmReqds        =     0
        ipReasmOKs          =     0     ipReasmFails        =     0
        ipReasmDuplicates   =     0     ipReasmPartDups     =     0
        ipFragOKs           =     0     ipFragFails         =     0
        ipFragCreates       =     0     ipRoutingDiscards   =     0
        tcpInErrs           =     1     udpNoPorts          =5161846
        udpInCksumErrs      =     0     udpInOverflows      =     0
        rawipInOverflows    =     0     ipsecInSucceeded    =   426
        ipsecInFailed       =     0     ipInIPv6            =     0
        ipOutIPv6           =     0     ipOutSwitchIPv6     =     0

tcpRetransBytes  / tcpOutDataBytes 的值 大的有点离谱。

5、 solaris  mount连接 emc 上的某些逻辑卷正常,mount 某些应用系统经常使用的就不正常,很慢。

6、重起 solaris , storage 和 network 就都正常了,但过一段后,上面的问题又会出现。


已经咨询过emc的技术支持,他们认定 存储是没有问题的,觉得是 交换机和网线的问题,对这个答案不满意,我也换过网线,甚至用了直连的方式,也不行。

也咨询过 sun的厂商技术支持(现在是oracle了,blalalala),他们一口咬叮 操作系统,网卡都是没有问题的。

我的软件开发商也很强势,几乎每提供什么帮助,唉,技不如人就要被欺负阿。


我想请教大家的是,如果想优化这个系统,我应该从那里入手,是应用系统的问题?把某些资源耗光了?

还是存储或nfs的问题,请大家多多指点,我对网络了解的有限,请各位不吝赐教

先谢谢了。


作者: tangye    时间: 2012-06-18 11:35
这个问题蛮纠结的,

6、重起 solaris , storage 和 network 就都正常了,但过一段后,上面的问题又会出现。

从这点看, 能否定位到软件上?
作者: javapjl    时间: 2012-06-18 11:47
谢谢 tangye 的指点,真的很纠结

我也倾向于 定位到 应用软件上 ,但是应该从哪些方面入手查找呢,我想找到证据。比如,他把到底把哪些资源给exhaust了。

要能像oracle那样查就好了。


作者: zixing23    时间: 2012-06-18 11:59
应用的可能性大一点,我就遇到过一些应用程序,开始的时候没事,时间一长,会不断的占资源,程序本身没有写好。
作者: javapjl    时间: 2012-06-18 12:08
谢谢zixing23的指点,

可关键是应该从哪些方面入手查,是io资源或是网络缓存等?

我找不到证据就没有办法和 开发商交涉
作者: ssffzz1    时间: 2012-06-18 12:19
1、我只能告诉你怎么把网络排除掉。


“6、重起 solaris , storage 和 network 就都正常了,但过一段后,上面的问题又会出现。”

你只重启其中1个项目呢?

作者: javapjl    时间: 2012-06-18 12:25
多谢  ssffzz1,我很想知道怎么把网络排出掉,我对网络不太熟。

补充一点,solaris主机上就运行了这一个应用系统。
作者: javapjl    时间: 2012-06-18 12:27
我已经试过了,重起应用系统不管用的 ,应用系统是基于 jboss和oracle的

只有重起 solairs才可以
作者: ssffzz1    时间: 2012-06-18 13:16
绕过交换机直接接存储上。如果还是有问题,就别找网络的问题了。

另外你单独重启solaris的network实施。
作者: javapjl    时间: 2012-06-18 13:24
多谢 ssffzz1 的再次帮助

你所提到的 重启solaris的network实施  是指 : ifconfig plumb down/up 这个命令吗

我对网络不熟,请指点。
作者: javapjl    时间: 2012-06-18 14:03
如果排出了网络的原因,但为什么 tcpRetransBytes  / tcpOutDataBytes 的值 非常大,难道是我带宽有问题,

我觉得不太可能,而且这个问题不是在 应用系统 一启动就会有的,是在 运行了一段时间之后,才出现的,从

应用的角度看是 网络出的问题,发生了很多重传,一个百兆的文件都无法下载。从存储的角度看,也是网络的问题,

难道 nfs 有什么特殊的设置吗?
作者: javapjl    时间: 2012-06-18 14:39
我从其他主机通过 同一个 交换机 连接 emc 是没有问题的,甚至是连接同一存储空间都没有问题,

所以可以排出 是 网络设备 或 存储的问题

关键是 在solaris这边,还发现 其上运行 的 apache 2.2 都没有问题,客户端可以很好的访问apache.

我基本可以 确认问题 在 emc 通过 nfs mount 到 solaris 的过程出了问题,有什么方法可以检测这个问题吗,请大家还多多指教。
作者: javapjl    时间: 2012-06-18 14:48
如果我确认 是主机的问题,是不是要换个 版块了,呵呵,这可是 网络技术
作者: ssffzz1    时间: 2012-06-18 15:01
我觉着,貌似可以换板块了。
作者: 仇若涵    时间: 2012-07-08 03:42
四处看看 拿分走人




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2