Slowness issue with Drupal 8, Nginx, and REDIS - performance

I'm using Drupal 8, Nginx as a web server, and REDIS cache (deployed in container) in one of the web applications, and I'm facing an issue regarding slowness. After a few days, the performance automatically drops from 5 seconds to 30 seconds, and after clearing the Drupal and REDIS caches, it returns to normal.
I cleared the Drupal cache manually => issue is not resolved.
Clear the Drupal + REDIS cache => The problem has been resolved.
I'd like to know if anyone else is experiencing a similar problem, as well as the root cause and solution to this problem. 

Related

Laravel 8 - Queue jobs timeout, Fixed by clearing cache & restarting horizon

My queue jobs all run fairly seamlessy in our production server, but about every 2 - 3 months I start getting a lot of timeout exceeded/too many attempts exceptions.
Our app is running with event sourcing and many events are queued so neededless to say we have a lot of jobs passing through the system (100 - 200k per day generally).
I have not found the root cause of the issues yet, but a simple re-deploy through Laravel Envoyer fixes the issue. This is most likely due to the cache:clear command being run.
Currently, the cache is handled by Redis and is on the same server as the app. I was considering moving the cache to its own server/instance but this still does not help me with the root cause.
Does anyone have any ideas what might be going on here and how I can diagnose/fix it? I am guessing the cache is just getting overloaded/running out of space/leaking etc. over time but not really sure where to go from here.
Check :
The version of your redis make an update of the predis package
The version of your Laravel
Your server
I hope I gave you some solutions

Laravel slow on 1st time load

I have a laravel app that loads fine on localhost but when deployed on a shared 1&1 host server (for demo purposes) the first page load is very slow (up to 12s !). It's only occuring on first page load, after that it works perfectly fine as if the site was going on "sleep" mode when not used for a while.
It does sound like a cache issue though I activated all laravel caches (views, config, routes..).
Someone mentioned a similar problem on a godaddy shared host, their solution was to have a cron pinging the site every minute to keep it alive, that probably works but that's not a very satisfactory solution.
The debugger/console are not showing much :
On first page load :
Queries 343ms
Route request 12.46s
The console is showing a 12.69s TTFB waiting time
After reload
Queries 39.47ms
Route request 238ms
console 334ms.
Has anyone come across a similar issue before ?
Issue seems to be related to the host. Same install on a different host works perfectly, no real answer here..

TYPO3 caching issue in clustered deployment

I have an issue with typo3 and caching.
We have done the following setup:
1 Nginx load balancer (ip_hash i.e sticky sessions)
2 TYPO3 web instances
1 redis cache shared by both typo3 instances
The issue is that when the first web servers serves a given page, it gets cached. As long as the same web server is serving that page, the cached version gets returned.
As soon as the page request is served by the other web served, the full cache get reloaded.
I noticed that additional items are added to the cache although the page content has not changed.
Is there anything I could check to avoid these unnecessary cache reloads?
There are some considerations before scaling TYPO3 horizontally: https://stackoverflow.com/a/63594837/2819581
Basically, database/caches and some directories all carry state which is not independent of each other.

NGINX and BOOST for Drupal 7 locking certain pages?

I have a Drupal 7 site with NGINX & Boost. Almost everything is working perfect and cached pages are served very very fast.
The problem is that some pages, randomly, won't load. Once a page gets "locked" it simply won't load until PHP-FPM is restarted. After I restart PHP-FPM a different page(s) wont load, and also this page(s) will work only after PHP-FPM is restarted again... and so on.
I think it's not an error with Drupal or NGINX because locked pages load correctly after restarting PHP-FPM. I guess it's a random thing causing PHP-FPM to "lock" certain processes (sorry if it doens't make sense).
Thanks for your help!
PD: I have perusio's config for Drupal 7 with Nginx using drupal_boost.conf

AppFabric velocity as a state server

Is anybody using Windows AppFabric Server for out of process state management?
Any feedback, advice would be appreciated.
Using AppFabric Caching. We tried this and it appeared to work, was easy to setup etc. There are some very strange settings when setting up the cache about peristance which need to be read carefully.
Our issue was on two server we installed IIS and Appfabric Caching and told app to try the local one first. When we went into production is just started to fail. It appears that with only two servers there is a lead server which if it goes down things stop working, we read that if needed to scale to 3 or more servers to get the behaviour we wanted. Not an option when just gone live and not working so we switched to SQL server for now while we look at nCache and ScaleOut and Memchached
The other issue is that caching and session state are not the same animal, if you loose your cache it should not be the end of the world just put it back together, we need to keep session state for the lotted time period at all costs.

Resources