menembus batas impian


Mewawancarai orang-orang untuk kami Openings Pekerjaan saya ingin meminta mereka pertanyaan dasar – jika Anda memiliki sebuah server dengan 16GB RAM yang akan didedikasikan untuk MySQL dengan database yang besar dengan menggunakan InnoDB beban kerja Web khas pengaturan apa yang akan Anda menyesuaikan dan cukup menarik kebanyakan orang gagal datang dengan sesuatu yang wajar. Jadi saya memutuskan untuk menerbitkan jawaban yang saya ingin mendengar memperluas dengan dasar-dasar Hardware OS Dan optimasi Aplikasi.
Saya menyebutnya InnoDB ini Optimasi Kinerja Dasar jadi ini adalah panduan umum yang bekerja dengan baik untuk berbagai aplikasi, meskipun pengaturan optimal tentunya tergantung pada beban kerja.

Perangkat keras
Jika Anda memiliki database yang besar InnoDB Memory ukuran adalah yang terpenting. 16G-32G adalah nilai biaya efisien hari ini. Dari sudut pandang CPU 2 * Dual Core CPU tampaknya melakukannya dengan sangat baik, sementara bahkan dengan hanya dua Quad Core CPU masalah skalabilitas dapat diamati pada banyak beban kerja. Meskipun ini tergantung pada aplikasi banyak. Yang ketiga adalah IO Subsystem – penyimpanan langsung terpasang dengan banyak spindle dan RAID dengan baterai didukung cache taruhan yang baik. Biasanya Anda bisa mendapatkan 6-8 hard drive dalam kasus standar dan seringkali cukup, sementara kadang-kadang Anda mungkin membutuhkan lebih. Juga perhatikan baru 2,5 “SAS hard drive. Mereka kecil tetapi sering lebih cepat daripada yang lebih besar. RAID10 bekerja dengan baik untuk penyimpanan data dan untuk membaca-kebanyakan kasus ketika Anda masih ingin beberapa RAID5 redundansi dapat bekerja cukup baik juga tetapi jangan acak menulis untuk RAID5.

Sistem Operasi
Pertama – menjalankan sistem operasi 64bit. Kami masih melihat orang-orang berjalan 32bit Linux pada kotak yang mampu 64bit dengan banyak memori. Jangan lakukan ini. Jika menggunakan Linux LVM pengaturan untuk direktori database untuk mendapatkan cadangan lebih efisien. EXT3 file sistem bekerja OK dalam banyak kasus, meskipun jika Anda berjalan di hambatan tertentu dengan itu mencoba XFS. Anda dapat menggunakan opsi noatime dan nodiratime jika Anda menggunakan innodb_file_per_table dan banyak tabel meskipun Manfaat ini adalah kecil. Juga pastikan Anda bergulat OS sehingga tidak akan menukar MySQL dari memori.

MySQL Pengaturan InnoDB
Yang paling penting adalah:
innodb_buffer_pool_size 70-80% dari memori merupakan taruhan yang aman. Saya set ke 12G pada kotak 16GB.
UPDATE: Jika Anda sedang mencari rincian lebih lanjut, lihat panduan rinci tentang tala InnoDB kolam penyangga
innodb_log_file_size – Hal ini tergantung pada kebutuhan kecepatan pemulihan Anda tetapi 256M tampaknya menjadi keseimbangan yang baik antara waktu pemulihan yang wajar dan kinerja yang baik
innodb_log_buffer_size = 4M 4M baik untuk kebanyakan kasus kecuali Anda perpipaan gumpalan besar untuk InnoDB dalam kasus ini meningkatkannya sedikit.
innodb_flush_log_at_trx_commit = 2 Jika Anda tidak kekhawatiran tentang ACID dan dapat kehilangan transaksi atau dua detik terakhir dalam kasus penuh OS kecelakaan daripada menetapkan nilai ini. Hal ini dapat efek dramatis terutama pada banyak transaksi menulis pendek.
innodb_thread_concurrency = 8 Bahkan dengan saat InnoDB Perbaikan Skalabilitas memiliki konkurensi terbatas membantu. Jumlah sebenarnya mungkin lebih tinggi atau lebih rendah tergantung pada aplikasi Anda dan standar yang layak mulai 8
innodb_flush_method = O_DIRECT Hindari double buffering dan mengurangi tekanan swap, dalam banyak kasus pengaturan ini meningkatkan kinerja. Meskipun hati-hati jika Anda tidak memiliki baterai didukung Cache RAID seperti ketika menulis IO mungkin menderita.
innodb_file_per_table – Jika Anda tidak memiliki terlalu banyak tabel menggunakan pilihan ini, sehingga Anda tidak akan memiliki terkendali InnoDB tablespace pertumbuhan utama yang Anda tidak dapat kembali. Pilihan ini telah ditambahkan di MySQL 4.1 dan sekarang cukup stabil untuk digunakan.

Juga memeriksa apakah aplikasi Anda dapat berjalan dalam modus isolasi BACA-commited – jika tidak – set menjadi default transaksi isolasi = BACA-BERTEKAD. Opsi ini memiliki beberapa manfaat kinerja, terutama dalam mengunci 5.0 dan bahkan lebih untuk datang dengan MySQL 5.1 dan replikasi tingkat baris.

Ada banyak pilihan lain yang mungkin ingin menyetel tapi mari kita fokus hanya pada yang InnoDB hari. Anda dapat memeriksa tentang menyetel opsi lain di sini atau membaca salah satu dari kami Presentasi MySQL .

Aplikasi tuning untuk InnoDB
Terutama ketika datang dari latar belakang MyISAM akan ada beberapa perubahan yang Anda ingin lakukan dengan aplikasi Anda. Pertama pastikan Anda menggunakan transaksi ketika melakukan update, baik demi konsistensi dan untuk mendapatkan kinerja yang lebih baik. Selanjutnya jika aplikasi Anda memiliki apapun menulis bersiaplah untuk menangani deadlock yang mungkin terjadi. Ketiga Anda ingin meninjau struktur meja Anda dan melihat bagaimana Anda bisa mendapatkan keuntungan dari sifat InnoDB – pengelompokan berdasarkan primary key, memiliki kunci utama dalam semua indeks (sehingga tetap primary key pendek), pencarian cepat dengan kunci primer (mencoba untuk menggunakannya dalam bergabung), indeks membongkar besar (coba yang mudah pada indeks).

Dengan laras kinerja InnoDB dasar Anda akan lebih baik ketika mayoritas pengguna InnoDB yang mengambil MySQL dengan standar menjalankannya pada hardware tanpa baterai didukung cache yang tanpa perubahan OS dan tidak memiliki perubahan yang dilakukan pada aplikasi yang ditulis dengan tabel MyISAM dalam pikiran.

http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: