1 2015-12-26 21:00:25

Тема: Нагрузка !HELP!

Ребят подскажите что делать дураку )
В общем сделал сайт на монстре, сейчас посещаемость 2-2.5к в день, страниц примерно 50 на сайте. Выкидывает 508 ошибку, на хостинге запущено процессов бывает 40/40...  Написал в саппорт сказали что "Много одновременных запросов к серверу, что создает повышенную нагрузку на CPU и лимит одновременных процессов."  что подскажите делать ? Переходить на новый хост, менять тариф, менять двиг??? Может есть какое то кеширование, или ещё какие способы оптимизации.. Может монстра не подходит для больших нагрузок ?

Поделиться

2

Re: Нагрузка !HELP!

на сайте в пик нагрузки ~150 чел. онлайн

Поделиться

3 (2015-12-27 07:37:08 отредактировано sergeyterr)

Re: Нагрузка !HELP!

ЦИТАТА:
"Обычно данная ошибка появляется, если аккаунт начинает потреблять слишком много ресурсов (в несколько раз выше, чем все остальные сайты на хостинге). Часто причина такого потребления может быть ддос-атака, либо запущенный сильногрузящий скрипт. Что же в таком случае делать.

1. Зайдите в CPANEL и там перейдите в раздел Журнал ошибок. Посмотрите, откуда идет нагрузка.
2. Постарайтесь закрыть этот файл, устранить временно причину нагрузки.
3. Напишите нам в поддержку и мы убьем лишние процессы и дадим Вам совет, что делать дальше."
Ссылка

Если Хостер начинает просить денег за помощь или отмораживается, меняйте хостера

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

4 (2015-12-27 09:00:38 отредактировано karankevichs)

Re: Нагрузка !HELP!

кто ещё что скажет ? на сайте стоит модуль доп полей. 


не использую<?php Action::run('theme_pre_content'); ?>  <?php Action::run('theme_post_content'); ?> сразу контент вывожу, в хедере и футаре что то похожее было, тоже не вывожу. может из за этого ? что ещё может быть? может после выполнения скрипта процесс висит не известно сколько?? ошибок в cpanel нету..

Поделиться

5 2015-12-27 09:03:27 (2015-12-27 09:06:38 отредактировано karankevichs)

Re: Нагрузка !HELP!

как временное решение прикрутил кеширование
в index.php в начало добавил

// раздел настроек, которые вы можете менять
$settings_cachedir = '/home/***/***/cache/';
$settings_cachetime = 3600; //время жизни кэша (1 час) 
$thispage = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
$isCached = true; 
//любой метод определения какой файл запросили 
$filename = $_SERVER['SCRIPT_FILENAME']; // $_SERVER['SCRIPT_FILENAME'] $_SERVER['SCRIPT_NAME'] 
$filename = basename($filename); 
$skipCache = array('delcache.php'); // добавляем имена файлов для игнора 
if (in_array($filename, $skipCache)) 
    $isCached = false; 
if ($isCached) 
{ 
    $cachelink = $settings_cachedir.md5($thispage).".html"; 
    if (file_exists($cachelink)) { 
        $cachelink_time = filemtime($cachelink); 
        if ((time() - $settings_cachetime) < $cachelink_time) { 
            readfile($cachelink);die(); 
        } 
    } 
} 
ob_start();
дальше идёт стандартное содержимое index.php
// Main engine defines
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', rtrim(dirname(__FILE__), '\\/'));
define('BACKEND', false);
define('MONSTRA_ACCESS', true);
// First check for installer then go
if (file_exists('install.php')) {
    if (isset($_GET['install'])) {
        if ($_GET['install'] == 'done') {
            // Try to delete install file if not delete manually
            @unlink('install.php');
            // Redirect to main page
            header('location: index.php');
        }
    } else {
        include 'install.php';
    }
} else {
    // Load Engine init file
    require_once ROOT. DS . 'engine'. DS . '_init.php';
    // Check for maintenance mod
    if ('on' == Option::get('maintenance_status')) {
        // Set maintenance mode for all except admin and editor
        if ((Session::exists('user_role')) and (Session::get('user_role') == 'admin' or Session::get('user_role') == 'editor')) {
            // Monstra show this page :)
        } else {
            header('HTTP/1.1 503 Service Temporarily Unavailable');
            header('Status: 503 Service Temporarily Unavailable');
            header('Retry-After: 600');
            die (Text::toHtml(Option::get('maintenance_message')));
        }
    }
    // Frontend pre render
    Action::run('frontend_pre_render');
    // Load site template
    require MINIFY . DS . 'theme.' . Site::theme() . '.' . Site::template() . '.template.php';
    // Frontend pre render
    Action::run('frontend_post_render');
    // Flush (send) the output buffer and turn off output buffering
    ob_end_flush();
}
после него 
if ($isCached) 
{ 
    $fp = fopen($cachelink, 'w'); 
    fwrite($fp, ob_get_contents()); 
    fclose($fp); 
} 
ob_end_flush();



файл delcache.php можно добавить задание на авто очистку

<?php 
function delete_f($file,$del=1) { 
    if(file_exists($file)) { 
        if(is_dir($file)) { 
            $handle=opendir($file);  
            while(false!==($file1=readdir($handle))) { 
                if($file1!='.' && $file1!='..') { 
                    delete_f($file.'/'.$file1,$del); 
                } 
            } 
            closedir($handle); 
            if($del==1) { 
                @chmod($file,0777); 
                rmdir($file); 
            } 
        } 
        else { 
            @chmod($file,0777); 
            if(file_exists($file)) unlink($file); 
        } 
    } 
    else return false; 
} 
delete_f('/home/***/***/cache/',0);   
?>

Поделиться

6 (2015-12-27 09:20:29 отредактировано karankevichs)

Re: Нагрузка !HELP!

после этого нагрузка упала до 0... кто что скажет по этому поводу ?
может кто плагин напишет что бы можно было удалять кэш определённых страниц из админки, или при изменении страницы в админке, что бы кеш обновлялся автоматом.


Если сайт статический то определённо выгоднее так делать, почти без нагрузки работает, хоть на 1000 страниц. Если динамичный то ставим жизнь кеша минуты 2..

Поделиться

7 (2015-12-28 06:42:23 отредактировано sergeyterr)

Re: Нагрузка !HELP!

Вообще то у Монстры есть свое кэширование и удаляется кэш из админки
Система -> Настройки -> Удалить временные файлы
Можно ручками папку tmp -> cache почистить
Может вам действительно, достаточно было кеш почистить?

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

8 (2015-12-28 11:35:14 отредактировано karankevichs)

Re: Нагрузка !HELP!

sergeyterr пишет:

Вообще то у Монстры есть свое кэширование и удаляется кэш из админки
Система -> Настройки -> Удалить временные файлы
Можно ручками папку tmp -> cache почистить
Может вам действительно, достаточно было кеш почистить?

Своё кеширование если и есть , то оно какое то требовательное. пробовал я чистить, что только не делал, не помогало. Поставил это кеширование, нагрузки вообще не стало.. С таким кешом запросов в бд 0

Поделиться

9

Re: Нагрузка !HELP!

Как было и как стало
CPU полностью освободило, 3 сайта на монстре

Поделиться