Saya memiliki situs web magento. Tidak ada pengguna (maks 2-3 pada waktu).
Server kami adalah: CPU: 2000MHz RAM: 2048Mb HDD: 50000Mb.
Saya menginstal ZendServerCE (apc + memcached + Zend Optimizer + Zend Data Cache). Saya mematikan memcached, karena situs web memuat jauh lebih buruk. Saya mengatur struktur tipe datar, mengindeks ulang dan cache data di admin konsol.
Jadi saya punya apc + Zend Optimizer + Zend Data Cache .
Masalah pertama adalah saya memeriksa runtime bagaimana cara kerja pengiriman. panggilan start_session () membutuhkan waktu sekitar 500-700 ms. Tampaknya hasilnya tidak bagus. Kenapa begitu lama, saya tidak tahu.
Saya sudah membaca yang ini: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_size dan menemukan opsi optimal untuk server saya.
Per jam:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
Anda melihat 252/8887> 0,01, tetapi tidak terlalu banyak. Ini nilai optimal yang pernah saya dapatkan. Hasil lainnya dimulai dari> 6.
Inilah my.cnf:
key_buffer = 48M
myisam_sort_buffer = 2M
sort_buffer = 2M
read_buffer_size = 2M
join_buffer = 2M
read_rnd_buffer = 2M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 16
query_cache_type = 1
myisam-recover = BACKUP
max_connections = 50
table_cache = 256
#thread_concurrency = 10
query_cache_limit = 8M
query_cache_size = 98M
3. Memcached karena alasan tertentu tidak baik. Saya mematikannya. Tetapi cache data zend dan optimizer zend masih berfungsi.
4. APC tampaknya benar. Untuk memuat aksi pengontrol dibutuhkan 3-4 detik untuk pertama kalinya (saya mengatur mati () di sana untuk memeriksanya) dan untuk pertama kali dibutuhkan 1 - 1,3 detik.
5. Setelah beberapa menit saya memulai kembali mysql saya mendapat hasil yang baik. Halaman dimuat dari 1,5 hingga 2,5 detik. Tetapi sekarang (setelah beberapa jam) dibutuhkan 6-10 detik. Saya tidak dapat menemukan alasannya.
Jadi, apakah Anda melihat beberapa konfigurasi yang salah di sini? Mungkin server saya tidak cocok untuk magento?
UPDATE 1: sekitar 600 kategori dan 1000 produk saat ini dan sekitar 20000 kategori (untuk toko web yang berbeda) dan 1500-3000 produk di masa depan.
Tidak banyak atribut.
PEMBARUAN 2 Saya sudah tahu bahwa ssh console bekerja terlalu lambat. Saya reboot server dan sekarang berfungsi cepat. itu berarti saya punya masalah dengan RAM. Tidak ada cukup ruang.
Ini status awal tanpa apache:
total used free shared buffers cached
Mem: 2048 600 1447
PEMBARUAN 3 Saya mengerti. Sekarang dimuat selama 0,5-1,5 detik
Berikut ini konfigurasi: mysql
[mysqld]
key_buffer_size = 256M
tmp_table_size = 32M
max_heap_table_size = 32M
myisam_sort_buffer = 4M
sort_buffer = 4M
read_buffer_size = 4M
join_buffer = 4M
read_rnd_buffer = 4M
max_allowed_packet = 64M
thread_stack = 192K
thread_cache_size = 16
query_cache_type = 1
myisam-recover = BACKUP
max_connections = 20
table_cache = 1024
innodb_buffer_pool_size = 128M
query_cache_limit = 24M
query_cache_size = 256M
php
[apc]
apc.stat=1
apc.enabled=1
apc.optimization=0
apc.cache_by_default=1
apc.shm_segments=10
apc.shm_size=256M
apc.ttl=0
apc.user_ttl=0
apc.num_files_hint=10000
;apc.mmap_file_mask="/tmp/apc"
apc.max_file_size=5M
apc.enable_cli=1
apc.mmap_file_mask="/tmp/apc.XXXXXX"
apc.slam_defense=0
apc.user_entries_hint=10000
Semua berfungsi dengan sempurna, tetapi satu pertanyaan tetap ada. APC menunjukkan statistik ini kepada saya:
Mengapa hit sangat kecil? Ada ide?
sumber
xhprof
dan mencoba untuk mendapatkan visualisasi dari apa yang mengambil waktu paling banyak untuk memuat. Apakah ini server produksi sedang dimuat atau hanya untuk pengujian?Jawaban:
Karena pertanyaannya sepertinya bukan magento centric, inilah jawaban saya yang tidak terlalu magento.
Caching OpCode dan optimisasi DB adalah cara yang baik untuk mempercepat aplikasi web Anda sampai batas tertentu. Tetapi manfaatnya akan relatif moderat. Untuk mendapatkan peningkatan kecepatan nyata, Anda harus mempertimbangkan untuk menggunakan cache pernis. Ini adalah open source, mudah dikonfigurasi dan mudah diintegrasikan dengan magento berkat modul yang tersedia secara bebas untuk magento.
Ada juga artikel bagus dengan ikhtisar singkat tentang cara kerjanya: http://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.html
Terutama perhatikan grafik:
sumber
Jika bisnis Anda bergantung pada hosting Anda yang berkinerja baik, mengapa Anda mencoba mengelola server tanpa pengalaman.
Anda pasti akan mendapat manfaat hanya dengan menghubungi tuan rumah Magento spesialis dan membiarkan mereka mengurus administrasi sistem, sementara Anda melakukan apa yang Anda kuasai, mengelola toko Anda.
Melihat spesifikasi Anda, Anda tidak memiliki cukup RAM untuk mencoba menjalankan toko Magento. Ada banyak pertanyaan serupa seperti milik Anda,
https://serverfault.com/a/400748/113375 .
/server/430565/magento-hosting-on-a-budget
sumber
Apakah ini perangkat keras fisik atau server pribadi virtual? Anda mungkin harus memindahkan database ke server khusus sendiri. Ini juga memberi Anda manfaat untuk dapat mengisolasi apakah masalah kecepatan Anda terletak pada Apache / PHP atau dengan MySQL.
start_session () menjadi lambat berarti Anda mungkin menderita perangkat keras yang kurang bertenaga. Saya tidak tahu apakah pilihan teknologi Anda berarti bahwa sesi disimpan di disk atau di RAM tetapi 500-700ms hampir pasti berarti mereka disimpan di disk dan Anda mengalami masalah kinerja I / O - mungkin karena database Anda swapping ke disk karena tidak muat di RAM ... tapi itu semua spekulasi.
Semoga berhasil!
sumber
free -m
akan memberi tahu Anda jika Anda menggunakan swap sama sekali, dan versi terbaru daritop
perintah itu akan memberi tahu Anda jika tekan O dan P untuk memesan dengan menggunakan swap. Kalau tidak, Anda harus kembali menggunakan id proses mysqld dengan sesuatu seperti ini:awk '/^Swap:/ { SWAP+=$2 } END { print SWAP" kB" }' /proc/$(pidof mysqld)/smaps
Semua dijelaskan di sini: dbasquare.com/2012/04/10/…Jelas tidak ada cara untuk menunjukkan kepada Anda 'konfigurasi kerja' yang akan meningkatkan kinerja Anda, tetapi Magento benar-benar berusaha melakukan sesuatu seperti ini dan memposting contoh tumpukan LAMP yang sangat terkonfigurasi dalam whitepaper kinerja mereka. Metodologi whitepaper ini berlaku untuk CE dan EE. Saya sangat merekomendasikan membaca kedua whitepaper sepenuhnya karena ide-ide yang disarankan ada banyak gema dari thread ini dan memberikan rekomendasi Magento yang sangat spesifik, langsung dari sumber: http://www.magentocommerce.com/whitepaper/
sumber
Konfigurasi
ZendFramework (pengoptimal zend dan cache data zend) + APC + Memcache + Nginx
bekerja sempurna untukku.
lebih dari 30 pengguna setuju dapat memuat halaman kurang dari satu detik (~ 0.4s-0.6s)
Saya mengatur nginx di 80 port (sebagai proxy) dan apache di 8080.
Terima kasih kepada @MattSchweers untuk tautannya. Saya lupa tentang itu. Ini membantu saya untuk mengkonfigurasi MySQL
sumber
dalam pengalaman saya server litespeed meningkatkan kinerja 2 x senilai lisensi $ 32 / bulan 1cpu. Saya diberitahu bahwa Anda hanya memerlukan lisensi 1cpu karena php berjalan terpisah di litespeed.
sumber
Ketika Anda memiliki beberapa toko web dan beberapa kategori, Magento pada dasarnya menciptakan semacam produk karetsian entri untuk semua toko web, kategori dan produk, yang akan memberi beban signifikan pada Database. Kehilangan APC Anda cukup tinggi, dan Anda harus memeriksanya. Namun bahkan jika Anda memperbaiki APC, saya pikir masalah kinerja Anda mungkin akan bertahan terutama jika lalu lintas Anda meningkat. Untuk mempercepat situs Anda, Anda perlu menginstal op cache, baik Varnish atau cache halaman penuh (jika Edisi Perusahaan).
Magento tidak banyak menulis menulis ke DB sehingga Anda juga dapat mencoba untuk memiliki MySQl Anda dalam mode replikasi Master Slave memiliki semua magento membaca dari budak, sementara menulis terjadi pada master.
sumber
Saya akan mencoba mengubah opsi APC berikut dan melihat apakah hit mengambil.
apc.shm_segments 1
apc.ttl 7200
apc.user_ttl 7200
Di situs langsung, Anda juga dapat menggunakan yang berikut ini.
apc.stat 0
Ini akan berhenti memeriksa APC jika file telah berubah sejak dikompilasi terakhir, memberi Anda dorongan kecepatan yang bagus. Hanya saja jangan lupa untuk menyiram cache APC Anda ketika Anda mengedit file PHP.
sumber
Berpasangan dengan pemikiran lain. Anda mungkin ingin meningkatkan innodb_buffer_pool_size Anda, 128M bisa sedikit rendah dan bahkan situs kecil dapat tumbuh dengan cepat. Variabel menentukan berapa banyak data Anda disimpan dalam memori.
Magento menggunakan ini untuk semua tabel itu termasuk tabel log yang tumbuh dengan cepat. Anda akan ingin memastikan Anda membatasi jumlah data yang Anda simpan. Menjalankan "php shell / log.php --status" dari baris perintah akan memberi Anda gambaran tentang di mana Anda berada dan apakah itu tidak terkendali. Ada juga opsi untuk membersihkan tabel log dengannya.
2GB RAM tidak banyak bekerja sehingga Anda harus berhati-hati tentang di mana Anda mengalokasikan memori Anda.
Cache Halaman Penuh + Penghangat Cache dapat membantu menjaga katalog situs Anda dan halaman cms tetap prima dan cepat. Anda dapat melihat milik kami di sini: http://ecommerce.brimllc.com/full-page-cache-magento.html
sumber