There shouldn't be any performance difference beyond 2-3 more file loads. Maybe if opcache is incorrectly configured? Try restarting php-fpm/apache.My sites appear slower with reads since the 2.15.0 update. Anyone else experiencing this?
?_debug=1
to see if that is reporting anything obviously wrong.Without seeing the error, this is impossible to debug. You'll likely need to extract it from the webserver logs or enable XF's debug mode so XF can dump the stack trace.My forum crashed immediately on upgrade from 2.14.0 to 2.15.0 - any ideas?
View attachment 290942
I had to;
... to get the site back, to then remove 2.15.0, and I installed 2.14.0 to get it back.
Without seeing the error, this is impossible to debug. You'll likely need to extract it from the webserver logs or enable XF's debug mode so XF can dump the stack trace.
If you deleted the old files, and then uploaded new ones; do not do that. That is absolutely not supported.
(It shouldn't make a difference in this case, but I'm not doing to support that upgrade process)
Will be fixed in the next version, which will be out after some more testing. The fix till then is to remove the? I didn't - I upgraded as you'd expect/normal - as I have for many years with this add-on.
The last upgrade, immediately crashed the forum.
3,000+ server error logs - mainly;
View attachment 290944
$config['cache']['config]['redis']
key, or stay on v2.14.xThis is unrelated to my add-on, but could be an artifact of the caching layer being broken when templating was invoked.
- Fix "call to a member function setRedisConnector() on null" when using a non-default advanced configuration option
redis-cli FLUSHDB
- Display maximum memory and maximum memory policy in admincp redis status information block for troubleshooting purposes
I seeThe HA support currently requires the use of redis sentinel to find replicas. You can adjust the replica config so the sentinel never promotes them, but it is still required by the add-on.
$config['cache']['provider'] = 'SV\RedisCache\Redis';
$config['cache']['config'] = [
'sentinel_master' => 'mymaster',
'server' => 'tcp://10.0.10.10:26379,tcp://10.0.10.15:26379,tcp://10.0.10.20:26379',
'load_from_replicas' => 2,
'replica_select_callable' => 'preferLocalReplicaLocalDisk',
'retry_reads_on_primary' => true,
'compression_lib' => 'zstd',
'use_lua' => true,
'read_timeout' => 1,
'timeout' => 1,
'serializer' => 'igbinary',
'compress_data' => 6,
];
~ sysctl -a | grep 'max_syn\|somaxcon'
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
~ cat /etc/redis/redis.conf | grep tcp-backlog
tcp-backlog 65536
$config['cache']['provider'] = 'SV\RedisCache\Redis';
$config['cache']['config'] = [
'server' => '10.0.10.10',
'port' => 6379,
'compression_lib' => 'zstd',
'use_lua' => true,
'read_timeout' => 1,
'timeout' => 1,
'serializer' => 'igbinary',
'compress_data' => 6,
];
$config['cache']['config']['load_from_slave'] = array(
'server' => '10.0.10.15',
'port' => 6379,
'compression_lib' => 'zstd',
'use_lua' => true,
'read_timeout' => 1,
'timeout' => 1,
'serializer' => 'igbinary',
'compress_data' => 6,
);
load_from_replica
, since redis has moved away from master/slave to primary/replica terminology.load_from_replica
and array, but it will pick a random replica and ignore the replica_select_callable
option.Make sure to disable all the redis persistence options. XF will regenerate any missing cache items, the cache simply does not need to be persistent.From redis-cli INFO CLIENT, I can see some connected clients on all replicas, but I’m having a lot of read errors on the redis master IP address in the log.
This should work.Can you look at my config to see if the slaves will prefer to load from local replica server properly? (To avoid saturation of the limited link of the master)
PHP:$config['cache']['provider'] = 'SV\RedisCache\Redis'; $config['cache']['config'] = [ 'sentinel_master' => 'mymaster', 'server' => 'tcp://10.0.10.10:26379,tcp://10.0.10.15:26379,tcp://10.0.10.20:26379', 'load_from_replicas' => 2, 'replica_select_callable' => 'preferLocalReplicaLocalDisk', 'retry_reads_on_primary' => true, 'compression_lib' => 'zstd', 'use_lua' => true, 'read_timeout' => 1, 'timeout' => 1, 'serializer' => 'igbinary', 'compress_data' => 6, ];
$config['cache']['enable'] = true;
$config['cache']['sessions'] = true;
$config['cache']['provider'] = 'SV\RedisCache\Redis';
$config['cache']['config'] = [...];
$config['cache']['context']['sessions'] = ['provider' => 'SV\RedisCache\Redis', 'config' => [ ... ]];
$config['cache']['context']['css'] = ['provider' => 'SV\RedisCache\Redis', 'config' => [ ... ]];
Spacebattles is currently doing ~130mbits of bandwidth usage against the redis cluster. Practically all of that is hitting the local redis instance instead of crossing the network, and it is almost entirely compressed data as well.I’m running a very large forum that has 1 master server and 2 slaves.
- Update credis library
- Fix possible php 8.1 compatibility issue
- Fix helper code to expire/purge redis keys did not support non-main cache backends.
- If using a separate caching backend for
css
, old styling was not actively expired as expected, resulting in higher memory usage- If 3rd party code uses
expireCacheByPattern
/purgeCacheByPattern
function, the new nullable 'cache' parameter should be used
[14-Dec-2023 06:09:31 UTC] PHP Fatal error: Uncaught CredisException: LOADING Redis is loading the dataset in memory in /.../.../public_html/src/addons/SV/RedisCache/Credis/Client.php:1517
Stack trace:
#0 /.../.../public_html/src/addons/SV/RedisCache/Credis/Client.php(1244): Credis_Client->read_reply('mget')
#1 /.../.../public_html/src/addons/SV/RedisCache/DoctrineCache/Redis.php(125): Credis_Client->__call('mget', Array)
#2 /.../.../public_html/src/addons/SV/RedisCache/Traits/CacheTiming.php(41): SV\RedisCache\DoctrineCache\Redis->SV\RedisCache\DoctrineCache\{closure}()
#3 /.../.../public_html/src/addons/SV/RedisCache/DoctrineCache/Redis.php(156): SV\RedisCache\DoctrineCache\Redis->redisQueryForStat('gets', Object(Closure))
#4 /.../.../public_html/src/addons/SV/RedisCache/DoctrineCache/CacheProvider.php(63): SV\RedisCache\DoctrineCache\Redis->doFetchMultiple(Array)
#5 /.../.../public_html/src/XF/DataRegistry.php(115): SV\RedisCache\DoctrineCache\CacheProvider->fetchMultiple(Array)
#6 /.../.../public_html in /.../.../public_html/src/addons/SV/RedisCache/Credis/Client.php on line 1517
We use essential cookies to make this site work, and optional cookies to enhance your experience.