tl;dr - What are the proper readahead
values for the different EBS PIOPS volumes in a RAID 10 array ?
What about the RAID 10 physical and logical volumes themselves ?
What about the chunk size of the mdadm
call and blocksize of the dd
call?
The long story:
I'm using MongoDB Cloud (previously MMS) to manage my replica set.
I have written the following script that launches an instance (or more) and prepares them for the installation of the MMS automation agent, including setting up RAID 10, setting the readahead, disabling huge pages, formatting with xfs, setting up munin, etc.
You can see the script here - https://gist.github.com/dorongutman/01d8daf0154621e4645d
Most of the documentation and community information out there refers to the values of the readahead for a single EBS volume (usually magnetic). What I did not find are the suggested readahead values for multiple EBS PIOPS volumes, used in a RAID 10 setup. There’s also the chunk size of the RAID creation and block size when using dd.
I want to create a RAID 10 from 4 EBS PIOPS volumes, each with 50GB and 250 IOPS (which should bring me a single 100GB volume with 500 IOPS once RAID'ed, right ?), and use XFS on the RAID'ed volume for the mongo data folder. I have the following questions:
- What should be the Readahead value of each of the different volumes that comprise the RAID 10 ? (/dev/xvdw to /dev/xvdz)
- What should be the Readahead for the RAID 10 device itself ? (both physical and logical volumes - /dev/md0 and /dev/vg0/data
- The instance that was created by mongodb cloud (in my initial tests of MMS) had the following values in /etc/security/limits.d/99-mongodb-mms-automation-agent.conf:
mongod - fsize unlimited mongod - cpu unlimited mongod - as unlimited mongod - nofile 64000 mongod - rss unlimited mongod - nproc 64000
Are the above configuration good as well (RAID 10 over 4 EBS PIOPS volumes) ?
I would love to get your general feedback on the script as well - is there something I missed? Is there something that could be setup/configured better ?
I've played with MongoDB Cloud quite a lot and while it offers the option to create the relevant instances - all from inside the mongodb cloud dashboard - it is limited in regards to the production best practices you publish (RAID 10 array, private subnet, replica set configuration, etc.).
0 Answers