Memuat halaman Magento terlalu banyak waktu

10

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 .

  1. 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.

  2. 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: masukkan deskripsi gambar di sini

Mengapa hit sangat kecil? Ada ide?

Anthony
sumber
Akan lebih baik jika Anda melepaskan beberapa baris tentang instalasi Magneto Anda (mis. Ukuran katalog, modifikasi, ekstensi dll).
user487772
Tidak ada cara seseorang bisa memposting serangkaian file konfigurasi agar Anda dapat mengatur server dengan benar. Ada puluhan file; revisi khusus perubahan perangkat lunak dan tingkat sistem yang perlu dilakukan untuk memaksimalkan perangkat keras Anda yang tersedia.
Ben Lessani - Sonassi
Tolong jelaskan mengapa Anda menetapkan downvote
Anthony
@Tim Saya memperbarui pertanyaan
Anthony
2
Saya akan mampir xhprofdan mencoba untuk mendapatkan visualisasi dari apa yang mengambil waktu paling banyak untuk memuat. Apakah ini server produksi sedang dimuat atau hanya untuk pengujian?
philwinkle

Jawaban:

6

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:

halaman / detik

mryvlin
sumber
4
Varnish sangat bagus jika Anda sudah memiliki toko cepat dan ingin mengimbangi sumber daya. Tapi itu tidak boleh digunakan untuk menyembunyikan fakta bahwa toko itu lambat. Halaman masih harus dibuat di tempat pertama - jadi mereka akan selalu 6-10 kali memuat halaman, terlepas dari itu.
Ben Lessani - Sonassi
Sepertinya itu akan seperti memcached yang pernah saya gunakan sebelumnya. Saya rasa saya melakukan kesalahan pada properti mysql atau server terlalu lemah
Anthony
2

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

choco-loo
sumber
Karena klien kami memiliki batas anggaran. Saya harus membayar untuk host magento lebih dari 50 euro per bulan. Kami memiliki batasan untuk penyelenggaraan 150-200 euro per tahun-) Bagaimanapun, terima kasih atas tautannya
Anthony
1
Kemudian klien dapat mengharapkan untuk membuat ~ $ 20-40.000 / tahun pendapatan dengan optimasi 100% (hosting adalah 0,5-1% dari pendapatan). Banyak orang di sini yang dapat memberi Anda semua detail dan pengaturan teknis, tetapi Anda mencoba melakukan banyak hal dengan terlalu sedikit. Anda mungkin membuatnya bekerja di sisi teknis, tetapi di sisi bisnis itu akan gagal. Kecuali jika halaman dinamis Anda dimuat (tanpa fpc) di bawah 3s Anda kehilangan 56% pengunjung, dengan ideal menargetkan 1-2s - Google dan konversi pengunjung akan menghukum situs sebaliknya - panggilan yang sulit. Dengan situasi ini, peluang 95-99%> 3s memuat halaman dan / atau situs berjalan.
1

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!

Ralph Tice
sumber
Terima kasih atas jawaban anda! Saya menggunakan VPS. Ini tidak terlalu cocok untuk magento tapi saya punya tugas untuk mengoptimalkannya dalam lingkup ini. Apakah mungkin untuk memeriksa apakah basis data bertukar ke disk?
Anthony
1
free -makan memberi tahu Anda jika Anda menggunakan swap sama sekali, dan versi terbaru dari topperintah 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/…
Ralph Tice
1

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
1

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

Anthony
sumber
tidak masalah! Saya benar-benar menggunakan whitepapers itu untuk beberapa tweaker MySQL sendiri minggu ini - bekerja dengan baik.
1

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.

Kevin Chavez
sumber
Server web bukan hambatannya. PHP, mengubah ke Litespeed tidak akan mengubah apa pun.
Ben Lessani - Sonassi
Walaupun saya umumnya setuju bahwa Litespeed adalah pilihan yang bagus untuk Magento, jawaban ini mungkin tidak akan memperbaiki masalah yang ditimbulkan oleh OP dan itu di luar anggaran yang dinyatakannya.
Preston
0

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.

pengguna427
sumber
0

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.

PeteZero1
sumber
0

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

Meluap
sumber