速度较慢的文件服务器,其 CPU 和 CPL 值相互矛盾

速度较慢的文件服务器,其 CPU 和 CPL 值相互矛盾

我有一个文件服务器(centos 6.3),今天早些时候突然变慢了。挂载它的集群可以毫无问题地访问其他 NFS 挂载,但访问这个挂载的速度非常慢。通过 ssh 登录也非常慢(而且 idrac 虚拟控制台没有信号 - 可能是另一个问题)。

在服务器上运行 iostat -x 5 没有显示任何问题。'await' 大多为 0,有时高达 2,而 %util 大多为 0,有时高达 3,很少为 5。据我所知,这是否表示没有明显的 io 问题?

在服务器上运行 atop 时没有出现任何异常,只是 CPL 平均值在 14-17 范围内,而在我查看的 30 分钟左右的时间里,CPU 利用率始终在 3200% 中的 100-200% 之间。atop 输出如下。

关于 CPL 的一个问题可能与此有关:系统是超线程的,因此当有 16 个物理核心 (2x8) 时显示 32 个 CPU。CPL 仅适用于物理核心还是也适用于超线程虚拟核心(如果是这个术语的话)?如果是后者,则 CPL 为 14-17 应该没问题,但前者则不行。但无论哪种情况,我都不明白为什么 CPL 看起来与 CPU 如此不同。

感谢您的任何想法。

PRC |  sys   10.70s  |  user   0.18s  |  #proc   2846 |  #tslpu     9  |  #zombie    0  |  #exit      6  |
CPU |  sys     107%  |  user      2%  |  irq       0% |  idle   3094%  |  wait      0%  |  curscal   ?%  |
CPL |  avg1   14.86  |  avg5   17.50  |  avg15  17.52 |  csw     4265  |  intr   31460  |  numcpu    32  |
MEM |  tot    31.3G  |  free  128.6M  |  cache  25.2G |  dirty  94.9M  |  buff  165.6M  |  slab    2.1G  |
SWP |  tot     1.0G  |  free  960.8M  |               |                |  vmcom   5.4G  |  vmlim  16.6G  |
LVM |  rt-lv_export  |  busy      0%  |  read       0 |  write     35  |  MBw/s   0.02  |  avio 0.00 ms  |
DSK |           sda  |  busy      0%  |  read       0 |  write     10  |  MBw/s   0.01  |  avio 0.30 ms  |
DSK |           sdb  |  busy      0%  |  read       0 |  write     25  |  MBw/s   0.02  |  avio 0.00 ms  |
DSK |           sdc  |  busy      0%  |  read       0 |  write      9  |  MBw/s   0.00  |  avio 0.00 ms  |
NET |  transport     |  tcpi      25  |  tcpo      22 |  udpi       0  |  udpo       0  |  tcpao      0  |
NET |  network       |  ipi       37  |  ipo       27 |  ipfrw      0  |  deliv     25  |  icmpo      0  |
NET |  pem3      0%  |  pcki     299  |  pcko       0 |  si   16 Kbps  |  so    0 Kbps  |  erro       0  |
NET |  pem1  0%  |  pcki      57  |  pcko      12 |  si    3 Kbps  |  so    1 Kbps  |  erro       0  |
NET |  em1     ----  |  pcki      57  |  pcko      12 |  si    2 Kbps  |  so    1 Kbps  |  erro       0  |

  PID   TID RUID      THR  SYSCPU  USRCPU  VGROW  RGROW   RDDSK  WRDSK ST EXC S CPUNR  CPU CMD         1/3
20539     - root        1   1.09s   0.00s     0K     0K      0K     0K --   - D     7  11% nfsd
20544     - root        1   1.01s   0.00s     0K     0K      0K     0K --   - D     1  10% nfsd
  356     - root        1   0.99s   0.00s     0K     0K      0K     0K --   - D    25  10% kswapd1
20545     - root        1   0.93s   0.00s     0K     0K      0K     0K --   - R     2   9% nfsd
20546     - root        1   0.93s   0.00s     0K     0K      0K     0K --   - D     4   9% nfsd
  355     - root        1   0.90s   0.00s     0K     0K      0K     0K --   - R    22   9% kswapd0
20540     - root        1   0.87s   0.00s     0K     0K      0K     0K --   - D    26   9% nfsd
20541     - root        1   0.86s   0.00s     0K     0K      0K     0K --   - D    30   9% nfsd
 1170     - root        1   0.84s   0.00s     0K     0K      0K     0K --   - D     6   8% cook-news
20542     - root        1   0.83s   0.00s     0K     0K      0K     0K --   - D    22   8% nfsd
20543     - root        1   0.83s   0.00s     0K     0K      0K     0K --   - D     6   8% nfsd
  536     - root        1   0.40s   0.14s     0K     0K      0K     0K --   - R    19   5% atop
 1650     - root        0   0.16s   0.04s     0K     0K       -      - NE   1 E     -   2% <ps>
 5798     - root       47   0.01s   0.00s     0K     0K      0K     4K --   - S    13   0% dsm_om_connsvc
 4944     - root        1   0.01s   0.00s     0K     0K      0K     0K --   - S    13   0% snmpd
  138     - root        1   0.01s   0.00s     0K     0K      0K     0K --   - S     7   0% events/7
  139     

答案1

CPL 是负载平均值,反映可在 CPU 上运行的线程数(即运行队列的一部分)或等待磁盘 I/O 的线程数。您似乎有大约 16 个进程似乎在等待磁盘。这就是您看到 CPU 大部分处于空闲状态的原因,它除了等待磁盘之外没有其他事情可做。

我会检查这个系统的磁盘,检查 dmesg 中的磁盘错误、smartctl 属性和日志,还会运行一个简短的自检。我认为这可能是你的问题,因为磁盘读写速度非常低。

也许突袭正在以降级模式运行或正在重建。

相关内容