Не знаю как Вы, но я отлаживаю сайты на локальном сервере. Мне так удобнее, да и быстрый интернет не всегда есть под рукой. В качестве сервера я использую Denwer. Конечно если вдоваться в детали, то это не совсем сервер, это пакет программ для легкого разворачивания web сервера на своем компьютере. Пока у меня был GPRS, и я не знал радостей широкополосного доступа, скорость работы этого пакета меня вполне устраивала. Однако времена меняются, и теперь на хорошем интернете сайт на удаленном сервере работает гораздо отзывчивее чем на локальном Denwer'е. Непорядок, задержек быть не должно, тем более что железо не самое последнее, и в принципе сверх нагруженных базами/ООП/фреймворками проектов я не пишу.
   Я более чем убежден, что файл с <?php echo 'Hello world!!!'; должен обрабатываться, практически мгновенно, а кнопочка обновления не должна быть заметна глазу. Для того чтобы Denwer работал так, как нужно, необходимо принять ряд мер по его акселерации. Посмотрим, что же можно сделать.

Первое, что дал Google - оптимизация php.ini, находим строки

; realpath_cache_size=16k
; realpath_cache_ttl=120

И заменить их или написать ниже их такие соответсвенно:

realpath_cache_size=16000k
realpath_cache_ttl=1200

Пишут, что данная оптимизация ускоряет Денвер на 40%. Большого прироста скорости я не заметил, но он все же есть. 

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

Теперь возьмемся за mysql. Его конфигурация лежит в файле my.ini, у меня он лежит тут C:\WebServers\usr\local\mysql-5.5

В сети предлагают включить так называемые именованные каналы. Для этого в раздел [mysql] нужно добавить enable-named-pipe

[mysql] 
enable-named-pipe

Также можно увеличить параметр  key_buffer_size, тут тоже как и в php.ini можно не жадничать, и выбрать значение побольше. Рекомендуют 30-40% от размера оперативки.  

Это в принципе все, что мне удалось нарыть. Дальше будет лишь лично мой опыт установки Denwer на windows 8.

Ну во первых, Denwer в базовой комплектации, на нее не ставиться. Про это я уже писал. Кроме того любой проект использующий mysql, почему-то притормаживал. Методом нехитрых замеров производительности я пришел к выводу что скрипт тормозит из-за на mysql_connect. Задержка на нем была приличной, около одной секунды. 

Оказывалось, что localhost не такой уж и локальный, проверка его DNS отнимает время, поэтому на локальной машине имеет смысл в настройках подключения к БД указывать не localhost а конкретно 127.0.0.1

Кстати, win 8 ставил под новый SSD накопитель, и жизнь теперь кажется не такой уж безнадежной =) Очень рекомендую 

Рассказать друзьям

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


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

Комментарии   

0
Антон
# Антон 15.10.2012 16:55
Спасибо помогло!!!
0
Leroy
# Leroy 15.10.2012 17:04
Пожалуйста)
+1
Владимир
# Владимир 19.11.2012 05:21
Спасибо.

Вот только с localhost сомнительная настройка. Ведь в hosts уже стоит запись "127.0.0.1 localhost", а значит никакого обращения к ДНС нет.
+1
Leroy
# Leroy 19.11.2012 05:58
однако на деле не все работает как задумано, у меня тут был пост про настройку в опере, ставишь галочку Искать сайт на локальной машине, не ищет. снимаешь галочку, ищет. Веселые баги никогда не уйдут из жизни разработчика. на хабре была статья как один разраб разочаровался в индустрии, ... ты качаешь известный пакет, ставишь его, и вылазит ошибка. ее никто раньше не видел, нигде про нее не написано, но она есть и ее надо решить и так раз от разу. я с ним полностью согласен, так и бывает. этот глюк тому подтвержление
0
Webaliser
# Webaliser 04.02.2015 11:18
Пока не попробовал, не поверил. И это только изменение с localhost на 127.0.0.1 !!!!

На деле оказалось, что это:
- Генерирование: 1.0379 sec. | Запросы в базу: 8

превратилось в это:
- Генерирование: 0.0335 sec. | Запросы в базу: 8
0
dmitriy
# dmitriy 24.11.2012 05:09
Привет!

Подскажи, как решил проблему с медленной работой denwer на win8?

Перешел с вин7 на вин8, теперь одна и та же страница открывается за 4 секунды (2 сек ожидание, 2 передача), на старой системе 0,5 секунды все это занимало. Работать стало невозможно, сидишь и тупо ждешь каждый раз, даже перенос всего на рамдиск не помогает, в чем дело - не пойму... Описанное тобой не помогло
+1
Leroy
# Leroy 26.11.2012 04:08
ну мне все вышеперечисленное помогло. вся трабла была в localhost. еще есть веселая настройка у оперы, писал как-то про нее. еще есть файрволы и касперский. нужно добавлять файлы и локальные сайты в белый список. тонкостей куча, каждый раз что-то новое
0
Саша
# Саша 27.11.2012 16:38
Спасибо вам больше, замена на 127.0.0.1 помогла. Тоже win 8 установлена, был глюк - долго обновлял страницы. Все помогло.
+1
Oneng
# Oneng 10.12.2012 08:22
Спасибо, помогла замена "127.0.0.1" просто супер!
0
Иван57007
# Иван57007 19.12.2012 07:11
Спасибо помогло,конечно загрузка стала не моментальная ожидание около 4 сек составляет но это куда приятнее чем когда полминуты ждешь,а потом тебе еще и ошибку иногда выдает,только одного не пойму файл my.ini в usr\local\mysql-5.5 не было зато был my.cnf который я переименовал в ini и изменил уже значения как описано в статье,возникает вопрос на сколько отрицательно может повлиять смена расширения?

P.S. все работает пока сбоев нет!
0
Leroy
# Leroy 19.12.2012 13:21
это одно и тоже, не важно расширение
0
Anonimus
# Anonimus 19.04.2013 02:16
Замена localhost на"127.0.0.1" помогла отклик моментальный. Спасибо!!!
+1
Ankapul
# Ankapul 29.11.2013 01:32
А где его менять надо?
0
Leroy
# Leroy 29.11.2013 14:00
при подключении к серверу бд, к примеру в функции mysql_connect
0
mac0s
# mac0s 26.06.2013 14:20
все просто, лаконично и помогает. До исправления загрузка была порядка 3-4 сек, теперь 0.3-0.8.

Правда у меня еще стоит eaccelerator с базовыми настройками:



; базовая конфигурация акселератора

[eaccelerator]

eaccelerator.shm_size="64"

eaccelerator.cache_dir="C:/tmp/eaccelerator"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="0"

eaccelerator.shm_prune_period="0"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

eaccelerator.keys = "shm"

eaccelerator.sessions = "shm"

eaccelerator.content = "shm"



Не забудьте поменять путь до папки "tmp" на свой.
+1
Chipotuner
# Chipotuner 28.02.2014 00:58
я тоже что то не понял, где менять localhost на 127.0.0.1
0
Falcon
# Falcon 10.06.2014 15:44
в настройке сайта (cms)
0
Petr
# Petr 15.08.2014 15:22
Проделал вышеуказанные действия в статье, к сожалению, ощутимой разницы я не увидел. Как тормозило, так и тормозит на восьмой винде.

Есть ли еще способы увеличения производительности?
0
Vacoo
# Vacoo 10.09.2014 14:23
Круто! Спасибо
+2
Денисыч
# Денисыч 15.01.2015 10:10
Елки-палки, столько времени потеряно, проблема так просто решилась!! Всего-то поменять имя хоста! Спасибо автору!
0
adjtea
# adjtea 28.07.2015 00:14
И мне помогло! Спасибо огромное!
0
АлексейC
# АлексейC 27.12.2015 21:18
Большое спасибо и действительно, сколько же времени уходило на загрузку страницы Win 10, теперь в 2 раза быстрее стало все летать)))
0
АлексейC
# АлексейC 27.12.2015 21:19
Большое спасибо, действительно в 2 раза быстрее стало все летать win 10 супер, нет слов
0
meloff
# meloff 14.01.2016 01:26
ipv6 надо вырубить просто
0
Виталий Охрименко
# Виталий Охрименко 15.09.2016 07:58
Спасибо! Помогло однозначно! Статья огонь - идеальное сочетание краткости и таланта! Поделитлся записью с друзьями, мож компу тоже пригодится. Сайты на денвере теперь грузятся раза в два быстрее