oo22rus

Рейтинг
36
Регистрация
10.10.2011
Оптимизайка:
Ни разу не видел, чтобы nginx уходил в своп при отдаче статического файла. Вы уверены, что дело в нем? Или файл не статический?
Какая у вас нагрузка - сколько запросов в секунду, приблизительно?

Сразу скажу, у меня опыта еще не особо много в настройке сервера, чуть больше недели... Но, по мне так в нем. Ну где-то 7к трафик, онлайн бывает 40 человек. Большая часть памяти уходит под дисковый кеш и пока эти 40 человек качаю она не освобождается, ведь так? Я думаю так, а какой нибудь mysql или чему-то еще, нужна память и тут начинается использование свапа.

Оптимизайка:
А почему вы считаете, что память "уходит"? Все нормально же вроде. Используется меньше 200K, свободной памяти куча. Вас значение "cached" смущает? Ну так это нормально, Linux всю свободную память старается отдать под дисковый кэш, при необходимости он её оттуда изымает.

Вот я тоже так думал, что все вроде норм, занято не много памяти, но как начинаю увеличивать параметры в конфигах начинается использование свапа, а это ведь не есть гуд. А текущие настройки не подходят для нагруженного сайта, серв виснет и перезагружается. Если я правильно понял, nginx перед тем как отдать файл пользователю, отправляет его с начало в память (кеш), а потом отдает уже. Я же хочу, что бы при отдачи 1 файла выделялась, допустим, 5Mb памяти под это дело, а не размер файла + ~30%.

Я выше уже цитировал и давал ссылку на похожую ситуацию, но вот процитирую полность последний пост:

Проблему решил. Добавил в конфиг виртуального сервера в раздел server {} две директивы:
directio 512;
output_buffers 1 256k;
Теперь при скачивании файла размером в 1.7 ГБ выделяется 5 мб оперативной памяти
Наверно, нужно ещё подобрать определённые значения для достижения минимальных затрат, хотя лично меня и такие устраивают =)

Вот я тоже так хочу сделать... Но ток у меня почему то эти директивы не работают.

---------- Добавлено 28.01.2015 в 22:28 ----------

И еще, меня кеш не смущает, а вот свап очень =)

V2NEK:
oo22rus, вынесите location со статикой за пределы location /

Сделал так:


location / {
proxy_pass http://ip:8080;
}
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|tar|tgz|gz|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mp4|mpeg|mpg|wmv|dmg|zip|rar|swf|msi|exe)$ {
# проверяю
directio 512k;
output_buffers 1 256k;

root /home/user/web/сайт.ru/public_html;
access_log /var/log/apache2/domains/сайт.log combined;
access_log /var/log/apache2/domains/сайт.ru.bytes bytes;
expires max;
try_files $uri @fallback;
}

Но не помогло, память уходит, вот пример:


total used free shared buffers cached
Mem: 2061288 1519664 541624 0 10600 1344288
-/+ buffers/cache: 164776 1896512
Swap: 522236 0 522236
роот:~$ free
total used free shared buffers cached
Mem: 2061288 1667984 393304 0 10608 1489052
-/+ buffers/cache: 168324 1892964
Swap: 522236 0 522236
роот:~$ free
total used free shared buffers cached
Mem: 2061288 1766448 294840 0 10620 1583484
-/+ buffers/cache: 172344 1888944
Swap: 522236 0 522236
роот:~$ free
total used free shared buffers cached
Mem: 2061288 1517160 544128 0 10688 1340244
-/+ buffers/cache: 166228 1895060
Swap: 522236 0 522236
Andreyka:
Забыл рестартануть nginx после изменения конфига?

Нет, не забыл, с этим у меня проблем нет=)

Вот кфг:

nginx.conf


# Server globals
user www-data;
worker_processes 1;
worker_priority -5;
error_log /var/log/nginx/error.log error;
pid /var/run/nginx.pid;


# Worker config
events {
worker_connections 2048;
use epoll;
}


http {
# Main settings
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_header_buffer_size 1k;
client_body_buffer_size 2k;
client_max_body_size 500m;
large_client_header_buffers 4 8k;
send_timeout 10;
keepalive_timeout 20 20;
reset_timedout_connection on;
server_tokens off;
server_name_in_redirect off;
server_names_hash_max_size 512;
server_names_hash_bucket_size 512;

open_file_cache max=20000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors off;


# Log format
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format bytes '$body_bytes_sent';
#access_log /var/log/nginx/access.log main;
access_log off;


# Mime settings
include /etc/nginx/mime.types;
default_type application/octet-stream;


# Compression
gzip on;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_buffers 64 8k;
gzip_types text/plain text/css application/json
application/x-javascript text/xml application/xml
application/xml+rss text/javascript application/javascript;
gzip_proxied any;


# Proxy settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;


# SSL PCI Compliance
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE...";


# Error pages
error_page 403 /error/403.html;
error_page 404 /error/404.html;
error_page 502 503 504 /error/50x.html;


# Cache
proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=128m;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_temp_path /var/cache/nginx/temp;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_valid any 3d;

map $http_cookie $no_cache {
default 0;
~SESS 1;
~wordpress_logged_in 1;
}


# Wildcard include
include /etc/nginx/conf.d/*.conf;
}

Конфиг виртуального сервера


server {
listen ip:80;
server_name сайт.ru www.сайт.ru;
error_log /var/log/apache2/domains/сайт.ru.error.log error;

location / {
proxy_pass http://ip:8080;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|tar|tgz|gz|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mp4|mpeg|mpg|wmv|dmg|zip|rar|swf|msi|exe)$ {
# проверяю
directio 512k;
output_buffers 1 256k;

root /home/user/web/сайт.ru/public_html;
access_log /var/log/apache2/domains/сайт.log combined;
access_log /var/log/apache2/domains/сайт.ru.bytes bytes;
expires max;
try_files $uri @fallback;
}
}

location /error/ {
alias /home/user/web/сайт.ru/document_errors/;
}

location @fallback {
proxy_pass http://ip:8080;
}

location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}

include /home/user/conf/web/nginx.сайт.ru.conf*;
}

Сори что не в тему, но скиньте пожалуйста ребят мне в лс ссылки хостигов которыми вы пользуетесь (которые не будут ругаться за инсталмонстр). А то у меня хост лег с 3 чесов ночи по мск =(( Ведать настало время сменить хостинг...

Web-lomaster:
А у кого нибудь сайты с открытым кодом ПП живут в яндексе продолжительное время? Что-то по сообщениям у всех все плохо.

А как понять с открытым кодом? То есть, просто на сайт подключёны стандартным вариантом?

ru-traff:
PS: у всех кого сайты попали в бан АВ/пессимизировались- пишите нам, будем разбираться предметно
а то пишут что забанили, пп г..но и т.п- проверяем-а там крики с вирусней раздаются, и люди удивляются

Хорошо, я сейчас в поддержку напишу, по поводу бана антивирусом аваст...

PS: 2 сайта в бане, первый сайт в пп с 2013-06-24, второй с 2013-10-10, на сайтах установлен код пп универсальный. ПП не менялась.

Причина попадания в бан аваста не выяснил пока =)

Если просто снять код результата же не будет? нужно будет писать в тех.поддержку ав?

окей. А какие права рекомендуется ставить на фалы модуля/кода?

eteka:
У меня СРМ был вообще 800-900, написал в саппорт - оказывается модуль дле отдавал старый домен..

А если у меня припаркован домен, или это не имеет значения?

На всякий случай,перезалью код...

У меня как то так:

У одного спм в среднем ~1500

а у другого все как-то меньше и меньше становиться =(

Всего: 47