Voglio sapere degli IOPS (I / O al secondo) e di come influenza l'operazione CR CRUD del DB


8

Voglio ottenere un server dedicato per il mio database (MySQL) che esegue InnoDB Engine. C'è questa opzione nella capacità di InnoDB che puoi definire gli IOPS in essa contenuti. Diciamo che ho un HDD SATA 72K-RPM che consente 100 IOPS. Significa che il mio DB può eseguire solo 100 query SQL simultanee al secondo o significa 100 singole di lettura o scrittura in 1 secondo? Come può un DB gestire 3000 query al secondo lanciate su un hardware del genere? Sono un po 'confuso, quindi per favore spiegamelo. Voglio ottenere oltre 200 esecuzioni di query sul mio server dedicato.

Risposte:


10

Gli IOPS di un disco rigido indicano quante operazioni di I / O possono eseguire quel determinato disco al secondo. Poiché letture casuali, scritture casuali, letture sequenziali e scritture sequenziali hanno caratteristiche prestazionali diverse, se si osserva un singolo numero, ciò implica che questa è una media ponderata di questi quattro numeri che rappresenta un carico di lavoro. Tale carico di lavoro può essere o meno simile al carico di lavoro effettivamente eseguito da un database, pertanto il sistema potrebbe finire per ottenere più o meno operazioni al secondo.

Una query SQL, supponendo che funzioni I / O fisico (molte query non devono eseguire alcun I / O perché leggono semplicemente dai dati già presenti nella memoria del database o nella cache del file system o nella cache SAN) per eseguire molte operazioni di I / O. Se le tue query stanno effettivamente eseguendo I / O fisici, una singola query potrebbe facilmente eseguire 100 operazioni di I / O al secondo. Potresti potenzialmente avere 100 query in esecuzione contemporaneamente, ognuna con solo 1 operazione I / O fisica al secondo, ma ciò significherebbe probabilmente che tutte le 100 query richiederebbero un tempo inaccettabile per la restituzione.

Realisticamente, se è necessario gestire 3000 query al secondo, è necessario assicurarsi che la stragrande maggioranza delle query non debba eseguire I / O fisici assicurando che i dati di cui hanno bisogno siano memorizzati nella cache (preferibilmente dal database). E dovrai distribuire l'I / O su un numero relativamente elevato di unità (con un'adeguata configurazione RAID) per aumentare gli IOPS totali che il sistema può eseguire. Questo tipo di pianificazione della capacità richiederà una comprensione ragionevolmente buona dell'applicazione, dei dati, della quantità di I / O di cui ogni query avrà realmente bisogno, ecc. E sarà probabilmente necessario bilanciare il costo rispetto alle prestazioni - aggiungendo la memoria o l'aggiunta di unità o la modifica della configurazione RAID comporteranno diversi compromessi tra costi, prestazioni e spazio disponibile che dovranno essere considerati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.