Hi Everyone,
We are a new user of Invision, and have setup a private (no guest access) community that will serve a few thousand people.
I have been doing Apache Bench testing while trying to optimise our configuration. What I have noticed is that when I setup Redis (locally on the server) that our benchmark tests actually were consistently slower. Now I did expect there to be overhead of adding another component and caching calls into the mix, but my assumption was that the benefit of caching would surely outweigh this overhead.
This makes me think - is there a trick to getting Redis to work correctly? Have others found if there's even a benefit to running caching for a private community? I can see some of the caching settings are geared towards reducing the load of guests - maybe since we won't have any guests then the majority of caching won't serve any benefit to us?
The environment runs Ubuntu Linux with 16 GB RAM and 4 virtual CPUs. The environment is using Nginx with PHP 7.4 FPM. What I saw in my testing was that without caching, we were bottlenecked by the 4x CPU cores, and after enabling Redis we were _still_ bottle necked by CPU of the FPM processes, with the addition of Redis now using some of that CPU but not offering any real benefit, hence the slowdown.
For what it's worth, I did confirm Redis was storing _some_ data, though not much (see below). Any advice on how to get some benefit from caching in a private community would be appreciated.
When doing my benchmark I was doing a test against the front page of the forum, with a summary of all the forum posts on it figuring this was a reasonably intensive workload to benchmark against (I built a request using Chrome dev tools to make sure my AB requests would be authenticated).
127.0.0.1:6379> KEYS *
1) "XXXXXXXX_redisStore_lastAccess"
2) "XXXXXXXX_YYYYYYYYYYY_str__modules"
3) "XXXXXXXX_redisKey_store"
4) "XXXXXXXX_YYYYYYYYYYY_str__bannedIpAddresses"
5) "XXXXXXXX_YYYYYYYYYYY_str__javascript_file_map"
6) "XXXXXXXX_YYYYYYYYYYY_str__settings"
7) "XXXXXXXX_YYYYYYYYYYY_str__themes"
8) "XXXXXXXX_YYYYYYYYYYY_str__javascript_map"
9) "XXXXXXXX_YYYYYYYYYYY_str__languages"
10) "XXXXXXXX_YYYYYYYYYYY_str__acpNotifications"
11) "XXXXXXXX_YYYYYYYYYYY_str__applications"
12) "XXXXXXXX_YYYYYYYYYYY_str__furl_configuration"
13) "XXXXXXXX_YYYYYYYYYYY_str__rssFeeds"
14) "XXXXXXXX_YYYYYYYYYYY_str__cms_databases"
15) "XXXXXXXX_YYYYYYYYYYY_str__groups"
16) "XXXXXXXX_YYYYYYYYYYY_str__storageConfigurations"
17) "XXXXXXXX_YYYYYYYYYYY_str__cms_fieldids_1"
127.0.0.1:6379> quit
Thanks,
Rhys.