Уменьшение нагрузки DLE

18

Уменьшение нагрузки DLE
Несомненно, каждому вебмастеру приятно смотреть, когда у его сайтов ежесуточная посещаемость измеряется не тысячами, а например десятками тысяч (лучше сотнями).  Но Вы не поверите, рост посещалки не всегда бывает в радость.

Как пример есть у меня один сайтец на dle, у которого база 1 гиг, кол-во новостей в базе 170к и когда ежесуточная посещаемость подходит к 40к, он начинает нагибать мускул и укладывает все в аут. При том что отключены все модули и хаки.  Если в районе 30к, то все отлично, как начинает расти посещаемость то дохнет мускул.  Апгрейд железа не помогает, ну во всяком случае сейчас DELL PE 2950,2 x Intel Xeon L5410,16 GB ECC RAM,6 x 73 GB SAS (RAID-10) если взять получше то до 70к можно будет протянуть агонию.

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

 

В первую очередь спасибо ресурсу Nulled.ws и непосредственно kodges за эту инфу.

Данный метод поможет Вам если у Вас ежесуточная посещаемость не менее 10-20к, если у Вас 40-50к то для Вас это уже критическая необходимость.
Если же у Вас пока еще молодой ресурс, то прост поубирайте календари, виевсы, выводы похожих новостей и нагрузка сразу уменьшиться.

Файловое кеширование DLE (снижаем нагрузку на БД)

1. Создаем папку /engine/cache/all и ставим на нее права на запись (chmod 777 или 775 в зависимости от хостера).

2. Открываем index.php и редактируем:

Находим:

@session_start (); 


Вставляем после:

///////////////Файловое кэширование//////////////
if($_SESSION['dle_user_id'] == 0 && $_SERVER['REQUEST_METHOD'] == "GET")
{
    $cache_time = 21600; //Время жизни кеша в секундах
    $FCache = $_SERVER['DOCUMENT_ROOT'].'/engine/cache/all/'.md5($_SERVER['REQUEST_URI']).'.html';
    if (file_exists($FCache) && filemtime($FCache)>time()-$cache_time)
    {
        echo join('',file($FCache))."<!-- use cache -->";
        exit;
    }
}
///////////////////////////////////////////////// 


Находим:

$tpl->compile ( 'main' ); 


Вставляем перед:

ob_start(); 


Находим:

GzipOut (); 

Вставляем после:

//////////Файловое кэширование//////////
if($_SESSION['dle_user_id'] == 0 && $_SERVER['REQUEST_METHOD'] == "GET")
{
    $pageBuf = ob_get_contents();
    $fp = fopen($FCache, "w");
    fputs($fp, $pageBuf);
    fclose($fp);
}
//////////////////////////////////////// 

После этих манипуляций в папке /engine/cache/all будут накапливаться кешированные страницы сайта.
Для того чтобы устаревший кеш редкооткрываемых страниц не копился и не забивал вам винчестер, добавляем по крону выполнение следующего скрипта каждые 10 минут

 

<?
$cache_time = 21600+10; //Время жизни кеша в секундах + 10 секунд
$url = "/home/admin/domains/site.ru/public_html/engine/cache/all/"; // полный путь к папке с кешем от корня сервера.
$dir = opendir($url);
while(($file = readdir($dir)) !== false)
{
    $ras = pathinfo($file);
    if($ras[extension] == 'html')
    {
        $FCache = $url.$file;
        if (file_exists($FCache) && filemtime($FCache) < time()-$cache_time)
        {
            unlink($FCache);
        }
    }
}
closedir($dir);
?>

Но я не люблю всякие кроны, поэтому на том же любимо нулледе подсмотрел следующее решение:

Чтобы кеш можно было чистить вместе с остальным кешем нажатием кнопки в админке .

Для этого нужно
открыть ./engine/inc/main.php
найти там:

clear_cache();

и перед этим добавить:

///// ЧИСТИМ ФАЙЛОВЫЙ КЭШ /////

$fcachedirname = ENGINE_DIR.'/cache/all';

if ($objs = glob($fcachedirname."/*")) {
foreach($objs as $obj) {
is_dir($obj) ? removeDirRec($obj) : unlink($obj);
 }
}
rmdir($fcachedirname);

@mkdir (ENGINE_DIR.'/cache/all', 0777);
@chmod (ENGINE_DIR.'/cache/all/', 0777);

//////////////// 

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

1.В тот же день посещаемость пробила 45к уников – новый рекорд этого сайта.
2.Одновременное пребывание пользователей на сайте зафиксировано 700, до этого был максимум 400.

Если у Вас есть сайт на DLE с посещаемостью более 30к – очень рекомендую этот метод. На версии 8.5 отлично все работает, другие версии не проверял, по идее будет работать на всех, но лучше обновиться до 8.5 и поставить хак:).

Насколько метод простой, настолько же он и эффективен.

SEO Философия от Bormaley: Творчество есть результат использования изученных характеристик.

 


Добавить комментарий


Защитный код
Обновить

« Пред.   След. »
Приснился сон, хочешь расшифровать сноведение сонник Юноны подскажет и поможет.
Инвесторы рассказывают e3investment ru отзывы вкладчиков.


Каким будет My.com. от Mail.Ru Group Будущий международный проект Mail.Ru Group обещает быть интересным. Про некоторые подробности проекта стало известно....Readmore


LifeHack - взламываем мироздание


LifeHack – 10 правил Удачи

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



Google показывает баннерную рекламу пользователям почты

Заметил, как и многие, что почтовичек, стал крутить денежку - логический шаг от Google. Погуляв по блогам и новостным сайтам - но...



Теоретические seo вопросы


12 оптимизированных под Adsense Wordpress шаблонов

Помните некоторое время назад я говорил о том что делаю сетку блогов на бесплатных фрихостах в 10 000 штук? Так вот некот...



Social Submitter или профессиональный постинг по социалкам

Пока идет полным ходом Акция , где кстати даже треть саттелитов еще не роздано, мы поговорим об одном из инструментов для раск...



Авторизация

Вход / Регистрация



Заработок в интернете — это не миф, а реальность, но работать для этого надо много и упорно. Есть ли заработок в интернете, нет ли заработка в интернете Вы не узнаете пока сами не начнете работать и зарабатывать в интернете.

Блог SEO Философа Bormaley

Twitter Bormaley

В SEO денег НЕТ

При цитировании и использовании любых материалов гиперссылка на сайт Bormaley.com обязательна. Републикация авторских материалов возможна только после письменного согласования.
0

Статистика