sfcredfox
Patron
- Joined
- Aug 26, 2014
- Messages
- 340
Experts,
I'd like to have you review my understanding/planning for SLOG size and clarify transaction group sizing:
System:
X8DTN+ / 2x Intel 5520 2.4Ghz / 72GB RAM ECC
IBM M1015
Pool1 -> 20x 146GB 3G 10K SAS (used for VMware datastore, SYNC heavy)
Pool2 -> 8x 2TB 7200 SATA2 (media content, not likely heavy)
2x Intel Pro 1000 PT/MT dual port cards (4 gigabit ports for iSCSI)
edit: Internal Intel Pro 1000 dual port (for management and CIFS/SMB share traffic)
SLOG Sizing
To setup my SLOG, I found these posts to underprovision my SSD for SLOG:
https://forums.freenas.org/index.php?threads/how-to-add-an-slog.16766/
https://forums.freenas.org/index.php?threads/how-to-partition-zil-ssd-drive-to-underprovision.11824/
Based on guidance, I should plan enough size for two transaction groups.
Having 72GB of RAM, 1/8 of it could be used for a transaction group.
This means my transaction groups should be 9GBs? (72GB*.125=9)
So if I want to hold two of them, that would be a total of 18GB, meaning if I create the partition for 20GB, it should hold two txgs?
-Or-
Should it be planned based on time? Should I plan for each txg being closed after the 5 seconds elapses?
With four ports for iSCSI (4gbps), that could be roughly 500 megabytes per second times 5? (500MBpsx5=2.5GBs of data)
This would mean I need to store only about 10GB of data?
My first thought is just to go with the larger number since 20Gb is still nothing, I just want to know if I understand this correctly so I don't plan on doing something stupid for my SYNC writes.
Transaction Group Sizing
https://forums.freenas.org/index.ph...nto-slog-zil-with-zfs-on-freenas.13633/page-5
I have seen some posts where people are talking about the transaction group (txg) getting too large on systems with large quantities of RAM for your underlying storage to commit it fast enough before the second txg closes, causing the system to pause IO.
I calculated above (hopefully correctly) my transaction groups could be as large as 9GB (72GB*.125)
I don't know how having two separate pools fits into this, maybe the transaction group holds data for both?
This add complication because the amount of data for each pool would vary based on use, and amount of data destine for the slower pool etc, etc, etc.
If one of the pools writes about 500MBps, it would take 18 seconds to write 9GB roughly? Seek, random vs sequential, fragmentation, etc, etc dependent?
Question out of this
Many times, people say don't tune anything because the results are insignificant and it complicates your life. Is this a case where I should actually consider limiting the txg side down so it won't get any bigger than the amount of time it would take to burn the data to down spindles?
If the answer is actually yes, would I need to limit the txg to about 2.5GB (500MBps x 5seconds)?
I'd like to have you review my understanding/planning for SLOG size and clarify transaction group sizing:
System:
X8DTN+ / 2x Intel 5520 2.4Ghz / 72GB RAM ECC
IBM M1015
Pool1 -> 20x 146GB 3G 10K SAS (used for VMware datastore, SYNC heavy)
Pool2 -> 8x 2TB 7200 SATA2 (media content, not likely heavy)
2x Intel Pro 1000 PT/MT dual port cards (4 gigabit ports for iSCSI)
edit: Internal Intel Pro 1000 dual port (for management and CIFS/SMB share traffic)
SLOG Sizing
To setup my SLOG, I found these posts to underprovision my SSD for SLOG:
https://forums.freenas.org/index.php?threads/how-to-add-an-slog.16766/
https://forums.freenas.org/index.php?threads/how-to-partition-zil-ssd-drive-to-underprovision.11824/
Based on guidance, I should plan enough size for two transaction groups.
Having 72GB of RAM, 1/8 of it could be used for a transaction group.
This means my transaction groups should be 9GBs? (72GB*.125=9)
So if I want to hold two of them, that would be a total of 18GB, meaning if I create the partition for 20GB, it should hold two txgs?
-Or-
Should it be planned based on time? Should I plan for each txg being closed after the 5 seconds elapses?
With four ports for iSCSI (4gbps), that could be roughly 500 megabytes per second times 5? (500MBpsx5=2.5GBs of data)
This would mean I need to store only about 10GB of data?
My first thought is just to go with the larger number since 20Gb is still nothing, I just want to know if I understand this correctly so I don't plan on doing something stupid for my SYNC writes.
Transaction Group Sizing
https://forums.freenas.org/index.ph...nto-slog-zil-with-zfs-on-freenas.13633/page-5
I have seen some posts where people are talking about the transaction group (txg) getting too large on systems with large quantities of RAM for your underlying storage to commit it fast enough before the second txg closes, causing the system to pause IO.
I calculated above (hopefully correctly) my transaction groups could be as large as 9GB (72GB*.125)
I don't know how having two separate pools fits into this, maybe the transaction group holds data for both?
This add complication because the amount of data for each pool would vary based on use, and amount of data destine for the slower pool etc, etc, etc.
If one of the pools writes about 500MBps, it would take 18 seconds to write 9GB roughly? Seek, random vs sequential, fragmentation, etc, etc dependent?
Question out of this
Many times, people say don't tune anything because the results are insignificant and it complicates your life. Is this a case where I should actually consider limiting the txg side down so it won't get any bigger than the amount of time it would take to burn the data to down spindles?
If the answer is actually yes, would I need to limit the txg to about 2.5GB (500MBps x 5seconds)?
Last edited: