Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Хостинги / Домены / Железо
»
Тема:
Загрузка диска
Новая тема
Ответить
цитата
02/01/12 в 15:40
shar
У меня самописный сайтик с всего-лишь 700-800к хитов в сутки
На вот таком сервере:
http://digitalone.com/calc.html?base_id=5
(все по дефолту - 2 терабайтных диска в raid-1)
CentOs 5 64bit, php 5 через php-fpm, nginx 1.0.2, MySQL 5.5.12, для поиска используется Sphinx последней версии (searchd), в общем все довольно стандартно
И вот уже 2 месяца мучает меня загрузка диска. Ниже 90-95% не опускается никогда. То есть, в начале вообще жопа была, но додумались включить noatime, nodiratime. Стало вот так:
http://img835.imageshack.us/img835/7333/disko.png
Что особенно пугает, это соотношение rddsk и wrdsk у mysql. Нет у меня почти ни insertов, ни updateов - что же он такое пишет, понять не могу
таблицы в основном innodb, самая большая - 2.5 gb. ibdata = 5.5 gb, buffer_pool_size = 8 gb
2 админа смотрели - не смогли ничего найти. 1 советовал смотреть в сторону Sphinx - ок, с помощью кеша я уменьшил интенсивность запросов в 3 раза - загрузка диска не изменилась вообще
В общем, что делать-то, искать проблему дальше или забить и переезжать на ssd? У кого сколько хитов выдерживает raid 1 из двух hdd?
цитата
02/01/12 в 15:55
Евробайт
Дисковая система слабая, берите как минимум 4 sas диска и RAID-10, вообще, чем больше дисков, тем лучше, пусть даже дешевых SATA.
цитата
02/01/12 в 16:02
DiamonD
А мелкой статики много? У меня была аналогичная проблема, когда на сайте, где были сотни тыщ тумб параметр в системе # sysctl kern.maxvnodes оказался ниже текущего # sysctl vfs.numvnodes и пошли затыки на дисках.. Как только поменяли все прошло.
А вообще 2 диска это мало, я на таких серверах использую 6 sas в рейде 10, тогда они меньше напрягаются.. 800к на одной базе или сайтов много?
цитата
02/01/12 в 16:16
shar
Да, несколько лямов мелких тумб. Но параметров таких не вижу:
Цитата:
[root@centos ~]# sysctl kern.maxvnodes
error: "kern.maxvnodes" is an unknown key
[root@centos ~]# sysctl vfs.numvnodes
error: "vfs.numvnodes" is an unknown key
Это под centos?
Все на одном сайте...
цитата
02/01/12 в 16:20
DiamonD
Нет это под freebsd. Если на одном, то вряд ли это аналогичная проблема. Скорее мускуль грузит диски.
Какие параметры стоят для innodb?
innodb_flush_log_at_trx_commit
innodb_buffer_pool_size= (тут 8 гиг как я понял)
innodb_flush_method=
innodb_log_file_size=
innodb_log_buffer_size=
Рекомендую поставить
innodb_flush_log_at_trx_commit=2
innodb_flush_method=O_DIRECT
цитата
02/01/12 в 16:27
shar
Так и есть:
innodb_buffer_pool_size = 8G
innodb_log_file_size = 512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
цитата
02/01/12 в 17:04
DiamonD
В базе с индексами и таблицами все ок?
Скинь список первых процессов по команде top (или ее аналог в Centos)
цитата
02/01/12 в 17:39
JM
shar:
если сайтик самописный юзай кеширование (ответов или страниц целиком) через php-memcached, это буквально 4-6 строк, облегчить должно все в разы...
цитата
02/01/12 в 17:43
shar
Базу по максимуму оптимизировали: индексов лишних нет, blob полей нет...
top:
http://img714.imageshack.us/img714/7596/topxs.png
iotop:
http://img440.imageshack.us/img440/5553/iotop.png
цитата
02/01/12 в 17:44
JM
логи отключены, файловую в noatime уже делал?
цитата
02/01/12 в 17:45
JM
Дык она у тя еще и свопит ;(
цитата
02/01/12 в 17:46
shar
JM:
А есть смысл кешировать запросы типа SELECT id,caption,duration FROM videos WHERE id IN(123,456,789,...), даже без сортировки?
Логи отключены, noatime есть
цитата
02/01/12 в 17:51
JM
shar:
Мне кажется при таком уровне запросов можно и отсортировать (кпу же сортирует), а потом закешировать...
цитата
03/01/12 в 00:28
DiamonD
А посмотри размеры логов у сфинкса, сколько файлики весят? :-)
цитата
03/01/12 в 00:37
shar
DiamonD:
лог запросов отключен и опустошен) лог работы - 10 кб
цитата
03/01/12 в 00:50
DiamonD
А скинь еще содержимое конфига для мускуля.
цитата
03/01/12 в 01:38
shar
Код:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 32M
table_open_cache = 64000
open-files-limit=200000
read_buffer_size = 32M
read_rnd_buffer_size = 32M
thread_cache_size = 8
query_cache_size = 192M
max_heap_table_size = 32M
tmp_table_size = 32M
long_query_time = 2
log-queries-not-using-indexes
thread_concurrency = 32
server-id = 1
innodb_buffer_pool_size = 8G
innodb_additional_mem_pool_size = 64M
innodb_log_file_size = 512M
innodb_log_buffer_size = 8M
innodb_lock_wait_timeout = 50
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 512M
read_buffer = 64M
write_buffer = 64M
[mysqlhotcopy]
interactive-timeout
цитата
03/01/12 в 12:08
DiamonD
Я бы еще попробовал:
–skip-name-resolve
–skip-locking
key_buffer_size = 16M (маловато, увеличь раза в 4)
thread_concurrency = (обычно ставится по числу суммарных ядер процессоров)
table_cache не вижу что стоит (запусти show status LIKE "Opened_tables%";) и поставь с запасом..
sort_buffer сколько стоит? Он очень влияет на ORDER BY и GROUP BY. Поставь 32М, если вдруг там стоит 4.
thread_cache_size (посмотри show status LIKE "Max_used_connections%";) и поставь чуть больше.
Проанализируй SHOW STATUS LIKE 'Qcache%';
Посчитай qcache_hit_ratio = qcache_hits / (qcache_hits + qcache_inserts + qcache_not_cached). Должно стремиться к 1. Если у тебя скажем 0.4, то увеличь query_cache_size
цитата
03/01/12 в 12:13
DiamonD
Что-то мне подсказывает что key_buffer у тебя мелкий и временные файлы свопятся на диск.. Сделай show status LIKE "Key%"; В идеале Key_reads/Key_read_request обычно должно быть < 0,01. Если у тебя больше, увеличь буфер, скажем сперва до 128 мег, потом до 256..
цитата
03/01/12 в 13:43
iRoot
Да у тебя nginx в глубокий swapping ушел судя по iotop! В первый раз такое вижу, хотя это явно не причина, а следствие того что у тебя просто не хватает памяти чтобы держать все 300+ процессов.
Сколько у тебя 100-мегабайтных php-fpm, searchd? Их не нужно так много, они всю память съели, начался swapping от сюда и 100% загрузка диска. Да и nginx-ов так много не нужно.
Плюс наверно еще memcached где-то есть, кушает свой кусок памяти.
Избавься от swapping-га и все будет нормально.
цитата
03/01/12 в 15:13
shar
iRoot:
а сколько посоветуешь nginxов и php?
цитата
03/01/12 в 17:23
deSilva
shar писал:
iRoot:
а сколько посоветуешь nginxов и php?
nginx-ов по количествку ядер*2 рекомендуют во избежание блокировок.
пхп по количеству запросов к скриптам в пике с небольшим запасом.
цитата
03/01/12 в 19:06
iRoot
shar писал:
iRoot:
а сколько посоветуешь nginxов и php?
Nginx многопоточен, обычно хватает и одного процесса, по количеству ядер их выставляют только когда основная работа сервера - отдача статики nginx-ом и это происходит с огромной скоростью, но не все ядра используются на 100%, в твоем случае и одного-двух думаю хватит, но это неважно на самом деле, процесс очень легкий по сравнению с PHP, можно не трогать.
По PHP нужно прикинуть за сколько времени у тебя всреднем генерируется страница и сколько обращений за этот промежуток времени обрабатывает сервер, так ты получишь минимальное количество процессов, которые тебе нужны. Например страница генерируется за 0.2 сек, нагрузка 10 запросов в секунду, значит всреднем у тебя работают 2 процесса. Но это все танцы с бубном вокруг костра, в php-fpm есть динамический processes pool где задаешь сколько процессов запускать, какой потолок и сколько держать без дела на случай если нагрузка возрастет резко, он сам решит сколько их нужно в зависимости от нагрузки.
http://www.php.net/manual/en/install.fpm.configuration.php
Посмотри и на остальные процессы, sphinx например сколько они памяти кушают и тоже урезонь их аппетиты. Главное чтобы ты втиснулся в свои 16Gb и оставил swap впокое.
цитата
22/01/12 в 17:53
shar
Перенес на 2 диска, добавил памяти, стало вот так:
c0d1 - тумбы, c0d0 - система и все остальное
Может есть какие-то спец. настройки nginx для большого количества тумб, или надо добавлять диски в raid?
цитата
22/01/12 в 23:22
deSilva
Может UFS тормозит?
Сколько файлов в каталогах где тумбы?
Стр.
1
,
2
>
последняя »
Новая тема
Ответить
Эта страница в полной версии