Marc de Vries said:
If the server is doing nothing he wouldn't have a bought a Smart array
5300 controller for it.
You never cease to amaze me.
What has that got to do with a "busy server" and doing parallel IO?
Which is not important for those very small files at all.
Ofcourse it is. You wouldn't be making the effort if it wasn't so.
As for those 350-byte files it won't make any difference, that I will agree.
Wrong. As I have explained you time and again in the past the
transfer rate is not important for small files. Why don't you listen!
Because you are are wrong, and I proved it.
When you read thousands of files of 350 bytes size it doesn't matter
if I read them with 30MB/s transfer rate or which 300MB/s transfer
rate.
Even you shouldn't be *that* clueless. That set of files will tranfer 10
times faster when that transfer rate is aggregated by a 10-drive array.
And btw, it doesn't make one jot of difference what stripe size you
choose because those 350-byte files will never sit on more than one
stripe size, whatever you do. Even with a 2kB stripe size you still read
5 of those 350 byte files simultaniously
The time to get the file depends solely on the time that is
needed to seek and open the file.
You miss the whole point.
That takes 90% of the total time to get the file.
So what, it results in a certain (average) transfer rate.
With raid it results in n-times that (average) transfer rate.
Still has no clue about transfer rate.
only takes 10% of the time the impact of a faster transferrate is neglictable.
And it's not even a comprehensible sentence.
(rough estimates, it will be even less for 350 bytes files, but you will remember
these numbers from a few days ago when I explained it to you in detail)
You mean, when I explained it to *you*, don't you, troll?
There was a distinct *lack* of detail in *your* post and your constant con-
tradicting yourself which made it so hard to detect where you were wrong.
Exactly right.
I actually make the transferring of the small files slower by 0.00001%
Actually, it is far more complex than that. Your small files are now 64kB.
because of a lower transferrate
Some 13% lower transferrate for those 64kB files.
and then make the transfer of the total set of files faster
by 400% because I can open multiple files at once.
Right, time for some examples:
64kB files, stripe size 13kB, 5 drives Raid0, 51MB/s per drive. 12ms access time.
64kB file is forced on a full stripewidth. 13kB transfers in 13/51 = .25 ms
at an average single drive transer rate of (.25/12.25)*51MB/s= 1.1MB/s
So total average file transfer by 5 drives rate is 5*1.1MB/s is 5.5MB/s.
Now you go to a 64kB stripe size so that several small files 'supposedly' can
transfer at the same time:
64kB files, stripe size 64kB, 5 drives Raid0, 51MB/s per drive. 12ms access time.
64kB is now one stripe size. 64kB transfers in 64/51 ms = 1.25 ms.
at an average single drive transfer rate 1.25/13.25 *51 MB/s = 4.8 MB/s
That is 13% slower, that is 13,000 times your 0.00001%
Five 64kb files read at an aggregated average transfer rate of 24MB/s
A whopping 335% improvement over striping a single file.
Now for 39kB files.
In the 13kB stripe size example the single drive transfer rate was 1.1 MB/s. The
single file transfers now at 3.3MB/s. Reading several files at once get's you ~5.5MB/s.
In the 64kB stripe size example the transfer rate is (.75/12.75)*51MB/s = 3MB/s
Reading 5 files at once get's you 15MB/s. Still a 170% improvement.
Now for 26kB files.
In the 13kB stripe size example the single drive transfer rate was 1.1 MB/s.
The file transfers with 2.2MB/s Reading several files at once get's you ~5.5MB/s
In the 64kB stripe size example the file transfer rate is (.5/12.5)*51MB/s = 2MB/s
Reading several files at once get's you 10 MB/s. That is now only a mere 80% improvement.
Now for 13kB files.
In the 13kB stripe size example the single drive transfer rate was 1.1 MB/s.
Reading several files at once get's you 5.5MB/s
In the 64kB stripe size example the single file transfer rate is still 1.1 MB/s.
Reading several files at once get's you still only 5.5MB/s.
No improvement at all anymore. Vanished. Foetsie.
Your improvement only takes place for files in between the stripe
size and 1/n-1 the stripe size. Anything below that has no effect.
The 350-byte files fall well below that.
On a server that is only opening 1 file at a time. (not a realistic
scnenario) I am slowing down the opening of that file by 0.00001%
13%.
So who cares about that? (well you do obviously, but anyone actually
using that server in real life server won't)
How about you actually start to listen to what I explain to you and
LEARN from it?
I finally did, and what did I discover? That you are full of shit,
exactly as I had anticipated. Yes, I learned a great deal from you.
Actually, I took that as a general comment, not necessarily OP's 4kB
clusters and 350-byte files.
How about you start reading the thread again.
We are talking about files that are about 350 bytes in size!
In theory we are talking about small files up to 64kB (the stripesize)
Theoretically it can be in 16 fragments with a 4kB cluster size
While fragmenting is bad when it is on the same drive it can be beneficial
if the fragments are on seperate drives in an array.
The smallest cluster size that NTFS supports is already much bigger
then that: 512 bytes. So how are these files going to be fragmented by
that clustersize?
Those obviously not.
The ones bigger than 4kB and upto 64kB obviously can.