it-swarm.dev

Amazon RDS contoh MySQL melakukan sangat lambat

Saya telah menerbitkan situs web saya di Amazon EC2 (wilayah Singapura) dan saya telah menggunakan contoh MySQL RDS untuk penyimpanan data. Semuanya berfungsi dengan sangat baik kecuali kinerja.

Sepertinya, semua pertanyaan saya, khususnya pernyataan pilih, berkinerja sangat lambat. Jika saya memeriksa masalah ini di PC lokal saya, itu berfungsi dengan sangat baik. Tetapi ketika saya mencoba untuk mendapatkan data dari RDS misalnya, itu sangat lambat. Beberapa pernyataan pilihan membutuhkan 2-3 detik untuk mengambil data.

Saya telah benar menyetel semua indeks tabel, dan dinormalisasi/dinormalisasi sesuai kebutuhan. Saya telah membuat semua pengaturan yang diperlukan pada grup parameter khusus RDS (mis. max_connection , buffer etc). Saya tidak tahu apakah saya kehilangan sesuatu, tetapi tidak berhasil - kinerja tidak meningkat.

Jadi, bisakah seseorang tolong bantu saya dengan masalah ini?

24
Manish Sapkal

Perlu dicatat bahwa, untuk alasan apa pun, cache kueri MySQL dinonaktifkan secara default di RDS. Kami belajar itu dengan susah payah sendiri minggu ini.

Ini tidak akan membantu kinerja permintaan awal Anda, tetapi mungkin mempercepat secara umum.

Untuk mengaktifkan kembali cache permintaan:

  1. Masuk ke Konsol RDS
  2. Klik pada contoh RDS Anda untuk melihat detailnya
  3. Edit Grup Parameter Database
  4. Pastikan untuk mengatur query_cache_size dan query_cache_type

(Penafian: Saya bukan DBA sehingga mungkin ada hal-hal tambahan yang saya lewatkan di sini)

27
DOOManiac

Sangat penting untuk membuat instance RDS dan EC2 Anda tidak di wilayah yang sama tetapi di zona ketersediaan yang sama untuk meminimalkan latensi.

Saya memiliki API yang di-host di Irlandia pada EC2 dan memindahkan Database ke cluster MySQL di Virginia USA yang telah kami siapkan untuk proyek lain dan perjalanan pulang pergi pada setiap permintaan SQL membuat API tidak dapat digunakan.

8
Roovian

Bagi saya, itu tidak ada hubungannya dengan MySQL melainkan tipe contoh saya di t2.medium. Masalahnya adalah saya kehabisan kredit CPU karena beban pada DB terlalu tinggi dan saldo terus turun sampai akhirnya, saya mendapatkan kredit jauh lebih sedikit setiap jam dari yang dibutuhkan.

Inilah yang saya lihat di RDS CloudWatch di bawah Penggunaan Kredit CPU:

 enter image description here

Jika Anda memiliki masalah yang sama, mungkin ini saatnya untuk beralih ke contoh lain. Berikut adalah daftar tipe instance:

https://aws.Amazon.com/rds/instance-types/

Semoga ini membantu.

2
radtek

Kinerja RDS MySQL dapat ditingkatkan dengan cara-cara berikut dengan asumsi sistem memiliki rasio baca lebih banyak:

  1. Gunakan tipe instance yang lebih besar, mereka datang dengan bandwidth NW yang lebih baik. Contoh AWS Quadruple EXL hadir dengan bandwidth 1.000 Mbps.
  2. Gunakan penyimpanan PIOPS Anda dapat mengekstrak 12.500 IOPS dari 16KB dari MySQL DB
  3. Jika banyak membaca dilakukan, tambahkan satu atau lebih Baca Replica untuk meningkatkan kinerja membaca
  4. Terapkan praktik standar seperti: Menyetel kueri, menerapkan indeks, dll
2
Harish Ganesan

Pertama saya sangat merekomendasikan untuk melihat menggunakan query ini

TUNJUKKAN PROSES LENGKAP

Anda dapat membaca lebih lanjut tentang ini di SHOW FULL PROCESSLIST

Ini akan menunjukkan waktu yang dibutuhkan setiap query.

Maka Anda bisa menggunakannya 

MENJELASKAN

Anda dapat membaca lebih lanjut tentang ini di JELASKAN

Ini akan menunjukkan kepada Anda jika Anda memerlukan beberapa peningkatan pada pertanyaan Anda

2
Hiyasat

Anda dapat memeriksa di mana kueri mengambil waktu dengan memanfaatkan profil. Gunakan kueri di bawah ini: 

  1. set profiling = 1 
  2. jalankan permintaan pilih Anda 
  3. tampilkan profil

Ini akan memberi tahu Anda tentang status kueri dan di mana kueri menghabiskan waktunya. Jika jumlah semua waktu yang dikembalikan oleh profil kurang dari waktu eksekusi sebenarnya dari permintaan, maka mungkin faktor-faktor lain seperti bandwidth jaringan mungkin menjadi penyebabnya.

0
user7562197