sql >> Database >  >> RDS >> MariaDB

Prestaties verbeteren door lezen en schrijven te gebruiken om databaseverkeer te splitsen met Moodle 3.9

Moodle is een zeer bekend leerbeheersysteem dat bedoeld is om onderwijsorganisaties te helpen bij het organiseren van hun online leeractiviteiten. Zoals je je kunt voorstellen, zijn dergelijke systemen, gezien de online shift in 2020 veroorzaakt door de COVID-19, erg populair geworden en is de belasting die die systemen moeten verwerken aanzienlijk toegenomen. Veel beheerders vragen zich af hoe ze de prestaties kunnen verbeteren van de database die een back-up maakt van de Moodle-installatie. Gelukkig heb je, als je Moodle 3.9 of hoger gebruikt, enkele ingebouwde opties die je kunnen helpen om de prestaties te verbeteren. In deze blogpost laten we je zien hoe je dat doet.

Allereerst gaan we ervan uit dat je een Moodle-installatie hebt met één databaseknooppunt. Laten we eens kijken naar de stappen die u mogelijk wilt nemen om de prestaties van uw Moodle-database te verbeteren. Natuurlijk kunnen alle stappen die we hier uitleggen, met de hand worden uitgevoerd. Daar gaan we ClusterControl voor gebruiken omdat we onze tijd waarderen.

Ervan uitgaande dat ClusterControl is geïnstalleerd, is de eerste stap het importeren van een bestaand databaseknooppunt.

De SSH-verbinding met een wachtwoordloze sleutel moet aanwezig zijn. We hebben het ingesteld als een rootgebruiker met een SSH-sleutel in /root/.ssh/id_rsa.

Als volgende stap hebben we de superuser en het bijbehorende wachtwoord gedefinieerd. We hebben ook information_schema-query's ingeschakeld (omdat we weten dat we geen tienduizenden tabellen hebben) en beide autorecovery-opties, zodat ClusterControl onze database indien nodig kan herstellen.

Na een kort moment wordt onze database weergegeven in de lijst met clusters:

Nu kunnen we beginnen met het uitbreiden van ons cluster door meer slaves toe te voegen. We moeten ervoor zorgen dat de master binaire logboeken heeft ingeschakeld. Zo niet, dan kan dat vanuit de ClusterControl. Houd er rekening mee dat het inschakelen van binaire logboeken een herstart vereist, dus u wilt dit waarschijnlijk doen in een tijd waarin de belasting het laagst is en, idealiter, de gebruikers van uw Moodle-platform een ​​seintje geven.

We hebben het IP-adres (of de hostnaam) doorgegeven van het knooppunt dat we willen gebruiken als slaaf. ClusterControl zal het voorzien van de gegevens van ons hoofdknooppunt. We zouden ook back-ups kunnen gebruiken om een ​​slave in te richten, maar we hebben tot nu toe geen back-ups gemaakt met ClusterControl.

De installatie duurt een paar minuten, we kunnen de voortgang volgen door te kijken bij de taaklogboeken in ClusterControl.

Het toevoegen van een slaaf aan ons systeem maakt geen verschil. We moeten Moodle vertellen om het daadwerkelijk te gaan gebruiken. Gelukkig heeft Moodle een functie waarmee je slave-knooppunten kunt configureren en vervolgens worden de "veilige" schrijfacties naar hen omgeleid, waardoor de belasting van de master wordt verminderd en de algehele prestaties worden verbeterd.

In het configuratiebestand (config-dist.php) kun je de 'alleen-lezen'-sectie van de 'dboptions'-array zien. Op die plaats kun je een of meer slave-knooppunten definiëren die door Moodle worden gebruikt om het verkeer naar te sturen.

  'readonly' => [          // Set to read-only slave details, to get safe reads

                            // from there instead of the master node. Optional.

                            // Currently supported by pgsql and mysqli variety classes.

                            // If not supported silently ignored.

     'instance' => [        // Readonly slave connection parameters

       [

         'dbhost' => '10.0.0.132',

         'dbport' => '',    // Defaults to master port

         'dbuser' => '',    // Defaults to master user

         'dbpass' => '',    // Defaults to master password

       ],

       [...],

     ],

Zoals u kunt zien, kunnen we meer dan één slave-host toevoegen, waardoor we de veilige leesbewerkingen kunnen spreiden over meerdere knooppunten die u eenvoudig kunt inrichten vanuit ClusterControl en de belasting van het cluster verminderen.

Als je geïnteresseerd bent in meer geavanceerde, zeer beschikbare database-instellingen voor Moodle, hebben we verschillende blogposts over dit onderwerp, waarin onder meer wordt beschreven hoe je Moodle kunt gebruiken met Galera Cluster als backend. We hebben ook de meer geavanceerde schalingstechnieken voor Moodle beschreven, waarbij ProxySQL-taakverdeling betrokken is.

Laat ons uw mening en ervaring weten over het werken met Moodle.


  1. Gegroepeerde rangschikking uitvoeren in MySQL

  2. Dynamische draaikolommen in SQL Server

  3. Huawei GaussDB

  4. Een overzicht van MariaDB Xpand (voorheen ClustrixDB)