Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Performance degradation over time on VAX...



After some thought, I realized that my data copy overhead was not a good one.

When I ran "dd if=/dev/rsd0c of=/dev/null bs=1m count=200" on the vs4k60,
the times were consistent from 4.0.1 to 11rc5 (all around 76 seconds).

So I asked this question on Google:

  Why does the Unix dd command run slower with a small block size?

Here is a portion of the response:

  1. High System Call (Syscall) Overhead

  Every time dd reads or writes a block of data, it must execute a
  read() and a write() system call.

  Context Switching: Each system call forces the CPU to switch context
  from user space to kernel space and back.

  The Cost: If you transfer a 10 GB file using the default 512-byte
  block size, dd must perform roughly 40 million system calls. If you
  use bs=4M, it requires only 2,500 system calls. Minimizing this
  context-switching overhead dramatically increases throughput.

I see that "lmbench" includes several tests related to system call
overhead as well as context switching.  So that looks like a good
tool to try (plus it covers a broad range of topics).

Thank you for the suggestion!


Home | Main Index | Thread Index | Old Index