Saya melakukan banyak kinerja dan meningkatkan pekerjaan dan yang saya temukan adalah:
Setiap pemuatan aplikasi unik
Respons umum seperti menambahkan lebih banyak ram, mendapatkan server lain, lakukan y, coba x sering menjadi pelajaran dalam frustrasi dan biarkan setup yang berbelit-belit.
Ukur Hal yang Benar
Salah satu tantangan terbesar adalah dalam menentukan tolok ukur apa yang penting. Ini sering membutuhkan langkah mundur dan Anda harus menempatkan diri pada posisi klien Anda. Terkadang, perubahan desain situs sederhana dan berarti manfaat besar bagi pengunjung web. Inilah sebabnya saya menyukai alat seperti YSlow! yang lebih fokus pada pengalaman pengguna akhir daripada tingkat server. Setelah Anda menentukan tolok ukur yang tepat untuk situs Anda, maka Anda dapat mulai menyetel. Benchmark mungkin adalah total waktu buka halaman, ukuran halaman total, efektivitas cache, latensi situs, dll. Anda harus memilih yang masuk akal untuk aplikasi Anda.
Mur dan Baut
Saat Anda melacak tolok ukur yang tepat, mulailah dari tingkat yang sangat rendah. Saya suka menggunakan sysstat. Anda dapat memperoleh banyak informasi dari sysstat dan membantu Anda memisahkan sistem mana yang mungkin membatasi kinerja aplikasi secara keseluruhan. Secara umum, saya merebus masalah kinerja menjadi:
- tumpukan jaringan
- tumpukan memori
- disk io
- lapisan aplikasi
- lapisan os
Dengan menggunakan sysstat dan alat-alat lain, Anda dapat mulai membelah rambut dan menemukan sistem yang membatasi kinerja.
Sebagai contoh, saya telah melihat server yang sangat gagal gagal karena cara aplikasi mereka dikonfigurasi. Caching yang buruk, kurangnya header yang kedaluwarsa pada konten statis, menggunakan HTTP vs. file, dll. Semua berkontribusi pada kinerja aplikasi yang buruk. Memperbaiki masalah aplikasi ini tidak memerlukan perubahan perangkat keras. Dalam kasus lain, saya telah melihat disk yang dimaksimalkan meskipun ada banyak caching. Pindah ke disk yang lebih cepat memperbaiki masalah.
Bilas dan Ulangi
Seringkali selama penyetelan aplikasi, Anda akan membuka sumbat satu bottleneck hanya untuk menemukan yang lain. Inilah sebabnya saya menyarankan Anda untuk memantau apa pun yang sedang Anda setel.
Misalnya, Anda memperbaiki masalah IO disk tetapi aplikasi Anda masih lambat. Anda mungkin berpikir bahwa Anda telah menyia-nyiakan usaha Anda, tetapi yang terjadi adalah Anda telah dengan mudah memukul kemacetan lagi. Dengan memonitor IO disk dengan hati-hati, Anda dapat yakin bahwa Anda meningkatkan IO disk meskipun monitor kinerja aplikasi penting Anda tidak berubah.
Dapatkan Alat yang Tepat
Pastikan Anda menggunakan alat yang tepat untuk pekerjaan itu. Pemantauan, pengujian, benchmarking, profil, dan teknik optimasi lainnya semuanya memiliki berbagai alat. Temukan alat yang paling cocok dengan situasi Anda.
Aturan Jempol
Meskipun setiap aplikasi unik, saya menemukan beberapa titik awal standar:
- database memori suka memori
- Disk apa pun selain serangan 10 dapat membunuh kinerja basis data
- optimasi yang salah - nilai besar tidak diterjemahkan ke dalam kinerja besar
- aplikasi - menyalahkan server untuk desain aplikasi yang buruk
Langkah Selanjutnya
Jika Anda tidak menemukan hambatan Anda, menambahkan server mungkin tidak banyak membantu. Untuk mengatasi disk IO Anda mungkin perlu server lain atau SAN. Jika Anda memiliki hambatan bott server lain akan menyelesaikan masalah hanya dalam hal itu menambah lebih banyak RAM. Bergerak cukup mahal dibandingkan dengan hanya menambahkan lebih banyak RAM ke server Anda yang ada.
Perbaikan Cepat
Lebih dari menyebarkan. Saya harus melakukan ini ketika muncul tumpukan aplikasi masalahnya. Pada dasarnya memuat pada CPU, RAM dan disk IO (RAID 10, 15K SCSI atau SSD). Go big pada perangkat keras dan kemudian mulai mencari. Ini membuat Anda bertahan sampai Anda menyelesaikan masalah.