マジェントのウェブサイトを持っています。ユーザーはいません(一度に最大2〜3人)。
サーバー:CPU:2000MHz RAM:2048Mb HDD:50000Mb。
ZendServerCE(apc + memcached + Zend Optimizer + Zend Data Cache)をインストールしました。ウェブサイトの読み込みが最悪だったため、memcachedをオフにしました。管理コンソールでフラットタイプの構造、インデックスの再作成、データのキャッシュを設定しました。
だから私はapc + Zend Optimizer + Zend Data Cacheを持っています。
最初の問題は、ディスパッチがどのように機能するかをランタイムで確認したことです。start_session()の呼び出しには約500〜700ミリ秒かかります。その良い結果ではないようです。なぜそんなに長いのかわかりません。
私はこれを読みました:http : //dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_sizeそして私のサーバーに最適なオプションを見つけました。
1時間当たり:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
252/8887> 0.01ですが、多すぎません。それは私が今までに得た最適な値です。その他の結果は> 6から始まりました。
ここに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が良くなかった。オフにしました。ただし、zendデータキャッシュとzendオプティマイザは引き続き機能します。
4。APCは正しいようです。コントローラーアクションをロードするには、最初に3〜4秒かかり(確認のためにdie()を設定しました)、初めて1〜1.3秒かかります。
5。数分後、mysqlを再起動したところ、良い結果が得られました。ページは1.5〜2.5秒で読み込まれていました。しかし、今(数時間後)は6〜10秒かかります。理由がわかりません。
それで、ここに間違った設定がいくつかありますか?サーバーがmagentoに適していない可能性がありますか?
更新1:現在 約600のカテゴリーと1000の製品、および約20000のカテゴリー(異なるWebストアの場合)と将来の1500-3000の製品。
多くの属性はありません。
更新2 sshコンソールの動作が遅すぎることに気づきました。サーバーを再起動したところ、高速に動作しました。RAMに問題があることを意味します。十分なスペースがありません。
これはApacheなしの初期状態です:
total used free shared buffers cached
Mem: 2048 600 1447
更新3わかり ました。今それは0.5-1.5秒間ロードされます
ここに設定があります: 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
すべてが完璧に動作しますが、1つの質問が残っています。APCは私にこの統計を示しています:
なぜヒットが非常に小さいのですか?何か案は?
xhprof
立ち寄って、ロードに最も時間がかかっているものを視覚化してみます。これは負荷がかかっている本番サーバーですか、それとも単なるテスト用ですか?