Utilizzare il bilanciamento del carico basato su regole per ottimizzare le modalità di invio dei package ai server. Load Balancer controlla le regole aggiunte dalla prima priorità fino all'ultima, fermandosi sulla prima regola se viene rilevato un qualsiasi valore
true e bilanciando quindi il traffico tra i server associati a tale regola. Esso bilancia già il carico basato sulla destinazione e la porta, ma
l'utilizzo delle regole aumenta la possibilità di distribuire le connessioni.
Informazioni su questa attività
Nella maggior parte dei casi, quando si configurano le regole, è necessario configurare una regola always true predefinita in modo da rilevare tutte le richieste inviate da altre regole con priorità maggiore. Questo è un po' come restituire la risposta "Il sito è al momento inattivo, provare in un secondo momento" quando tutti gli altri server riportano un errore per la richiesta client.
Tutte le regole hanno un nome, un tipo e una priorità e potrebbero avere un valore di inizio e di fine intervallo e un serie di server. Le regole vengono valutate in ordine di priorità. Una regola con priorità 1 (numero più basso) viene valutata prima di una regola con priorità 2 (numero più alto). Viene poi utilizzata la prima regola che viene soddisfatta. In questo caso, una volta soddisfatta una regola, nessun'altra regola viene valutata. Perché una regola venga soddisfatta, deve rispondere a due condizioni:
- Il predicato della regola deve essere true. In altre parole, il valore che la regola valuta deve essere compreso tra i valori di inizio e di fine dell'intervallo oppure il contenuto deve corrispondere all'espressione regolare specificata nel modello della regola. Per le regole di tipi "true", il predicato è sempre soddisfatto, indipendentemente dai valori di inizio e di fine dell'intervallo.
Se una regola non ha alcun server associato, allora deve essere soddisfatta solo questa prima condizione. In questo caso, Load Balancer
eliminerà la richiesta di connessione.
- Se sono presenti dei server associati alla regola, almeno un server deve avere un peso maggiore di 0 per inoltrare i package in modo che Load Balancer avrà un server a cui poter inoltrare le connessioni.
Se una richiesta di connessione non soddisfa alcuna regola, Load Balancer selezionerà un server dalla serie di server disponibili sulla porta.
- Configurare una regola basata sul numero totale di connessioni attive.
È possibile utilizzare le regole basate sul numero totale di connessioni attive su una porta se i server risultano sovraccarichi e iniziano a rifiutare i package. Determinati server Web
continueranno ad accettare le connessioni anche se non hanno
thread sufficienti per rispondere alla richiesta. Come risultato, le richieste del client scadono e l'utente che desidera visualizzare il sito Web non sarà soddisfatto. È possibile utilizzare le regole basate sulle connessioni attive per bilanciare la capacità all'interno di un pool di server.
Ad esempio, nel caso in cui si sa che i propri server smetteranno di completare le operazioni dopo aver accettato 250 connessioni.
Configurazioni supportate: perché le regole funzionino, il gestore deve essere in esecuzione.
sptcfg
Creare una regola mediante il comando dscontrol rule. È quindi possibile aggiungere la regola ai server correnti e ad altri server, che verranno utilizzati per altri tipi di elaborazione. Ad esempio: dscontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500
- Creare una regola che viene valutata sempre true. Una regola del genere viene sempre selezionata, a meno che i server ad essa associati non siano inattivi. Pertanto, questa regola viene di solito impostata su una priorità bassa rispetto alle altre regole. È possibile avere più regole "always true", ognuna con una serie di server associati. Load Balancer sceglierà una regola in base alla prima regola true e che abbia un server disponibile.
Ad esempio, si assuma di avere sei server. Due di essi devono gestire il traffico in ogni circostanza, a meno che non siano entrambi inattivi. Se i primi due server sono inattivi, è possibile impostare una seconda serie di server per la gestione del traffico. Se tutti e quattro i server sono inattivi, allora è necessario utilizzare i due server finali per gestire il traffico. È possibile impostare tre regole "always true", quindi verrà sempre scelta la prima serie di server se almeno uno di questi server è attivo. Se entrambi i server sono inattivi, ne viene scelto uno della seconda serie e così via.
Come altro esempio, si consideri una regola "always true" per garantire che se i client in entrata non corrispondono a una delle regole impostate, questi non verranno utilizzati. A questo punto non si aggiunge alcun server alla regola, provocando in questo modo l'eliminazione dei package client senza alcuna risposta. È possibile definire più di una regola "always true" e definire quale viene eseguita modificandone i livelli di priorità.
Creare una regola utilizzando il comando dscontrol rule: dscontrol rule add 130.40.52.153:80:jamais type true priority 100
Non è necessario impostare i valori di beginrange o endrange quando si crea una regola always
true.
- Aggiungere uno o più server a una serie di regole. È possibile utilizzare il comando dscontrol rule useserver per aggiungere uno o più server a una serie di regole già definita. Ad esempio:
dscontrol rule useserver 130.40.52.153:80:jamais server1
dscontrol rule useserver 130.40.52.153:80:jamais server1+server2+server3