тормозит сервер

12
dspu
На сайте с 10.05.2006
Offline
268
2579

какими средствами можно выявить слабое звено на сервере? а то иногда быстро сайт грузится, а иногда по нескольку секунд отвисает и ftp тоже тормозит

поробовал top, все вроде круто :gm:

CPU states: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
Mem: 58M Active, 22M Inact, 35M Wired, 184K Cache, 25M Buf, 815M Free
Swap: 2048M Total, 2048M Free
qwartyr
На сайте с 19.10.2007
Offline
40
#1

скорее всего проблемы в канале связи до сервера, а не в самом сервере.

можно попробывать мониторить время пинга от сервера, или ответа апача на 80 порт например через nagios или его аналоги

профессиональное администрирование серверов (http://www.unixsupport.ru) отзывы (http://www.free-lance.ru/users/qwartyr/opinions/) на free-lance.ru
kxk
На сайте с 30.01.2005
Offline
970
kxk
#2

dspu, Сделайте tracert до сервера и включите mod_status в Апаче и посмотрите что покажет, те что конкретно тормозит, так же выложите конфиги php, mysql и ftp

Ваш DEVOPS
dspu
На сайте с 10.05.2006
Offline
268
#3
qwartyr:
например через nagios

это вот такая нехилая инсталляция?

http://onix.opennet.ru/content/view/17/26/1/1/ 😮

qwartyr
На сайте с 19.10.2007
Offline
40
#4

а вы не пробывали из бинарников ставить ? :)

через yum или yast или apt-get или из ports или другие аналоги...- я не знаю какая у Вас ОС.

почти коробочный вариант - работает почти с колес сразу.

У Вас freebsd на сервере, поставьте на другом сервере nagios.

Также в munin есть плагин для мониторинга пингов и времени отклика от апача например -см. http://muninexchange.projects.linpro.no/

Andreyka
На сайте с 19.02.2005
Offline
822
#5
dspu:
какими средствами можно выявить слабое звено на сервере? а то иногда быстро сайт грузится, а иногда по нескольку секунд отвисает и ftp тоже тормозит
поробовал top, все вроде круто 😒

Если во время отвисания top крут, и дает 100% idle - то каналы

Не стоит плодить сущности без необходимости
dspu
На сайте с 10.05.2006
Offline
268
#6

опытным путем выявлено, что глючит mysql (база 1,5 гига в одной таблице)

при попытке обработки этой крупной таблицы вместо сайта начинает отображаться пустая страница, хотя статические страницы, phpinfo() и server-status в тоже самое время отображается, т.е. апач и php работают

это картинка во время такого зависания:

last pid: 46343; load averages: 0.07, 0.11, 0.06 up 1+12:36:15 12:44:41
288 processes: 1 running, 287 sleeping
CPU states: 0.7% user, 0.0% nice, 1.1% system, 0.0% interrupt, 98.1% idle
Mem: 217M Active, 511M Inact, 156M Wired, 41M Cache, 104M Buf, 3700K Free
Swap: 2048M Total, 452K Used, 2047M Free

PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
46042 mysql 112 96 0 327M 63908K ucond 0:08 0.05% mysqld
491 bind 4 96 0 20308K 17804K select 0:14 0.00% named
30311 root 1 96 0 19768K 9336K select 0:12 0.00% httpd
18290 root 1 96 0 17564K 10648K select 0:11 0.00% ispmgr
696 root 1 96 0 6872K 2964K select 0:05 0.00% sendmail
18135 dovecot 1 4 0 4744K 2016K kqread 0:02 0.00% pop3-login
18138 dovecot 1 4 0 4744K 2008K kqread 0:02 0.00% imap-login
18140 dovecot 1 4 0 4744K 2008K kqread 0:01 0.00% imap-login
18136 dovecot 1 4 0 4744K 2016K kqread 0:01 0.00% pop3-login
18139 dovecot 1 4 0 4744K 2008K kqread 0:01 0.00% imap-login
18133 root 1 4 0 3104K 1028K kqread 0:01 0.00% dovecot
18134 root 1 4 0 3232K 1104K kqread 0:01 0.00% dovecot-auth
423 root 1 96 0 3156K 948K select 0:01 0.00% syslogd
566 root 1 96 0 4924K 2924K select 0:01 0.00% proftpd
691 root 1 96 0 5652K 2128K select 0:01 0.00% sshd
45250 www 1 4 0 19768K 10292K sbwait 0:00 0.00% httpd
46163 root 1 96 0 4548K 2372K RUN 0:00 0.00% top
706 root 1 8 0 3184K 948K nanslp 0:00 0.00% cron
46091 www 1 4 0 19768K 10272K sbwait 0:00 0.00% httpd
46092 www 1 4 0 19768K 10628K sbwait 0:00 0.00% httpd
46068 www 1 4 0 19768K 10240K sbwait 0:00 0.00% httpd
46094 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46083 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46129 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46111 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46112 www 1 4 0 19768K 10256K sbwait 0:00 0.00% httpd
46104 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46128 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46122 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46131 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd
46145 www 1 4 0 19768K 10256K sbwait 0:00 0.00% httpd
46143 www 1 4 0 19768K 10236K sbwait 0:00 0.00% httpd

сделал себе my.cnf из my-large.cnf но ситуацию это не изменило

# 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

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
set-variable = key_buffer=256M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
default-character-set=cp1251
init-connect="SET NAMES cp1251"
# 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

# 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

# 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

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

[isamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[myisamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[mysqlhotcopy]
interactive-timeout

подскажите, что еще можно сделать? (да, все сервисы у меня запущены самостоятельно, а не через inetd) машина amd 2000 (256k cash) 1Гб памяти freebsd

LiteCat
На сайте с 03.05.2007
Offline
237
#7

А для начала проверьте сколько резолвится домен:) как я уже убедился, надо тщательно выбирать днс сервер☝

dspu
На сайте с 10.05.2006
Offline
268
#8
LiteCat:
А для начала проверьте сколько резолвится домен:) как я уже убедился, надо тщательно выбирать днс сервер☝

а при чем тут dns? php скрипты обращаются через localhost

V
На сайте с 25.07.2006
Offline
128
#9
dspu:
опытным путем выявлено, что глючит mysql (база 1,5 гига в одной таблице)
при попытке обработки этой крупной таблицы вместо сайта начинает отображаться пустая страница, хотя статические страницы, phpinfo() и server-status в тоже самое время отображается, т.е. апач и php работают

сделал себе my.cnf из my-large.cnf но ситуацию это не изменило

подскажите, что еще можно сделать? (да, все сервисы у меня запущены самостоятельно, а не через inetd) машина amd 2000 (256k cash) 1Гб памяти freebsd

Дело однозначно не в конфиге mysql - те настройки по большей части на производительность настроены, а тут вообще не фурычит...

Нужно разбираться что и как.

Соединиться с mysql-Сервером через mysql и посмотреть show processlist; - что там происходит в мускуле. Но скорее всего там ничего не происходит.

>при попытке обработки этой крупной таблицы вместо сайта начинает отображаться пустая страница,

Как долго занимает открытие этой страницы?

Попробуйте включить отображение ошибок в php - за белой страницей наверняка что-то стоит:

ini_set("display_errors","1");

ini_set("display_startup_errors","1");

ini_set("error_reporting","2045");

Почитайте внимательно error-лог апача - может быть там есть какие-то сообщения об ошибках.

Приватный linux-администратор
dspu
На сайте с 10.05.2006
Offline
268
#10
vapetrov:
Дело однозначно не в конфиге mysql - те настройки по большей части на производительность настроены, а тут вообще не фурычит...
Нужно разбираться что и как.
Соединиться с mysql-Сервером через mysql и посмотреть show processlist; - что там происходит в мускуле. Но скорее всего там ничего не происходит.

>при попытке обработки этой крупной таблицы вместо сайта начинает отображаться пустая страница,
Как долго занимает открытие этой страницы?
Попробуйте включить отображение ошибок в php - за белой страницей наверняка что-то стоит:
ini_set("display_errors","1");
ini_set("display_startup_errors","1");
ini_set("error_reporting","2045");

Почитайте внимательно error-лог апача - может быть там есть какие-то сообщения об ошибках.

в апаче ничего интересного нет, php делал через php.ini

error_reporting = 6135
display_errors = 1
display_startup_errors = 1
log_errors = 1
error_log = /var/www/error.log

тоже пусто

единственно, что получил при попытке соединиться через phpmyadmin 1040 Too many connections

увеличил до 2000 - без разницы

думаю перевести эту таблицу в innodb...

12

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