Новостной сайт drupal 7 - нагрузка

Главные вкладки

Аватар пользователя mozh mozh 16 февраля 2017 в 21:28

Всем привет, имеется новостной сайт с посещаемостью в 50к в сутки, на сайте постоянно пасется около 250 человек (согласно гугл аналитики)

После переезда на новым хостинг, сайт отлично работал 1.5 месяца
Тарифный план кратко:
2 ядра CPU2x2000+ GHz
4GBRAM
40GBSSD

и так, 1.5 месяца сайт был на hdd, все было отлично, после все перенесли на ssd и тут понеслись проблемы с нагрузкой. Хостер заявил, что якобы на старом hdd была ошибка и сайт оказывается работал на 8 ядер процессора и 4гб опертивной

сейчас же имеем тарифный план с 2 ядрами, ниже привожу графики загрузки

хостер поставил костыль очистки памяти каждый час

коротко о сайте:
кастомный модуль один, выводит 6 соседних новостей - пробовали отключать ничего не меняется
страницы views по таксономии - поля картинка, тайтл, содержимое, ссылка. Пэджер внизу страницы
сайт запущен на php 7.0 (раньше был 5.3 версия, попросил поставить 7-ю)
включено стандартное кеширование и агрегация
на стороне хостинга настроен варниш, но как он там работает мне не известно
+отказались от модуля statistics, но лучше не стало (заменили google_analytics_counter)

что делать куда смотреть дальше? или нас просто гнобит хостинг

почему забивается оперативная память, ранее 4гб хватало. Куча вопросов...(

Комментарии

Аватар пользователя Studio VIZA Studio VIZA 16 февраля 2017 в 22:44

Блин, я не понимаю выключателей статистика, если всё так плохо, может и не жить?

я на $20 ...Плюю с высокой башни на кучу конфессий и методик, часто право - смешно, что можно заработать на аудите, если всё дело в Жадности и Глупости ква-ква.

Аватар пользователя mozh mozh 16 февраля 2017 в 22:49

не совсем понял ваш коммент
да и хостинг текущий стоит 50$

статистик долбит в базу не плохо, просто он первый попался под руку, но не в нем дело

Аватар пользователя mozh mozh 17 февраля 2017 в 9:39

модуль следующего плана: повторюсь при выключении его, все равно сайт уходит

<?phpfunction other_news_block_view($delta = '') {
    $block = array();
    switch ($delta) {
        case 'other_news':
            $type = arg(0);
            $nid = arg(1);
            if(isset($type) && $type == 'node'){
                if(is_numeric($nid)){
                    // Drupal 7, dynamic query
                    $nodes = db_select('node', 'n')
                        ->fields('n', array('nid'))
                        ->condition('n.type', 'article')
                        ->condition('n.nid', $nid, '<')
                        ->orderBy('n.created', 'DESC')
                        ->range(0,6)
                        ->execute()
                        ->fetchAll();
                    if(!empty($nodes)){
                        $block['content'] = '<div class="other-news-wr"><b>Другие новости:</b></div>';
                        $block['content'] .= '<ul class="other-news-image">';
                        foreach($nodes as $nid) {
                            $node = node_load($nid->nid);
                            $alias = drupal_get_path_alias('node/' . $nid->nid);
                            //dpm($node);
                            $url = '';
                            if (isset($node->field_image['und'][0]['uri'])){
                                $uri = $node->field_image['und'][0]['uri'];
                                $style = '90_70';
                                $derivative_uri = image_style_path($style, $uri);
                                if (!file_exists($derivative_uri))
                                    image_style_create_derivative(image_style_load($style), $uri, $derivative_uri);
                                $url = file_create_url($derivative_uri);
                            }
                            $block['content'] .= '<li><div class="img-4"><a href="/'.$alias.'" target="_blank"><img src="'.$url.'" alt="'.$node->title.'" /></a></div> <h4><a href="/'.$alias.'" target="_blank">'.$node->title.'</a></h4></li>';
                            
                        }
                        $block['content'] .= '</ul>';
                    }
                }
            }
            break;
    }
    return $block;
}?>

обычный шаблон, без селектов внтури)), без базовых тем

Аватар пользователя gun_dose gun_dose 17 февраля 2017 в 9:47

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

По хорошему, надо сайт копировать на локаль или тестовый сервер и хотя бы тупо девелом смотреть, где там какие запросы генерятся. Плюс помимо загрузки процессора советую глянуть в пхпмайадмин онлайн-статистику запросов, разделить её на количество одновременных юзеров и делать выводы.

Плюс на тестовой копии сервака можно попробовать сравнить бенчмарки сайта на своей теме и на бартике

Аватар пользователя mozh mozh 17 февраля 2017 в 13:44

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

Аватар пользователя mozh mozh 17 февраля 2017 в 9:40

deadie wrote:

как бы не плевался тут Studio VIZA (не обращайте внимания - это местный сумасшедший :), без нормального аудита вам врядли кто что подскажет.


я с ним знаком, он даж как-то мне помогал крутить сервак) - директор семестри вроде был ник
как бы провести этот аудит? хостер отнекивается от всяких попыток. сайт на vps искать админа?