Я играю с Magento CE на Nginx, и он работает нормально.
Проблема начинается, когда я провожу нагрузочный тест на 500 пользователей. В php-fpm
процесс загружает все процессоры до 100%, и я начинаю получать 404 в качестве ответа.
Вот моя конфигурация nginx
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=magento:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
server {
...
location ~ \.php$ {
try_files $uri =404;
expires off;
fastcgi_cache magento;
fastcgi_cache_valid 200 60m;
fastcgi_cache_methods GET HEAD;
add_header X-Fastcgi-Cache $upstream_cache_status;
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
fastcgi_read_timeout 900s;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
Я немного новичок в nginx
и fastcgi
поэтому не совсем уверен, на каких конфигах мне следует сосредоточиться.
Я включил zend opcache, поэтому верю php-fpm
не должно быть в стрессе. Верно ли это предположение?
Мой друг говорит, что его ожидаемое поведение, и он будет работать на 100% на двухъядерной машине. Но мне трудно поверить. Nginx работает очень быстро, если я провожу статический тест загрузки файлов. Это просто PHP, который тормозит.
Мысль?
Magento - тяжелая программа. Почему вы думаете, что ваш сервер НЕ будет кричать от агонии во время теста производительности на 500 пользователей? Конечно, обслуживание статического контента происходит быстро, но разбор всего этого черного магического PHP, который содержит Magento ... ну, это тяжелая работа для вашего сервера.
Кэш операционного кода PHP не означает, что ваш PHP будет таким же быстрым, как статический контент. Без какого-либо внешнего кеша (такого как Varnish или Squid) ему все равно нужно делать много вещей, включая некоторые тяжелые SQL-запросы, поэтому общая производительность будет от нескольких десятков загрузок страниц в секунду до, возможно, 100 загрузок страниц в секунду. сек, не более. (Если Magento каким-то образом не оптимизировал свой код СТОЛЬКО с тех пор, как я последний раз пробовал его)