sfcredfox
Patron
- Joined
- Aug 26, 2014
- Messages
- 340
Greetings,
I'm looking for a comprehensive guide to properly analyzing the performance of a FreeNAS system. Maybe it's already out there and I can't find it.
Please read whole novel before you reply with 'You didn't look hard enough, I knew exactly what to search for...'
Questions:
Are there any posts I've missed that give a start to finish analysis that explains the process, what commands to use, and how to use them (Not a post where a few commands were used, but with no explanation of why or what they mean, see background)?
I am looking for things like:
The overall process (How to properly test, not get meaningless numbers)?
Reason why commands are used, and how to use them in different scenarios?
What their results actually mean (since so many people say some results are artificial)?
What commands are used simultaneously and why (E.G. - avoid using ARC when you're trying to test disk)?
If there is no already created guide for this, can someone compose a response that would teach someone from start to finish how you would like to see them conduct a performance review?
Background / Further Discussion
There are a ton of forum posts where people talk about their specific performance issue, and some tests they did to show some metrics for some reason, but its hard to understand how to apply that if you don't know what they are supposed to be doing and showing.
http://forums.freenas.org/index.php?threads/write-performance-issues-mid-level-zfs-setup.13372/
https://wiki.freebsd.org/ZFSTuningGuide (this was a good start)
http://forums.freenas.org/index.php?threads/some-insights-into-slog-zil-with-zfs-on-freenas.13633/ (tremendously helpful to understanding differences)
After reviewing the above references, manual, the noob PPT guide, and dozens of posts, I still don't have a great grasp on where to start for conducting a true performance analysis. ARC plays a part, so if you improperly use a command like DD for example, are you truly testing disk performance or your ability to write some stuff into memory? Maybe it looks really good because the file was too small to fill the buffer/group/forget the name that gets written to ZIL and pool. These examples may be totally wrong, but that's the point of asking for help.
I have seen many commands used for various reasons: DD,xDD,ioStat,ArcStat,output files, etc. The man pages give a basic descritpion and a ton of variables/inputs/etc, but for a non FreeBSD person, it's like telling a person to use ifconfig to setup their network interface, but not knowing it needs an IP address, subnet mask, DF, etc, and maybe not even knowing what those are. Found out that DD can wipe out data too when doing it to dev of=/dev/da1. Oops.
Further questions:
How do you decide if numbers are good or bad?
How do you fully decide if you need a SLOG? What should you be doing/seeing/etc?
How do you performance test a SLOG (Two mirrored SSDs Vs a RAID1+0 spindle disk, mentioned in JGreco's post)?
How do you know
Google/Forums only gets me so far since I don't know what I don't know.
This information would also be useful in being able to determine if you need a SLOG for the ZIL or not. Many posts, and the noob guide say if you don't know if you need one, you probably don't. How do you know if you do?
iSCSI is all sync heavy and will tax the system much harder than not, so do you automatically need to look at a SLOG with iSCSI? How do you test/review a SLOGs performance? Same questions for ARC and L2ARC. I don't have RAM maxed out, so I won't even be thinking about it, but how do you review and interpret the performance of ARC?
Again, this might be out there already, but google and forum searching has only gotten me more questions. I need some guidence/mentoring.
I'm looking for a comprehensive guide to properly analyzing the performance of a FreeNAS system. Maybe it's already out there and I can't find it.
Please read whole novel before you reply with 'You didn't look hard enough, I knew exactly what to search for...'
Questions:
Are there any posts I've missed that give a start to finish analysis that explains the process, what commands to use, and how to use them (Not a post where a few commands were used, but with no explanation of why or what they mean, see background)?
I am looking for things like:
The overall process (How to properly test, not get meaningless numbers)?
Reason why commands are used, and how to use them in different scenarios?
What their results actually mean (since so many people say some results are artificial)?
What commands are used simultaneously and why (E.G. - avoid using ARC when you're trying to test disk)?
If there is no already created guide for this, can someone compose a response that would teach someone from start to finish how you would like to see them conduct a performance review?
Background / Further Discussion
There are a ton of forum posts where people talk about their specific performance issue, and some tests they did to show some metrics for some reason, but its hard to understand how to apply that if you don't know what they are supposed to be doing and showing.
http://forums.freenas.org/index.php?threads/write-performance-issues-mid-level-zfs-setup.13372/
https://wiki.freebsd.org/ZFSTuningGuide (this was a good start)
http://forums.freenas.org/index.php?threads/some-insights-into-slog-zil-with-zfs-on-freenas.13633/ (tremendously helpful to understanding differences)
After reviewing the above references, manual, the noob PPT guide, and dozens of posts, I still don't have a great grasp on where to start for conducting a true performance analysis. ARC plays a part, so if you improperly use a command like DD for example, are you truly testing disk performance or your ability to write some stuff into memory? Maybe it looks really good because the file was too small to fill the buffer/group/forget the name that gets written to ZIL and pool. These examples may be totally wrong, but that's the point of asking for help.
I have seen many commands used for various reasons: DD,xDD,ioStat,ArcStat,output files, etc. The man pages give a basic descritpion and a ton of variables/inputs/etc, but for a non FreeBSD person, it's like telling a person to use ifconfig to setup their network interface, but not knowing it needs an IP address, subnet mask, DF, etc, and maybe not even knowing what those are. Found out that DD can wipe out data too when doing it to dev of=/dev/da1. Oops.
Further questions:
How do you decide if numbers are good or bad?
How do you fully decide if you need a SLOG? What should you be doing/seeing/etc?
How do you performance test a SLOG (Two mirrored SSDs Vs a RAID1+0 spindle disk, mentioned in JGreco's post)?
How do you know
Google/Forums only gets me so far since I don't know what I don't know.
This information would also be useful in being able to determine if you need a SLOG for the ZIL or not. Many posts, and the noob guide say if you don't know if you need one, you probably don't. How do you know if you do?
iSCSI is all sync heavy and will tax the system much harder than not, so do you automatically need to look at a SLOG with iSCSI? How do you test/review a SLOGs performance? Same questions for ARC and L2ARC. I don't have RAM maxed out, so I won't even be thinking about it, but how do you review and interpret the performance of ARC?
Again, this might be out there already, but google and forum searching has only gotten me more questions. I need some guidence/mentoring.