Metal Messiah

Metal Messiah
Рейтинг
176
Регистрация
01.08.2010
Программистъ

Спасибо за ответы. SHOW CREATE TABLE:

CREATE TABLE `news` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`date` int(4) unsigned DEFAULT NULL,
`section` int(1) unsigned DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`text` text,
`img` varchar(255) NOT NULL,
`views` int(4) unsigned DEFAULT NULL,
`gog` int(4) unsigned DEFAULT NULL,
`yan` int(4) unsigned DEFAULT NULL,
`yah` int(4) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `section` (`section`),
FULLTEXT KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=219058 DEFAULT CHARSET=cp1251

Немного EXPLAIN: любой запрос

SELECT * FROM news WHERE id=(ЧИСЛО) LIMIT 1

выдает одинаковую табличку

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE news const PRIMARY PRIMARY 4 const 1

Приведенный выше

SELECT * FROM news WHERE id<>218504 AND date>'1404067471' AND (title LIKE '%shell%' OR title LIKE '%бизнеса%' OR title LIKE '%грозит%' OR title LIKE '%конфискацией%' OR title LIKE '%осква%' OR title LIKE '%оссии%') ORDER BY date DESC LIMIT 10

показывает

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE news ALL PRIMARY NULL NULL NULL 218069 Using where; Using filesort

InnoDB обычно не использую, более того отключаю в конфиге чтобы увеличить производительность VPS и уменьшить расход памяти. Все работало на MyISAM несколько лет на дешевом хостинге, не думаю что там оборудование намного мощнее моего VPS. Исходя из этих EXPLAIN можно сказать что переход на InnoDB может помочь?

Еще из тестов:

SELECT * FROM news WHERE id<>218504 AND (MATCH (title) AGAINST ('shell') OR MATCH (title) AGAINST ('бизнеса') OR MATCH (title) AGAINST ('грозит') OR MATCH (title) AGAINST ('конфискацией') OR MATCH (title) AGAINST ('осква')) ORDER BY date DESC LIMIT 10;

1 запуск 3.6 sec

2 запуск 7.3 sec

далее пошла выдача 7.3 страницы phpMyAdmin из кеша о_О

SELECT * FROM news WHERE id<>218504 AND (title LIKE '%shell%' OR title LIKE '%бизнеса%' OR title LIKE '%грозит%' OR title LIKE '%конфискацией%' OR title LIKE '%осква%') ORDER BY date DESC LIMIT 10

4.38 sec

5.57 sec

аналогично пошел кеш, буду разбираться. Но по сути первый на секунду лучше, а второй запуск хуже...

Я делал иначе - регистрация, авторизация, сброс пароля, профиль - полностью через форум. + В самописном движке на главной форма для входа, ссылки на регистрацию и напоминание пароля + использование кук форума + прав групп пользователей форума.

блин отрезал лишнее :)

там еще пару полей в конце таблицы было, используемых редко но это мегаприват потому их решил выкусить, к проблеме они отношения не имеют, заодно и id зацепил. Есть он там. 1й пост отредактировать не могу.

У меня date это timestamp, и чуть ли не у каждой новости он свой, повторов мало, не думаю что это хорошая идея делать индекс на такой огромной выборке.

ssh-туннель. не?

или нужны сервисы для постоянного доступа к ним?

Сайт держал на 400Мб ОЗУ (nginx+apache), в пиках открывался медленно но стабильно. На 512 работать обязан, а так берите на сколько хватает средств.

Соответственно в конфигах количество рабочих процессов править надо

rsync идея хорошая, но в идеале надо создавать отдельного пользователя с доступом только к этой директории, иначе если кто хакнет основной сервер - автоматически получает ssh доступ ко всем остальным серверам... А если создавать - будут опять же проблемы с записью от имени веб сервера

Трындец, ошибку выдавал Smarty, файл с каким-то плагином не найден, вылечил удалением кеша и скомпилированных шаблонов.

Нет. Скрипт выдает либо контент без хедера (автоматически код 200), либо редирект (301), либо не найдено (404). Других хедеров нет в скрипте.

Munin поставил, посмотрю через день-два.

Это не WP, двиг самописный, писал не я. Особенность движка в том что все сделано на классах и часто с базы тянется больше полей таблицы чем реально используется (структура используется в шаблонизаторе - переделанном Smarty). Еще чтобы изменить какую-то мелочь надо править 2-3 файла: конфигурацию модуля, методы модуля и иногда еще что-то. Мне этот стиль не нравится, работаю с этим сайтом только последние несколько лет.

Еще на том же сервере есть парочка сайтов на джумле, но там посещаемость не составляет и десятой части. В перспективе, конечно, будет больше.

Для неавториз пользователей -> отдаем кеш. Для авторизованных -> динамический контент.
Пример http://poiuty.com/wordpress-nginx-cache.html

Видимо, так и буду делать

Есть ли смысл ставить eAccelerator или аналоги? На форуме VestaCP писали что APC лучше, но потом от него решили отказаться (вроде как не будет работать в новых версиях php), говорят про Zend Optimazer.

nshakh, нужен минимально возможный пинг от Болгарии до Урала - это ареал обитания большинства игроков моих серверов :)

10 в Одессе и 60 из Москвы это не интересно, равно как и наоборот, чревато потерей аудитории.

evgeniymx, теперь понял, буду обращаться.

XServer, хорошее предложение, я за такой сервер 10 платил, у Вас 8.95

Другие предложения принимаются, но я сейчас пропадаю на пару дней, проанализирую позже

Всего: 578