Следует иметь в виду это при использовании require '../[something]'
, Вы обращаетесь к рабочему каталогу PHP, не пути фактического сценария. Я предпочитаю всегда использовать
require(dirname(__FILE__).'/path');
Таким образом, я знаю, что требую файла относительно файла, в котором находится потребовать оператор
Так в этом случае, Ваш включать был бы:
require_once( dirname(__FILE__).'/../includes/include.php');
Andrey,
Для ответа на вопрос, я отослал бы Вас к отрывку ниже. Мудрая клиентская библиотека кэш-памяти производительности все еще сделала бы два внутренних поиска независимо от того, есть ли у Вас 1 или более экземпляров.
Но наличие только одного экземпляра могло бы причинить боль, потому что это возьмет когда-то для резервного копирования на прогрев, когда это прибудет онлайн.
http://www.linuxjournal.com/article/7451?page=0,1 запрос для получения/устанавливания ключа со значением требует, чтобы ключ был выполнен через хеш-функцию. Хеш-функция является односторонней функцией, отображающей ключ (быть этим числовой или строка) к некоторому числу, которое будет числом блока. После того как число блока было вычислено, список узлов для того блока ищется, ища узел с данным ключом. Если это не найдено, новый может быть добавлен к списку.
Таким образом, как это касается Memcached? Memcached представляет пользователю интерфейс словаря (ключ-> значение), но он реализован внутренне как хеш с двумя слоями. Первый слой реализован в клиентской библиотеке; это решает который сервер Memcached отправить запрос к путем хеширования ключа на список виртуальных блоков, каждый представляющий сервер Memcached. Однажды там, выбранный сервер Memcached использует типичную хеш-таблицу.
Помните что, чем больше memcached клиентов Вы имеете, тем больше соединений Вы имеете, чтобы иметь открытый. Если это - веб-сервис, работающий при предварительном разветвлении Apache, и Вы хотите смочь обработать 10 000 одновременных соединений, различием между одним сервером и 4 являются 30 000 соединений TCP.
Насколько производительность идет, хотя, она действительно зависит от Вашего приложения. Но наличие 4 серверов может дать Вам 4x столько же центральных процессоров и 4x сколько много сетевых интерфейсов, если Вы действительно не увеличиваете тот центральный сервер. Выше определенного момента стоимость подобных обновлений идет нелинейная (система с 32 ядрами собирается стоить пути больше, чем 4x стоимость двойного четырехъядерного сокета, например). Но, я не видел, что memcached ЦП, ограниченный обычно, таким образом, определенно вероятно, что единственному серверу не, вероятно, придется быть таким высокопроизводительным сервером.
Но, как со многими вещами, это - вероятно, что-то, что необходимо протестировать на себя со своими определенными приложениями. Мной кажется вероятным, что единственный сервер на 48 ГБ мог обработать загрузку, так попытайтесь получить скромный сервер с 48 ГБ RAM, поместите munin на него и выполните некоторое стресс-тестирование. При нахождении узких мест у Вас есть больше информации о том, необходимо ли получить еще 3 сервера и распространить RAM вокруг них или возможно принять некоторые другие меры.
Ну, действительно ли Вы уверены, что это более зелено? У меня были бы несколько, только для надежности и продолжать масштабироваться в Вашей голове.