Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Testowanie obciążenia Golang RESTful API powodujące zbyt wiele połączeń z bazą danych

Przejdź do database/sql nie uniemożliwia tworzenia nieskończonej liczby połączeń z bazą danych. Jeśli w puli jest bezczynne połączenie, zostanie ono użyte, w przeciwnym razie zostanie utworzone nowe połączenie.

Tak więc pod obciążeniem programy obsługi żądań sql.DB prawdopodobnie nie znajdują żadnych bezczynnych połączeń, więc w razie potrzeby tworzone jest nowe połączenie. Powoduje to odejście nieco — ponowne używanie bezczynnych połączeń, gdy jest to możliwe, i tworzenie nowych, gdy jest to konieczne — ostatecznie osiągając maksymalną liczbę połączeń dla DB. I niestety w Go 1.1 nie ma wygodnego sposobu (np. SetMaxOpenConns ), aby ograniczyć otwarte połączenia.

Uaktualnij do nowszej wersji Golanga. W Przejdź do wersji 1.2+ otrzymasz SetMaxOpenConns . I sprawdź dokumentację MySql, aby rozpocząć konfigurację a następnie dostroić.

db.SetMaxOpenConns(100) //tune this

Jeśli musisz użyć Go 1.1, musisz upewnić się w swoim kodzie, że *sql.DB jest używane tylko przez N klientów naraz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz dzień tygodnia od daty

  2. Wyzwalacze MySQL i SUM()

  3. Wykonaj PDO z tablicą zawierającą wartości null

  4. Zaznaczenie pola wyboru aktualizacji PHP/MySQL do bazy danych

  5. Zdobądź drugą najwyższą pensję dla każdej osoby w mysql