In the buffer pool data is cached. If it is of small size, your disk will be used more. Keep this one large to avoid MySQL going to disk again and again. The typical size I see at my clients’ place is anywhere from 6 to 10 GB.
You can easily avoid too many connection errors if you keep this large enough. However, if you keep it too large than what your server can handle, you will start seeing performance problems again. It is very critical to keep this large enough so it can handle your typical workload and accordingly you should add more resources. I have often changed this first and later on adjusted resources for my clients.
Everyone knows that if you keep the size of this set very low or high, your performance will be terrible. However, I have seen lots of people ignoring this setting. I usually start tuning MySQL by looking at this setting and keep it at 0. This means this setting is disabled and I use other methods to tune my queries. I usually prefer to tune my indexes over this method.
This setting controls how data and logs are flushed to the disk from memory. I usually keep it O_DIRECT to avoid double buffering. I have experienced that double buffering usually reduces the performance of the server.
The settings I have mentioned above are related to MySQL Performance and they can be changed from the config file. You can find the MySQL config file at the location here in Linux: /etc/mysql/my.conf
However, before you change any settings in production, I strongly suggest that you try them in your dev system. It is quite possible that your experience is different from my experience and you need a different value for your server.
If you liked this blog, please do not forget to subscribe to my YouTube Channel – SQL in Sixty Seconds.
Reference: Pinal Dave (http://blog.SQLAuthority.com)