Как уменьшить нагрузку на сервер?

Статус
В этой теме нельзя размещать новые ответы.

Павел

Постоялец
Регистрация
21 Апр 2006
Сообщения
46
Реакции
12
В общем возникла такая ситуация.

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

Таким образом:
<? readfile("http://мой_сайт/файл"); ?> большинство
<? include ("http://мой_сайт/файл"); ?>

Но возникла проблема при каждом обращение к файлу выполняется запрос к серверу и кушается память так как этих запросов много то кушается очень много памяти, если верить хостеру то 2.7 гига :) и это на шаред хостинге :D
Собственно вопрос как сделать так чтобы память сервера не потре***лась в таких количествах? Ну чтоб не пришлось работать отдельно с каждым сайтом при смене чего либо.

Буду благодарен за помощь.
P.S. В php не шарю :(
 
Зачем вообще файл читаешь? если ты его инклюдишь? А самый простой способ и быстрее будет - используй SSI просто инклюдь файлик с линками
 
Зачем вообще файл читаешь? если ты его инклюдишь? А самый простой способ и быстрее будет - используй SSI просто инклюдь файлик с линками

Дак яж говорю что в php не шарю.

То есть если я все <? readfile("http://мой_сайт/файл"); ?> заменю на <? include ("http://мой_сайт/файл"); ?> то перестанет съедаться столько памяти?

А как с помощью SSI замутить?
Да и иногда я так код сапы вызываю так.
 
Что касается вашего вопроса - сделайте запуск тех скриптов, которые инклудятся, по Cron раз в N минут (часов, дней, лет) и сливайте результат их работы в обычный файл. А там, где вы раньше инклудили скрипт, читайте содержимое этого результирующего файла через readfile. Скрипты будут запускаться один раз в период для всех ваших проектов, а интервал запуска вы выберите такой, чтобы сохранять актуальность кешированных данных.
Все довольны, все смеются.

А вообще я бы на проблему с другой стороны посмотрел. Что за такие запросы у вас посылаются, которые жрут 3 гига памяти? Не имеет ли смысл переделать именно те скрипты, сдается мне их можно заметно оптимизировать.
 
  • Заблокирован
  • #5
Не перестанет. Потому что не в этом файле вообще дело (если, конечно, он не весит 2.5 гига).

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

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

P.S. Подкиньте адрес вашего хостинга, чтобы туда ненароком не попасть. 2,7 гигабайта, я фигею! Обычно 64 мега на шареде скушаешь и привет: Fatal error: Allowed memory size of 67108864 exausted
 
Не перестанет. Потому что не в этом файле вообще дело (если, конечно, он не весит 2.5 гига).


Можно подумать, без этого загадочного файла обращений к серверу не происходит.

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

P.S. Подкиньте адрес вашего хостинга, чтобы туда ненароком не попасть. 2,7 гигабайта, я фигею! Обычно 64 мега на шареде скушаешь и привет: Fatal error: Allowed memory size of 67108864 exausted

Происходят конечно, а я уже допросил и он мне сказал что грузят сервер именно те коннекты которые идут с моих же сайтов их около 350к в сутки получается.

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

Я всё понимаю и знаю, что если я просто тупо воткну то что подгружаю с файлов в шаблон то проблема исчерпается но сайтов много и если вдруг мне нужно будет что то поменять то времени много уйдет.

Вот я у вас и спрашиваю как мне выйти из этой ситуации чтоб сейчас один раз всё настроить и потом юзать всё как раньше.
Как файлы подцеплены я написал в первом посте.


Что касается вашего вопроса - сделайте запуск тех скриптов, которые инклудятся, по Cron раз в N минут (часов, дней, лет) и сливайте результат их работы в обычный файл. А там, где вы раньше инклудили скрипт, читайте содержимое этого результирующего файла через readfile. Скрипты будут запускаться один раз в период для всех ваших проектов, а интервал запуска вы выберите такой, чтобы сохранять актуальность кешированных данных.
Все довольны, все смеются.

А вообще я бы на проблему с другой стороны посмотрел. Что за такие запросы у вас посылаются, которые жрут 3 гига памяти? Не имеет ли смысл переделать именно те скрипты, сдается мне их можно заметно оптимизировать.

Расписано конечно хорошо но если я программировать не умею то это воплотить в жизнь будет сложно :(
 
все решится достаточно просто если не гонять файлы через http
память уходит при работе апача/php

так сделать
<? readfile("/файловый/путь/на/сервере/сайт/файл"); ?>

абсолютные пути на хостинге секретом быть не должны
 
Можно кешировать инфу файла. Снизит нагрузку.
 
все решится достаточно просто если не гонять файлы через http
память уходит при работе апача/php

так сделать
<? readfile("/файловый/путь/на/сервере/сайт/файл"); ?>

абсолютные пути на хостинге секретом быть не должны

Да, действительно через пртоко http ненужно, посмотри свой локальный путь и сделай так. , Несколько процентов производительности выйграешь обязательно !
 
Можно кешировать инфу файла. Снизит нагрузку.

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

Хотя я не программер поэтому..... :nezn:

Проблему решил именно убрав http запросы:

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

И это оказалось 90% нагрузки на память, больше 2 гиг :D

Всем спасибо за советы.

Проблема решена, тему можно закрывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху