![Kako popraviti poruku o pogrešci 'TPM uređaj nije otkriven' (6 metoda)](/f/baf2ede11bed36b62f7db5c81684194c.jpg?width=100&height=100)
The InnoDB engine ima međuspremnik koji se koristi za keširanje podataka i indeksa u memoriji. To će naravno pomoći da se vaši MySQL/MariaDB upiti izvršavaju znatno brže. Odabir odgovarajuće veličine ovdje zahtijeva neke vrlo važne odluke i dobro poznavanje potrošnje memorije vašeg sustava.
Evo što trebate uzeti u obzir:
O namjenskoj kutiji vjerojatno biste htjeli govoriti 60-70% sjećanja na innodb_buffer_pool_size. Ako namjeravate pokrenuti više usluga na jednom okviru, trebali biste ponovno razmotriti količinu memorije koju posvetite za sebe innodb_buffer_pool_size.
Vrijednost u kojoj biste trebali urediti my.cnf je:
innodb_buffer_pool_size.
Zamjena je proces koji se događa kada sustav premjesti dio memorije na poseban prostor na disku pod nazivom "
zamijeniti”. Događaj se obično pojavljuje kada vašem sustavu ponestane fizičke memorije i umjesto da oslobodi malo RAM -a, sustav je gurnuo informacije na disk. Kao što ste možda pretpostavili, disk je mnogo sporiji od RAM -a.Prema zadanim postavkama opcija je omogućena:
# sysctl vm.swappiness vm.swappiness = 60.
Da biste onemogućili zamjenu, pokrenite sljedeću naredbu:
# sysctl -w vm.swappiness = 0.
The max_connections Direktiva govori vašem poslužitelju koliko je istodobnih veza dopušteno. MySQL/MariaDB poslužitelj dopušta vrijednost datu u max_connections + 1 za korisnika sa SUPER privilegijama. Veza se otvara samo za vrijeme izvršavanja upita MySQL - nakon toga se zatvara i nova veza može zauzeti njeno mjesto.
Imajte na umu da previše veza može uzrokovati veliku potrošnju RAM -a i zaključati vaš MySQL poslužitelj. Obično male web stranice zahtijevaju između 100-200 veze, dok veće mogu zahtijevati 500-800 ili čak i više. Vrijednost koju ovdje primjenjujete uvelike ovisi o vašoj upotrebi MySQL/MariaDB.
Možete dinamički promijeniti vrijednost max_connections
, bez ponovnog pokretanja usluge MySQL pokretanjem:
# mysql -u korijen -p. mysql> postavi globalne max_konekcije: = 300;
The thread_cache_size
Direktiva postavlja količinu niti koje bi vaš poslužitelj trebao predmemorirati. Kako se klijent prekida, njegove niti se stavljaju u predmemoriju ako su manje od thread_cache_size. Daljnji zahtjevi dovršavaju se upotrebom niti pohranjenih u predmemoriji.
Da biste poboljšali svoje performanse, možete postaviti thread_cache_size na relativno visok broj. Za pronalaženje stope pogotka predmemorije niti možete koristiti sljedeću tehniku:
mysql> prikaži status poput 'Stvorene niti'; mysql> prikaži status poput 'Veze';
Sada upotrijebite sljedeću formulu za izračun postotka stope pogotka predmemorije niti:
100 - ((Threads_created / Connections) * 100)
Ako dobijete mali broj, to znači da većina novih mysql veza pokreće novu nit umjesto učitavanja iz predmemorije. Sigurno ćete htjeti povećati thread_cache_size U takvim slučajevima.
Dobra stvar ovdje je što je thread_cache_size mogu se dinamički mijenjati bez ponovnog pokretanja usluge MySQL. To možete postići trčanjem:
mysql> postavi globalni thread_cache_size = 16;
Prema zadanim postavkama MySQL/MariaDB izvodi DNS pretraživanje korisničke IP adrese/imena hosta s kojeg dolazi veza. Za svaku klijentsku vezu provjerava se IP adresa rješavanjem u naziv hosta. Nakon toga se naziv hosta rješava natrag na IP adresu kako bi se provjerilo da li se oboje podudaraju.
To nažalost može uzrokovati kašnjenja u slučaju loše konfiguriranog DNS -a ili problema s DNS poslužiteljem. Zbog toga možete onemogućiti obrnuto pretraživanje DNS -a dodavanjem sljedećeg u svoju konfiguracijsku datoteku:
[mysqld] # Preskočite obrnuto DNS pretraživanje klijenata. preskoči-ime-riješi.
Nakon primjene ovih promjena morat ćete ponovno pokrenuti uslugu MySQL.