Tôi có trang web magento. Không có bất kỳ người dùng nào (tối đa 2-3 tại một thời điểm).
Máy chủ của chúng tôi là: CPU: 2000 MHz RAM: 2048Mb HDD: 50000Mb.
Tôi đã cài đặt ZendServerCE (apc + memcached + Zend Tối ưu hóa + Zend Data Cache). Tôi đã tắt memcached, vì trang web tải kém nhất. Tôi đặt cấu trúc kiểu phẳng, dữ liệu được lưu lại và lưu trong bộ điều khiển quản trị.
Vì vậy, tôi có apc + Zend Tối ưu hóa + Zend Data Cache .
Vấn đề đầu tiên là tôi đã kiểm tra thời gian chạy làm thế nào để công văn hoạt động. Cuộc gọi start_session () mất khoảng 500-700ms. Có vẻ như kết quả không tốt. Tại sao quá lâu, tôi không biết.
Tôi đã đọc bài này: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_key_buffer_size và tìm ra các tùy chọn tối ưu cho máy chủ của tôi.
Trên giờ:
Key_read_requests = 8887
Key_reads = 252
Key_write_request = 187
Key_writes = 146
Bạn thấy rằng 252/8887> 0,01, nhưng không quá nhiều. Đó là giá trị tối ưu tôi từng có. Kết quả khác bắt đầu từ> 6.
Đây là 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 vì một số lý do không tốt. Tôi đã tắt nó đi. Nhưng bộ đệm dữ liệu zend và trình tối ưu hóa zend vẫn hoạt động.
4 . APC có vẻ đúng. Để tải hành động của bộ điều khiển mất 3-4 giây lần đầu tiên (tôi đặt die () ở đó để kiểm tra) và lần đầu tiên phải mất 1 - 1,3 giây.
5. Sau vài phút tôi đã khởi động lại mysql tôi đã có kết quả tốt. Các trang đang tải từ 1,5 đến 2,5 giây. Nhưng bây giờ (sau vài giờ) phải mất 6-10 giây. Tôi không thể tìm thấy lý do.
Vì vậy, bạn có thấy một số cấu hình không chính xác ở đây? Có thể máy chủ của tôi không phù hợp với magento?
CẬP NHẬT 1: khoảng 600 danh mục và 1000 sản phẩm hiện nay và khoảng 20000 danh mục (cho các cửa hàng web khác nhau) và 1500-3000 sản phẩm trong tương lai.
Không có nhiều thuộc tính.
CẬP NHẬT 2 Tôi đã nói rằng ssh console hoạt động quá chậm. Tôi khởi động lại máy chủ và bây giờ nó hoạt động nhanh. nó có nghĩa là tôi có vấn đề với RAM. Không có đủ không gian.
Đó là trạng thái ban đầu mà không có apache:
total used free shared buffers cached
Mem: 2048 600 1447
CẬP NHẬT 3 Tôi đã nhận nó. Bây giờ nó được tải trong 0,5-1,5 giây
Đây là cấu hình: 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
Tất cả đều hoạt động hoàn hảo, nhưng vẫn còn một câu hỏi. APC cho tôi thấy statisic này:
Tại sao hit quá nhỏ? Có ý kiến gì không?
xhprof
và cố gắng để có được một hình dung về những gì đang mất nhiều thời gian nhất để tải. Đây có phải là một máy chủ sản xuất đang tải hoặc chỉ để thử nghiệm?