I know the L2ARC (cache) was mentioned before, but a little detail on why adding an L2ARC may actually hurt performance.
The ARC resides in main memory, which is 2nd only to onboard CPU cache memory (L1,L2,L3) in terms of speed.
The L2ARC resides on a drive and will be slower than ARC.
For each entry in the L2ARC, some space is allocated in the ARC to point to it. This reduces the effective size of the ARC.
Also note that the L2ARC is empty at boot and is populated as the system reads data out of the zpools. So until the L2ARC 'heats up' it will be providing almost no benefit. Large systems where the L2ARC provides substantial read acceleration have been known to script reading all the data the L2ARC is intended to cache, this script is run at boot time and pre-loads the L2ARC.
The ARC resides in main memory, which is 2nd only to onboard CPU cache memory (L1,L2,L3) in terms of speed.
The L2ARC resides on a drive and will be slower than ARC.
For each entry in the L2ARC, some space is allocated in the ARC to point to it. This reduces the effective size of the ARC.
Also note that the L2ARC is empty at boot and is populated as the system reads data out of the zpools. So until the L2ARC 'heats up' it will be providing almost no benefit. Large systems where the L2ARC provides substantial read acceleration have been known to script reading all the data the L2ARC is intended to cache, this script is run at boot time and pre-loads the L2ARC.