Оптимизация Apache на слабом VDS

123 4
P
На сайте с 08.03.2007
Offline
250
#11

Судя по всему, медленные клиенты держат запросы апача слишком долго, в чём и причина Ваших страданий. Вам надо поставить nginx как фронтэнд к апачу. На апаче изменить только порт, больше трогать ничего не надо - и уже по памяти ситуация стабилизируется. Работы на минуты, а эффект будет сразу.

Ну и посмотреть на mysql - как там обстоят дела с кэшированием запросов.

V
На сайте с 28.02.2008
Offline
14
#12

Pilat, включили nginx. Действительно, это помогло. Спасибо!

K
На сайте с 12.07.2006
Offline
295
Kpd
#13
vibro:
По top'у мускуль есть немного. Много ест Apache (десятки процессов по 12-16 Мб).

Поставьте перед Апачем что-нибудь легкое, nginx, например.

DA
На сайте с 04.02.2005
Offline
165
#14

1) nginx отдавать всю статику (картинки, css, js)

2) FastCGI

3) для 50000 в сутки слишком большое кол-во процессов httpd

4) Попробуйте добавить APC или eAccellerator

тыщ-пыщ
V
На сайте с 28.02.2008
Offline
14
#15

Итак, как я уже сказал, установка nginx в качестве фронтэнда помогло высвободить память. Сейчас используется около 50% памяти. Кол-во процессов httpd уменьшилось в 2-3 раза.

Кстати, перед установкой nginx проапгрейдили тариф VDS. Теперь имеем 560 Мгц и 256 Мб.

Сейчас производительность стала упираеться в процессор (он часто на 100% загружен). Практически все потребляет apache.

Новая задача: настроить apache (и возможно nginx) таким образом, чтобы задействовалось больше памяти и за счет этого уменьшилась нагрузка на процессор.

Напонимаю настройки apache:

KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 20
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 5
MaxRequestsPerChild 100
HostnameLookups Off

Nginx имеет дефолтные настройки.

DJ_AlieN, nginx обрабатывает всю статику. eAccellerator стоит. FastCGI попробуем.

DA
На сайте с 04.02.2005
Offline
165
#16

http://site.ru/server-status

или

http://site.ru/httpd-status

поизучайте, там будет понятно какие страницы "жрут" процессор

DJ_AlieN добавил 01.03.2008 в 15:08

Nginx имеет дефолтные настройки.

покажите пожалуйста nginx.conf

K
На сайте с 24.03.2004
Offline
223
#17

слов нет... сборище мегаодминов... пипец просто...

а ничего что MaxClients всего 5... ?

проверенная ддос защита (http://ddos-protection.ru) -> http://ddos-protection.ru (http://ddos-protection.ru), бесплатный тест, цена от размера атаки не зависит.
iBBi
На сайте с 13.02.2007
Offline
323
#18
kostich:
слов нет... сборище мегаодминов... пипец просто...

а ничего что MaxClients всего 5... ?

зато работает 😂

MaxClients 150 как по мне нормально

DA
На сайте с 04.02.2005
Offline
165
#19
kostich:
слов нет... сборище мегаодминов... пипец просто...

а ничего что MaxClients всего 5... ?

а зачем больше при оперативке 256 ?

V
На сайте с 28.02.2008
Offline
14
#20

DJ_AlieN, немного не понял это: "http://site.ru/server-status или http://site.ru/httpd-status". У меня нет таких дирректорий :)

Вот nginx.conf:

# This file was modified by pkgctl (c) ISPsystem 01-03-2008 10:10:35

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;
server_names_hash_bucket_size 64;
#gzip on;

# ISP server {
# ISP listen 80;
# ISP server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

# ISP location / {
# ISP root /usr/local/www/nginx;
# ISP index index.html index.htm;
# ISP }

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
# ISP error_page 500 502 503 504 /50x.html;
# ISP location = /50x.html {
# ISP root /usr/local/www/nginx-dist;
# ISP }

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include conf/fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
# ISP }


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443;
# server_name localhost;

# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

server {
listen 00.000.000.00:80;
server_name domain.ru www.domain.ru;
location / {
proxy_pass http://00.000.000.00:8080;
proxy_redirect http://00.000.000.00:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /home/site/data/www/domain.ru;
access_log /home/site/logs/domain.ru.access.log;
}
}
123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий