Я выполняю некоторые тесты осады на моем сервере nginx. Узкое место не похоже на процессор или память, так что же это?
Я пытаюсь сделать это на моем MacBook:
sudo siege -t 10s -c 500 server_ip/test.php
Время отклика доходит до 10 секунд, я получаю ошибки и прекращаю осаду до завершения.
Но я, если запустить выше на моем сервере
siege -t 10s -c 500 localhost/test.php
Я получил:
Transactions: 6555 hits
Availability: 95.14 %
Elapsed time: 9.51 secs
Data transferred: 117.30 MB
Response time: 0.18 secs
Transaction rate: 689.27 trans/sec
Throughput: 12.33 MB/sec
Concurrency: 127.11
Successful transactions: 6555
Failed transactions: 335
Longest transaction: 1.31
Shortest transaction: 0.00
Я также заметил, что для меньших одновременных показателей, я получаю значительно улучшенную скорость транзакций на локальном хосте по сравнению с внешними.
Но когда вышеперечисленное работает на локальном хосте, загрузка процессора низка, использование памяти низко на HTOP. Поэтому я не понимаю, как повысить производительность, потому что не вижу узкого места.
ulimit возвращает 50000, потому что я его увеличил. Есть 4 рабочих процесса nginx, что в 2 раза больше, чем у меня. Вот мои другие настройки
worker_rlimit_nofile 40000;
events {
worker_connections 20000;
# multi_accept on;
}
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
Test.php — это просто эхо-скрипт phpinfo (), ничего больше. Нет соединений с базой данных.
Я считаю, что машина имеет большой размер AWS m3, 2 ядра и около 7 ГБ оперативной памяти.
Вот содержимое моего блока сервера:
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/sitename;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
try_files $uri $uri.html $uri/ @extensionless-php;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Также это было в моем журнале ошибок:
connect() to unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, cli$
Задача ещё не решена.
Других решений пока нет …