Używam Asp.Net razem z MySQL. W ciągu połączenia .Net ustawiłem Maksymalny rozmiar puli na 150.
Jeśli uruchomię następujące, otrzymam te wartości:
SHOW GLOBAL STATUS LIKE 'max_used_connections'; gives 66
SHOW GLOBAL STATUS LIKE 'Threads_created'; gives 66
SHOW GLOBAL STATUS LIKE 'connections'; gives 474
Co daje Threads_created / Connections = 0,1392.
Z tego wynika, że muszę zwiększyć thread_cache_size
.
Ale jeśli uruchomię SHOW PROCESSLIST
, zawsze widzę, że mam wiele otwartych połączeń (większość z nich śpi) z powodu puli utworzonej przez .Net. Czy nadal muszę ustawić, thread_cache_size
ponieważ nadal będę ponownie używać połączeń z puli połączeń? Jeśli rozmiar puli wynosi 150, czy uważasz, że dobrą wartością byłoby ustawienie thread_cache_size
150+? Czy miałoby to duży wpływ na procesor i pamięć?
źródło
Zgodnie z dokumentacją MySQL należy ustawić
thread_cache_size
tak, aby większość nowych połączeń używała wątków z pamięci podręcznej, a nie nowo tworzonych wątków. Oszczędza to trochę narzutów związanych z tworzeniem wątków, choć zwykle nie powoduje znaczącej poprawy wydajności:Oznaczałoby to, że należy ustawić
thread_cache_size
tak, abyThreads_created / Connections
(% połączeń, które prowadzą do tworzenia nowych wątków) był raczej niski. Jeśli weźmiesz dokumenty MySQL dosłownie („większość”), wartość powinna wynosić <50%. Odpowiedź RolandoMySQLDBA mówi <1%. Nie wiem, kto jest bliżej prawdy.Należy nie ustawić
thread_cache_size
wyższy niżMax_used_connections
. Ostatnie zdanie w odpowiedzi RolandoMySQLDBA („Przynajmniej rozmiar_waga_cache powinien być większy niż Max_used_connections”) nie wydaje się sensowne, ponieważ mówi, że należy przechowywać więcej wątków w pamięci podręcznej, niż kiedykolwiek serwer używa. MySQL nigdy nie umieści tak wielu wątków w pamięci podręcznej - nie wyprzedza wątków w pamięci podręcznej - umieszcza je tylko wtedy, gdy klient utworzy wątek i rozłączy się. Jeśli nigdy nie masz X klientów łączących się w tym samym czasie, nigdy nie będziesz mieć X wątków w buforze:Zobacz także tę odpowiedź Michaela:
/dba//a/28701
źródło
Czy we wspólnym dniu roboczym „nowy wynajem” może być potrzebny? Większość magów nie będzie wiedziała, ile osób można zatrudnić w ciągu najbliższych kilku dni. Wersja 8 MySQL sugeruje rozmiar CAP_wątek_pamięci_cache na 100, aby zapobiec przeciążeniu bez względu na max_used_connections. Dla mnie 100 to dobra WPR.
Proszę zobaczyć ten link.
źródło