Audit & Tune Deliverables The Initial Audit is a way for CMD to become familiar with a Client's environment. It provides a thorough overview of the environment and documents best practices for the PostgreSQL Environment. Should the Client decide that our recommendations are proper for their environment, CMD will happily make the documented changes during business hours at no extra charge [1]. Page 1 of 5
PostgreSQL Version We insure you are running the latest stable release within the major release operating Maintenance regimen Are you maintaining the database correctly? What about bloat? Are planner statistics updated regularly? SCM postgresql.conf Backups If possible we revision control your postgresql.conf to insure understanding of the file during changes and help them become documented. Do you have backups? How are they run? Are you following best practices? Resources (Memory, Hard Disk) How much memory does the machine have? Are your hard disks optimally configured for a PostgreSQL environment? Optimize: Caching Planner Is PostgreSQL configured to cache appropriately? Is PostgreSQL aware of the total available cache? Is PostgreSQL optimized for the cost of the data and queries you are running? Maintenance Ensure aggressive but appropriate maintenance is being run? Writer processes Are you making appropriate use of writer tunable that help alleviate IO bottlenecks and increase performance? Page 2 of 5
Operating System CPU architecture Are you using the best architecture for PostgreSQL OS architecture Is your operating system taking full advantage of the architecture? PostgreSQL architecture Is PostgreSQL taking full advantage of the architecture? SCM sysctl.conf If possible we revision control your sysctl.conf to insure understanding of the file during changes and help them become documented. File-systems Are you using the best file-system available for PostgreSQL (Linux)? Optimize Kernel parameters Are your kernel parameters optimized for proper PostgreSQL usage? Scheduler (Linux) Are you using the appropriate kernel scheduler for the workload? Log maintenance Are logs maintained? Are they rotated? What are you logging? Logging configuration Change configuration to be the least intrusive but highly informative for the business requirements the customer may have. Page 3 of 5
Hardware RAID controller Are you using a RAID controller known to provide high performance and reliability? BBU Are you running an appropriate controller with battery backup? RAID level Are you running an appropriate RAID level for PostgreSQL? Number of spindles How many spindles (hard disks) are you running? Is it appropriate for the performance you are looking for? Make best practice recommendations in regards to the number of spindles. SCSI/SATA/SAS/SAN Make best practice recommendations in regards to the type of hard drive technology and interconnects you are using. IO performance How is the systems IO performance? Do you have accept level of IO wait? Compare against previous findings with writer processes. CPU Utilization Are your CPUs over taxed? Evaluate and provide information on best practices to reduce CPU load. Bottlenecks What bottlenecks are present with the current CPUs? Cache? Can they be upgraded in socket? How do the bottlenecks correlate with other findings including IO and application usage? Optimize: Read ahead Are you using appropriate settings for IO readadhead? Are the settings reboot safe? Check on network performance Are you overloading your network interface? Page 4 of 5
Application Interface Number of connections Are you using pooling? If not, is it adversely affecting CPU performance? Network interfaces and connections they provide Document your network interfaces and purposes (if multiple) Application Is the application doing something obviously bad for performance, security, or stability? Look for long running queries Are transactions being left IDLE? Is the system thrashing on IO or CPU? Is there something obviously unsafe happening? Database System Security Network security (host) Ensure a base level of appropriate operating system level security HBA Ensure a base level of appropriate PostgreSQL connectivity security 1. Changes refer to file configuration changes only Page 5 of 5