I am currently in the process of testing aerospike (we are currently using redis) to potentially become out main KV store.
The biggest issues with all stores like this and PHP-FPM is of course the lack of being able to connection pool - however what would key tuning / performance recommendations be while using php-fpm?
The following is what I have currently:
- Two name spaces
- First namespace is in memory and for testing has been assigned 110 GB of memory
- Second namespace is in memory / disk persistent which is allocated 10 GB of memory and 48 GB of disk (SSD)
- During testing, I disable the firewall for the aerospike server (as with our load we will start to drop packets)
- We do not seem to have an issue with FD limits as the ulimit was set to 1m.
My test consists of giving a percentage of traffic the ability to make a single aerospike connection / write / close connection. This has shown that we can get to ~13k client connections and then it started backing up and begins to struggle sitting around ~9k client connections.
Our aerospike server does not even go above 2% load while the test is being run so we presume that is non-issue, but it would appear we have a networking bottleneck.
If I am using PHP-FPM and I set my pm.max_requests to a higher number, and use persistent connections with aerospike - will the connection then stay alive for the life of the process cycle (e.g. pm.max_requests = 500 -> serves 500 requests before closing)?