Samba 服务器性能问题

Samba 服务器性能问题

我最近在一台 ubuntu 桌面上设置了一个 samba 服务器,为另外四台 ubuntu 桌面提供共享目录。它们位于千兆位 LAN 中。它的性能很差,我感觉磁盘和网络都没有饱和。我怀疑我一定可以做一些调整。

Samba 服务器为几十个包含大文件(每个大约 100MB)的目录提供服务。然后我在每台客户端机器上运行四个作业,密集读取这些文件。所以总共有 16 个作业。这些作业的 CPU 使用率应该接近 100%。但是,使用此 Samba 设置,它们的 CPU 使用率非常突发,而且在许多情况下非常低。以下是来自服务器的 iostat -x 5 输出。

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               5.60     1.20  148.00    0.60 19532.00     7.20   262.98     9.74   65.91   65.71  113.33   6.73 100.00
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.60    0.00    3.20   23.40    0.00   72.80
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               4.40     2.80  165.00    0.60 21676.00    13.60   261.95     9.24   56.11   55.98   92.00   6.04 100.00
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.30    0.00    2.51   24.71    0.00   72.48
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               3.40     1.80  149.40    0.40 19120.00     8.80   255.39     9.22   61.09   60.92  128.00   6.68 100.00
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.30    0.00    2.34   27.67    0.00   69.69
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               3.00     0.00  135.60    0.00 17572.80     0.00   259.19    12.07   86.05   86.05    0.00   7.37 100.00
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.55    0.00    2.81   22.01    0.00   74.64
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00  145.40    0.00 18588.00     0.00   255.68    12.12   85.74   85.74    0.00   6.88 100.08
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    2.79   22.49    0.00   74.46
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00  134.20    0.00 17074.40     0.00   254.46    12.42   92.88   92.88    0.00   7.45 100.00
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    2.77   25.21    0.00   71.51
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               1.20     0.00  141.20    0.00 18042.40     0.00   255.56    12.12   85.68   85.68    0.00   7.08 100.00
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    2.89   22.40    0.00   74.46

因此磁盘读取吞吐量仅不到 20MB/s。我认为磁盘至少可以实现 50-60MB/s 的读取吞吐量。我该如何进一步调试?这可能是网络问题吗?或者是 samba 设置问题?

编辑:我注意到 iostat 中的 %util 数字已经是 100%,而 %iowait 超过 20%。所以这意味着磁盘已经饱和?但只实现了 20MB/s 的读取吞吐量?我该如何解释 iostat 数字并正确优化我的系统?

答案1

我认为这更多的是一个预期问题,而不是实际问题。假设这台台式机上有一块消费级 SATA 硬盘,同时运行 16 个作业,我认为 20MB/s 的速度是相当不错的。

查看 iostat 输出,您可以看到大约有 150 个读取 IOP,这就是您从 7200 RPM SATA 驱动器中获得的全部数据。

相关内容