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

Тема в разделе "PHP", создана пользователем Павел, 9 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Павел

    Павел Создатель

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

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

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

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

    Буду благодарен за помощь.
    P.S. В php не шарю :(
     
  2. Alexitdv

    Alexitdv

    Регистр.:
    4 янв 2008
    Сообщения:
    161
    Симпатии:
    65
    Зачем вообще файл читаешь? если ты его инклюдишь? А самый простой способ и быстрее будет - используй SSI просто инклюдь файлик с линками
     
  3. Павел

    Павел Создатель

    Регистр.:
    21 апр 2006
    Сообщения:
    46
    Симпатии:
    12
    Дак яж говорю что в php не шарю.

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

    А как с помощью SSI замутить?
    Да и иногда я так код сапы вызываю так.
     
  4. gregzem

    gregzem

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

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

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    Не перестанет. Потому что не в этом файле вообще дело (если, конечно, он не весит 2.5 гига).

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

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

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

    Павел Создатель

    Регистр.:
    21 апр 2006
    Сообщения:
    46
    Симпатии:
    12
    Происходят конечно, а я уже допросил и он мне сказал что грузят сервер именно те коннекты которые идут с моих же сайтов их около 350к в сутки получается.

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

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

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


    Расписано конечно хорошо но если я программировать не умею то это воплотить в жизнь будет сложно :(
     
  7. judgefog

    judgefog

    Регистр.:
    12 авг 2006
    Сообщения:
    487
    Симпатии:
    335
    все решится достаточно просто если не гонять файлы через http
    память уходит при работе апача/php

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

    абсолютные пути на хостинге секретом быть не должны
     
    Павел нравится это.
  8. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Можно кешировать инфу файла. Снизит нагрузку.
     
  9. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    168
    Симпатии:
    21
    Да, действительно через пртоко http ненужно, посмотри свой локальный путь и сделай так. , Несколько процентов производительности выйграешь обязательно !
     
  10. Павел

    Павел Создатель

    Регистр.:
    21 апр 2006
    Сообщения:
    46
    Симпатии:
    12
    Кешировать можно но в моем случае идет расход памяти при большом количестве коннектов к файлам и что я начну обращаться к кешу. коннектов не убавится.

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

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

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

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

    Проблема решена, тему можно закрывать.
     
Статус темы:
Закрыта.