Tips Performa Server LAMP [ditutup]

11

Tips kinerja apa yang dapat ditawarkan kepada seseorang yang menjalankan server LAMP?

Dalam hal ada sesuatu yang spesifik Distribusi, saya menargetkan Debian.

Unkwntech
sumber

Jawaban:

26

Itu benar-benar tergantung pada beban kerja Anda.

  • untuk L bagian

    • dapatkan banyak memori,
    • jika Anda bisa lebih dari 4GB, pergi 64bit.
    • untuk partisi di mana konten Anda, log dan data MySQL menggunakan opsi mount: noatime, nodiratime.
    • menggunakan drive fisik / set serangan terpisah, idealnya menyimpan data SQL, log, konten yang Anda layani - masing-masing pada spindle terpisah.
  • untuk Sebuah bagian dari tumpukan Anda - baik mungkin Anda ingin menggantinya sepenuhnya dengan nginx atau lighthttpd , atau mungkin hanya meninggalkan Apache untuk konten dinamis dan memiliki server terpisah (seperti dua atau mathopd ) untuk konten statis. Lihatlah di sini untuk opsi lainnya. Jika Anda akan menjalankan kedua Apache dan server lain pada kotak yang sama, alamat IP kedua akan berguna. Untuk mengurangi latensi untuk pengguna akhir gunakan http / 1.1 dengan tetap-hidup. Pertimbangkan untuk menggunakan CDN untuk konten statis.

  • untuk bagian M dari lampu Anda - lihat mysqlperformanceblog . dari atas kepala saya:

    • catat permintaan lambat,
    • berikan memori yang cukup,
    • pertimbangkan untuk menggunakan innodb.
    • jika Anda memiliki banyak teks untuk dicari - gunakan sphinx dan memiliki pekerjaan batch yang membangun kembali indeks.
    • pertimbangkan untuk membunuh kueri yang berjalan lebih lama dari XYZ detik. Lebih baik mengacaukan 1% pengguna daripada membuat seluruh situs turun pada waktu puncak. Tapi itu sangat tergantung jika Anda memproses transaksi tunai atau menunjukkan gambar yang bagus.
    • gunakan memcached jika Anda bisa, untuk men-cache hasil dari query SQL yang lebih 'mahal'. Ingatlah untuk membatalkan cache ketika Anda mengubah konten SQL. Di sisi lain, saya memiliki beberapa situs di mana semua data cocok di memori dengan nyaman dan untuk itu MySQL sangat cepat dan tidak perlu cache tambahan.
  • untuk P

    • mengatur batas waktu eksekusi untuk skrip.
    • pertimbangkan untuk menggunakan beberapa cache akselerator / opcode PHP . Saya cukup puas dengan xcache , tetapi saya tidak menggunakannya sekarang.
    • jika Anda memiliki pemrosesan intensif CPU - hasil cache dan menyimpannya dalam SQL atau memcached

Bukan tip kinerja yang sesungguhnya, tetapi lakukan pencadangan di luar kantor. Betulkah.

pQd
sumber
1
jika saya dapat menambahkan ini, saya baru-baru ini di-blog tentang backup aman dengan strategi push and pull via amazon s3. tidak layak untuk data bank, tetapi semua yang Anda percayai dengan amzon harus baik-baik saja. logaholic.de/2009/05/21/...
Karsten
Saya benar-benar memperhatikan posting blog itu sebelum Anda berkomentar; -]. tetap bagus. Anda selalu dapat mengenkripsi cadangan Anda untuk membuatnya lebih aman.
pQd
3

Saya sangat menyarankan memisahkan MySQL dan Apache / PHP pada dua mesin yang berbeda.

Sebagai contoh, saya punya satu mesin (C2D E6600) yang selalu melonjak ke 2.0 dan di atas rata-rata beban. Saya menempatkan MySQL pada mesin kedua (P4C 3Ghz) dan setelah itu kedua rata-rata beban tidak naik di atas 0,2-0,3. Jadi saya beralih dari situs yang sangat lambat ke situs yang cepat dengan dua server yang memiliki banyak margin kinerja.

Antoine Benkemoun
sumber
Poin yang bagus. saya hanya bisa berspekulasi bahwa kemacetan Anda bisa saja merupakan subsistem IO / responsif drive. mungkin kemudian memisahkan data pada dua drive yang berbeda / memiliki pengontrol disk yang baik dapat melakukan trik juga. lagi pula lebih banyak memori, dan lebih banyak CPU selalu baik, tetapi kemudian Anda mendapatkan lebih banyak poin kegagalan juga.
pQd
Yah, saya tidak begitu yakin itu disk I / Os karena kebanyakan (katakanlah 90%) hit SQL di-cache. Saya sedang berpikir tentang sakelar konteks CPU tetapi saya tidak tahu apakah itu dapat benar-benar memainkan peran penting.
Antoine Benkemoun
1

Untuk bagian P, Anda bisa mempertimbangkan caching opcode dengan mis . APC . Kita juga bisa mempertimbangkan mod_fastcgi dengan php daripada mod_php default.

Karsten
sumber
Saya sangat suka eAccelerator. Ini memberikan kinerja terbaik untuk situs saya.
TheHippo