Regarding configuration of kernel parameter
The parameters are all prefixed according to which part of the system  they affect. fs = filesystem, net = networking etc.

kernel.shmmni = 4096 This sets the system wide maximum number of shared memory segments. At a high level, a share memory segment is a "piece" of memory that multiple processes can all attatch to at the same time. You can view all current shared memory segments on a Linux box using the command ipcs -m.

kernel.sem = 250 32000 100 128 configures semaphores. A semaphore is best described as: 


  A value in a designated place in operating system (or kernel) storage
  that each process can check and then change. Depending on the value
  that is found, the process can use the resource or will find that it
  is already in use and must wait for some period before trying again.


This link 
 explains how semaphores are used &amp; what the 4 different values actually set.

fs.file-max = 6815744 sets the maximum number of files that can be open systemwide at any given point in time. Once the limit has been reached, trying to open another file will fail. 

fs.aio-max-nr = 1048576 is (simplified for the sake of this answer) the maximum number of concurrent file read/write operations that can be in progress at any point in time.

net.ipv4.ip_local_port_range = 9000 65500 is the IP port range used for outgoing connections. So when a process opens a connection to the outside world, it'll use a port between 9000 and 65500. This explains what ports are. 

The following are networking parameters, and basically control how much network data can be in flight at any point in time. 

net.core.rmem_default = 262144 is the default OS receive buffer size for all types of connections.

net.core.rmem_max = 4194304 is the maximum OS receive buffer size for all types of connections.

net.core.wmem_default = 262144 is the default OS send buffer size for all types of connections.

net.core.wmem_max = 1048576 is the maximum OS send buffer size for all types of connections.