Это - время, когда Ваш процесс (Размещенный Azure) загружается и выполнение. Ваши заряды вычисляются комбинацией, Вычисляют Час и используемую пропускную способность.
Я вижу, что кто-то пытается закрыть этот Вопрос. Я думаю, что это - справедливый вопрос для stackoverflow, это находится на краю того, чтобы быть вопросом о программировании (Azure вычисляют, среда, очень относящаяся к программированию), и не соответствует приятно больше нигде.
Это похоже на стандартную конфигурацию Apache, хотя кажется, что часть его была разделена из-за него бывший похожий на HTML.
Необходимо исследовать то, что происходит, когда сервер медленно отвечает. Вы не говорите спецификации Вашего сервера, но упоминание его специализированного, и 10k/day должен быть легко обработан.
Предположение, ЦП является, вероятно, узким местом, вызванным PHP. Используя APC и WP кэширующийся плагин является хорошими методами облегчить это, которое Вы уже сделали. Вы могли также попробовать модель процесса "MPM" Apache вместо "Предварительного ветвления". Удостоверьтесь, что у Вас есть достаточно памяти, выделенной APC так, чтобы это могло кэшировать Ваши Сценарии PHP и не 'мисс'.
Это мог также быть MySQL - видят, является ли это hogging ЦП или диск.
Рассмотрите выключение mod_deflate, если Вам включили его - оно действительно предоставляет преимущество для времени загрузки, но может увеличить загрузку ЦП. Могло бы стоить попробовать.
Используйте инструмент как 'осада' или 'ab' для сравнительного тестирования сервера и фигуры, в которой точке замедляется сервер.
Вот некоторые мои закладки от настройки производительности веб-сервера: http://articles.slicehost.com/2010/5/19/configuring-the-apache-mpm-on-ubuntu
http://www.devside.net/articles/apache-performance-tuning
http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/
Но мой исходный совет остается, то же - узнают то, что узкое место является первым! Иначе Вы вслепую пытаетесь улучшить производительность (и верная, улучшающая производительность всегда хороша), но не зная, который область сосредоточить Ваше внимание.
Также включите модуль состояния сервера и посещение, что для обнаружения, что происходит.
Вы могли бы подкачивать. Вы проверили vmstat, в то время как это происходит? 2 ГБ RAM для 80 MaxClients составляют только 25 МБ для каждого (предположение, что поле не делает ничего больше.) Ваш MaxClients мог бы быть слишком высоким. Решение для этого очевидно: добавьте больше RAM или понизьте MaxClients. Если командная строка не спешит отвечать при перезапуске апача это - один признак этой ситуации.
Также возможно, что Вы - ложка, подающая некоторые мобильные клиенты (или другие клиенты на медленных соединениях) с 'большими' файлами, таким образом, использующими все Ваши доступные апачские слоты. Возможно, у Вас есть слишком мало MaxClients. Проверка состояния сервера скажет Вам, что каждый из тех клиентов делают в то время. Одно решение для этой ситуации состоит в том, чтобы увеличить MaxClients (но это могло бы также превратиться в ситуацию выше.) Лучшее решение для этого состоит в том, чтобы установить акселератор HTTP перед апачем (одна бесплатная опция является perlbal.), Если Ваша командная строка является нормальной скоростью, когда Вы перезапускаете апача, это - один признак этой ситуации.
Используя mod_status способ видеть то, что продолжается в нескольких экземплярах Apache, но обратите внимание на то, что он действительно повредит производительность. Это, кажется, ест память, и в одном случае я не смог диагностировать, если это была причина для единственных тупиков процесса в установке reverse-proxy-only, где ничто не подавалось непосредственно. О них, конечно, сообщают пользователи как, "это берет навсегда для загрузки страницы". Они даже не понимают, что различием между "им составили бы еще 10 секунд для ожидания" и "это никогда не будет заканчиваться", поскольку они обычно поражают Остановку в своем браузере после некоторых (<10) секунды.
Также проверьте, настраиваете ли Вы корректное место (легкий видеть использование mod_status, так как Вы видите сумму экземпляров/процессов). Конфигурация запаса, по крайней мере, под человечностью имеет разделы ifdef'ed на режим миля в минуту, и легко отредактировать режим рабочего при выполнении предварительного ветвления (как предложено расхожим мнением из нечеткого чувства, что PHP не ориентирован на многопотоковое исполнение).
О, и больше всего: Выполненный на как корень и часы для истраченных ресурсов. Память, диск, ЦП - Вы будете видеть.
Еще один: идея деактивировать mod_deflate может быть хорошей, хотя Ваша установка не подвержена ошибке неправильной информации о Довольной Длине, заставляющей браузер ожидать данных, "навсегда" дающих Вам отчеты "мертвых, медленных" к "не ответу".
BTW: 10K поставил, страницы в день плюс медиа-файлы на этой машине должны только быть проблемой, если они все навещают за один час.
Некоторые советы, особенно если Вы размещаете много медиа-файлов:
Это - большая стопка производительности WordPress для минимума к среднему единственному серверу или VPS. Я классифицирую средний как одноядерного приблизительно с 1G памяти и довольно быстро управляю.
На Вашем поле это было бы способно к обслуживанию по 10K просмотрам страницы в час
С Общим Кэшем W3 мы используем диск для кэша страницы и уменьшаем, потому что Nginx будет обслуживать наши статические файлы очень быстро.
Проблема с использованием одного только Apache состоит в том, что это открывает соединение и поражает php в каждый запрос даже на статические файлы. Это тратит впустую соединения, потому что Apache сохранит их открытыми и когда у Вас будет большой трафик, Ваши соединения будут срываться, даже если они не будут использоваться.
Apache по умолчанию прислушивается к запросам на порте 80, который является веб-портом по умолчанию. Сначала мы собираемся внести изменения в наш Apache conf и виртуальные файлы hosts для слушания на порте 8080.
httpd.conf
установите KeepAlive на прочь
ports.conf
NameVirtualHost *:8080
Listen 8080
На сайт виртуальный хост
<VirtualHost 127.0.0.1:8080>
ServerAdmin info@yoursite.com
ServerName yoursite.com
ServerAlias www.yoursite.com
DocumentRoot /srv/www/yoursite.com/public_html/
ErrorLog /srv/www/yoursite.com/logs/error.log
CustomLog /srv/www/yoursite.com/logs/access.log combined
</VirtualHost>
Необходимо также установить mod_rpaf, таким образом, журналы будут содержать реальные IP-адреса посетителей. Если не Ваши журналы будут иметь 127.0.0.1 как инициирующий IP-адрес.
На Debian можно использовать репозитории для установки, но они только содержат версию 0.6.33. Для установки более поздней версии, необходимо добавить, что lenny бэкпортирует пакеты
$ nano /etc/apt/sources.list
Добавьте эту строку к файлу deb http://www.backports.org/debian lenny-backports main
$ nano /etc/apt/preferences
Добавьте следующее к файлу:
Package: nginx
Pin: release a=lenny-backports
Pin-Priority: 999
Дайте следующие команды для импорта ключа из backports.org, чтобы проверить пакеты и обновить базу данных пакета системы:
$ wget -O - http://backports.org/debian/archive.key | apt-key add -
$ apt-get update
Теперь установка с Кв. - добирается
apt-get install nginx
Это намного легче, чем компиляция из источника.
nginx.conf
user www-data;
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
client_body_temp_path /var/lib/nginx/body 1 2;
gzip_buffers 32 8k;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_comp_level 6;
gzip_http_version 1.0;
gzip_min_length 0;
gzip_types text/html text/css image/x-icon
application/x-javascript application/javascript text/javascript application/atom+xml application/xml ;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Теперь необходимо будет создать Nginx виртуальный хостинг. Мне нравится использовать поддерживающий сайты метод с каждым sym хоста v, связанным с файлом в доступном сайтам каталоге.
$ mkdir /etc/nginx/sites-available
$ mkdir /etc/nginx/sites-enabled
$ touch /etc/nginx/sites-available/yourservername.conf
$ touch /etc/nginx/sites-available/default.conf
$ ln -s /etc/nginx/sites-available /etc/nginx/sites-enabled
$ nano /etc/nginx/sites-enabled/default.conf
default.conf
Примечание:
Статические параметры кэширования в следующих файлах будут только работать, если плагин интегратора кэша прокси-сервера Nginx будет включен.
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=staticfilecache:180m max_size=500m;
proxy_temp_path /var/lib/nginx/proxy;
proxy_connect_timeout 30;
proxy_read_timeout 120;
proxy_send_timeout 120;
#IMPORTANT - this sets the basic cache key that's used in the static file cache.
proxy_cache_key "$scheme://$host$request_uri";
upstream wordpressapache {
#The upstream apache server. You can have many of these and weight them accordingly,
#allowing nginx to function as a caching load balancer
server 127.0.0.1:8080 weight=1 fail_timeout=120s;
}
На сайт WordPress conf (Для много сайта Вам только будет нужен один vhost),
server {
#Only cache 200 responses, and for a default of 20 minutes.
proxy_cache_valid 200 20m;
#Listen to your public IP
listen 80;
#Probably not needed, as the proxy will pass back the host in "proxy_set_header"
server_name www.yoursite.com yoursite.com;
access_log /var/log/nginx/yoursite.proxied.log;
# "combined" matches apache's concept of "combined". Neat.
access_log /var/log/apache2/nginx-access.log combined;
# Set the real IP.
proxy_set_header X-Real-IP $remote_addr;
# Set the hostname
proxy_set_header Host $host;
#Set the forwarded-for header.
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
# If logged in, don't cache.
if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
set $do_not_cache 1;
}
proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
proxy_cache staticfilecache;
proxy_pass http://wordpressapache;
}
location ~* wp\-.*\.php|wp\-admin {
# Don't static file cache admin-looking things.
proxy_pass http://wordpressapache;
}
location ~* \.(jpg|png|gif|jpeg|css|js|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
# Cache static-looking files for 120 minutes, setting a 10 day expiry time in the HTTP header,
# whether logged in or not (may be too heavy-handed).
proxy_cache_valid 200 120m;
expires 864000;
proxy_pass http://wordpressapache;
proxy_cache staticfilecache;
}
location ~* \/[^\/]+\/(feed|\.xml)\/? {
# Cache RSS looking feeds for 45 minutes unless logged in.
if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
set $do_not_cache 1;
}
proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
proxy_cache_valid 200 45m;
proxy_cache staticfilecache;
proxy_pass http://wordpressapache;
}
location = /50x.html {
root /var/www/nginx-default;
}
# No access to .htaccess files.
location ~ /\.ht {
deny all;
}
}
Сам Размещенный CDN conf
Для Вашего сам разместил CDN conf, только необходимо настроить его для обслуживания статических файлов без передачи прокси
server {
proxy_cache_valid 200 20m;
listen 80;
server_name yourcdndomain.com;
access_log /srv/www/yourcdndomain.com/logs/access.log;
root /srv/www/yourcdndomain.com/public_html/;
proxy_set_header X-Real-IP $remote_addr;
location ~* \.(jpg|png|gif|jpeg|css|js|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
# Cache static-looking files for 120 minutes, setting a 10 day expiry time in the HTTP header,
# whether logged in or not (may be too heavy-handed).
proxy_cache_valid 200 120m;
expires 7776000;
proxy_cache staticfilecache;
}
location = /50x.html {
root /var/www/nginx-default;
}
# No access to .htaccess files.
location ~ /\.ht {
deny all;
}
}
Теперь запустите серверы
$ /etc/init.d/apache2 restart
$/etc/init.d/nginx start
На Месте размещения Apache эта установка может теоретически обслуживать 1 833,56 запроса в секунду
$ ab -n 1000 -c 20 http://yoursite.com/