Уменьшение нагрузки 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: Творчество есть результат использования изученных характеристик.

 


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


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

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


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


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


Правильная постановка цели

Как правильно поставить себе цель? Зачем это надо? Вы наверно если и не знали то во всяком случае догадывались что четко поставл...



Сервис RООKEE предлагает новшества

  «Купил и забыл» - как здорово было бы однажды разместить ссылку на ресурсе, которая будет там «пожизн...



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


Киргизия будет администрировать национальную доменную зону .kg

Согласно сообщению сотрудника отдела информации Государственной службы интеллектуальной собственности, международная корпораци...



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

Одна умная, а, главное, правильно реализованная идея имеет огромную силу. Найдите достаточное количество заинтересованных в этой ...



Авторизация

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



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

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

Twitter Bormaley

В SEO денег НЕТ

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

Последние комментарии

0

Статистика