Помогите оптимизировать VDS

12
A
На сайте с 04.01.2009
Offline
168
2222

Собственно имеется VDS cup 1000, mem 768mb

php как CGI Nginx

Сайт форум IPB 2.3 посещаемость 3000уников онлайн примерно 100-250 постоянно

размер БД 350мб

Суть проблемы в том что не возможно выполнить некоторые запросы в БД например с форума удалить сразу несколько тысяч сообщений сразу слетает БД так же через форум не сделать бекап БД

Вот данные файла my.conf

# Example MySQL config file for small systems.

#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/db/mysql) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
default-character-set = cp1251

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 48M
max_allowed_packet = 12M
table_cache = 256
sort_buffer_size = 32M
read_buffer_size = 6M
join_buffer_size = 24M

myisam_sort_buffer_size = 4M
tmp_table_size = 4M

read_rnd_buffer_size = 12M
net_buffer_length = 8M
thread_stack = 512K
query_cache_size=64M
default-character-set=cp1251
default-collation=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake


# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = 1
default-character-set = cp1251

# Uncomment the following if you want to log updates
#log-bin=mysql-bin

# Uncomment the following if you are NOT using BDB tables
skip-bdb

skip-innodb

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/db/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/db/mysql/
#innodb_log_arch_dir = /var/db/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M
default-character-set = cp1251

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

default-character-set = cp1251
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout
Andreyka
На сайте с 19.02.2005
Offline
822
#1

Таймаут в php и fastcgi повысь - скрипт умирает не успев выполнить запрос

Не стоит плодить сущности без необходимости
A
На сайте с 04.01.2009
Offline
168
#2
Andreyka:
Таймаут в php и fastcgi повысь - скрипт умирает не успев выполнить запрос

в php.ini

этот параметр повышать?

; Maximum time (in secondes) for connect timeout. -1 means no limit
mysql.connect_timeout = 60

И насколько?

Вот ещё конфиг nginx.conf

#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;
reset_timedout_connection on;
#keepalive_timeout 0;
keepalive_timeout 65;



client_max_body_size 16m;
client_body_buffer_size 16m;

proxy_connect_timeout 360;
proxy_send_timeout 360;
proxy_read_timeout 360;

proxy_buffer_size 16m;
proxy_buffers 24 22m;
proxy_busy_buffers_size 32m;
proxy_temp_file_write_size 32m;

server_names_hash_max_size 1024;
server_names_hash_bucket_size 128;

proxy_buffering off;
# proxy_buffers 512 8k;
# proxy_buffer_size 8k;
# proxy_read_timeout 180;
# proxy_connect_timeout 300;
# proxy_send_timeout 600;
proxy_ignore_client_abort off;
proxy_intercept_errors off;


#gzip on;



# 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;
# }
#}

А таймаут у fastcgi где повышать?? и у меня php стоит как CGI а не как fastcgi в этом есть разница для таймаута?

Да и в

такие параметры


ServerRoot "/usr/local"
MaxClients 150
Timeout 60
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 8
StartServers 10
MinSpareServers 10
MaxSpareServers 15
MaxRequestsPerChild 0

и


<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
IPCConnectTimeout 160
IPCCommTimeout 160
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
Andreyka
На сайте с 19.02.2005
Offline
822
#3

Везде

Десять таймаутов

A
На сайте с 04.01.2009
Offline
168
#4

В смысле везде 10 если не трудно приведите пример

M
На сайте с 16.09.2009
Offline
278
#5
avgaz:
Собственно имеется VDS cup 1000, mem 768mb
php как CGI Nginx
Сайт форум IPB 2.3 посещаемость 3000уников онлайн примерно 100-250 постоянно
размер БД 350мб
Суть проблемы в том что не возможно выполнить некоторые запросы в БД например с форума удалить сразу несколько тысяч сообщений сразу слетает БД так же через форум не сделать бекап БД

Посмотрите свои настройки mysqltuner.pl. В вашем случае дело в том, что

некоторые запросы лочат таблицы слишком надолго :-) Используется myisam, база

большая. Может увеличение max_connections + оптимизация используемой памяти

скриптом тюнинга - поможет в вашем случае.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
A
На сайте с 04.01.2009
Offline
168
#6
myhand:
Посмотрите свои настройки mysqltuner.pl. В вашем случае дело в том, что
некоторые запросы лочат таблицы слишком надолго :-) Используется myisam, база
большая. Может увеличение max_connections + оптимизация используемой памяти
скриптом тюнинга - поможет в вашем случае.

почему то не получилось запустить mysqltuner.pl

запустил tuning-primer.sh

Вот что он мне выдал

SLOW QUERIES

The slow query log is NOT enabled.
Current long_query_time = 10 sec.
You have 90 out of 4945684 that take longer than 10 sec. to complete
Your long_query_time may be too high, I typically set this under 5 sec.

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery
See http://dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery.html

WORKER THREADS
Current thread_cache_size = 0
Current threads_cached = 0
Current threads_per_sec = 3
Historic threads_per_sec = 0
Threads created per/sec are overrunning threads cached
You should raise thread_cache_size

MAX CONNECTIONS
Current max_connections = 100
Current threads_connected = 3
Historic max_used_connections = 58
The number of used connections is 58% of the configured maximum.
Your max_connections variable seems to be fine.

MEMORY USAGE
(standard_in) 2: syntax error
[: -gt: unexpected operator
Max Memory Ever Allocated : 4.33 G
Configured Max Per-thread Buffers : 7.27 G
Configured Max Global Buffers : 122 M
Configured Max Memory Limit : 7.39 G
[: physical_memoryHR: bad number
[: physical_memoryHR: bad number
[: physical_memoryHR: bad number
export: =physical_memoryHR: bad variable name

Только вот не могу разобраться что к чему здесь и какие тут рекомендации??

avgaz добавил 13.10.2009 в 10:13

Ну специалисты подскажите плиз

Zaqwr
На сайте с 08.08.2007
Offline
111
#7

avgaz, остановите apache/nginx а потом повторите попытку.....

avgaz:
Собственно имеется VDS cup 1000, mem 768mb
avgaz:
MEMORY USAGE (standard_in) 2: syntax error [: -gt: unexpected operator Max Memory Ever Allocated : 4.33 G Configured Max Per-thread Buffers : 7.27 G Configured Max Global Buffers : 122 M Configured Max Memory Limit : 7.39 G

ужас какой-то у вас , обратитесь к админу

Администрирование, Linux, Cisco, Juniper
M
На сайте с 16.09.2009
Offline
278
#8
avgaz:
почему то не получилось запустить mysqltuner.pl

что помешало? подробнее можно?

avgaz:
запустил tuning-primer.sh

Вы уверены, что скрипт запускали _до_ рестарта mysqld после того как "слетела БД". Если упирается в max_connections - статистика будет сброшена.

Также, у Вас большинство переменных уже "оттюнены" от значений по-умолчанию,

например:

key_buffer = 48M

max_allowed_packet = 12M

table_cache = 256

sort_buffer_size = 32M

read_buffer_size = 6M

join_buffer_size = 24M

Зачем?

Вы уверены, что понимаете смысл этих изменений? sort/read buffer_size, например,

per-connection выделяются. Оттого у Вас и 8Gb mysqld при текущей конфигурации требуется.

A
На сайте с 04.01.2009
Offline
168
#9
myhand:
что помешало? подробнее можно?



Вы уверены, что скрипт запускали _до_ рестарта mysqld после того как "слетела БД". Если упирается в max_connections - статистика будет сброшена.

Также, у Вас большинство переменных уже "оттюнены" от значений по-умолчанию,
например:
key_buffer = 48M
max_allowed_packet = 12M
table_cache = 256
sort_buffer_size = 32M
read_buffer_size = 6M
join_buffer_size = 24M

Зачем?

Вы уверены, что понимаете смысл этих изменений? sort/read buffer_size, например,
per-connection выделяются. Оттого у Вас и 8Gb mysqld при текущей конфигурации требуется.

Запустить mysqltuner.pl мешало то что в вожу логин и пароль к БД пишет ошибка авторизации когда tuning-primer.sh с этими же данными отлично запускается.

max_connections в файле конфигурации БД в обще нет

Также, у Вас большинство переменных уже "оттюнены" от значений по-умолчанию,
например:
key_buffer = 48M
max_allowed_packet = 12M
table_cache = 256
sort_buffer_size = 32M
read_buffer_size = 6M
join_buffer_size = 24M

Зачем?

Это я где то эти данные взял уже не помню точно где когда настраивал

Вы уверены, что понимаете смысл этих изменений? sort/read buffer_size, например,
per-connection выделяются. Оттого у Вас и 8Gb mysqld при текущей конфигурации требуется.

Ели бы я был уверен я бы не спрашивал а тут и спрашиваю в чем проблема может быть не выполнения тяжелых запросов в SQL и где что подправить?????

M
На сайте с 16.09.2009
Offline
278
#10
avgaz:
Запустить mysqltuner.pl мешало то что в вожу логин и пароль к БД пишет ошибка авторизации

реквизиты администратора (root) mysql?

avgaz:
max_connections в файле конфигурации БД в обще нет

значит - настройка по умолчанию, т.е. 100 у Вас.

avgaz:
Это я где то эти данные взял уже не помню точно где когда настраивал

в этом и проблема :-)

обращайтесь в личку/почту

avgaz:

Ели бы я был уверен я бы не спрашивал а тут и спрашиваю в чем проблема может быть не выполнения тяжелых запросов в SQL и где что подправить?????

попробовать уменьшить потребление памяти mysql и увеличить

max_connections, соответственно.

12

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