Форум jimm.net.ru

  • Вы не зашли.

#31 2008-02-01 20:15:42

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Судьба конструктора

Статистика (реальная, в середине дня):
показов конструктора 3000 в час (50 в мин)
Сборок за 20 мин 80 сборок (4 сборки в мин)

Вот кусок лога замеров производительности (тест):

HTTP/1.1 200   0.51 secs:   39420 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   0.92 secs:   17189 bytes ==> /jimm/constructor.html?cstep=build
HTTP/1.1 200   0.48 secs:   18719 bytes ==> /jimm/constructor.html?cstep=kernel
HTTP/1.1 200   0.57 secs:   39249 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   0.43 secs:   23379 bytes ==> /jimm/constructor.html?cstep=iconhappy
HTTP/1.1 200   0.36 secs:   18934 bytes ==> /jimm/constructor.html?cstep=start
HTTP/1.1 200   1.31 secs:   18975 bytes ==> /jimm/constructor.html?cstep=start
HTTP/1.1 200   1.24 secs:   39245 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   1.12 secs:   21032 bytes ==> /jimm/constructor.html?cstep=iconauth
HTTP/1.1 200   0.77 secs:   23548 bytes ==> /jimm/constructor.html?cstep=fsicons
HTTP/1.1 200   1.48 secs:   47970 bytes ==> /jimm/constructor.html?cstep=icon
HTTP/1.1 200   1.17 secs:   38560 bytes ==> /jimm/constructor.html?cstep=back
HTTP/1.1 200   0.71 secs:   39329 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   0.91 secs:   39270 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   0.86 secs:   21088 bytes ==> /jimm/constructor.html?cstep=iconauth
HTTP/1.1 200   0.27 secs:   23548 bytes ==> /jimm/constructor.html?cstep=fsicons
HTTP/1.1 200   0.74 secs:   23514 bytes ==> /jimm/constructor.html?cstep=fsicons
HTTP/1.1 200   0.33 secs:   18774 bytes ==> /jimm/constructor.html?cstep=kernel
HTTP/1.1 200   0.90 secs:   17168 bytes ==> /jimm/constructor.html?cstep=build
HTTP/1.1 200   0.71 secs:   23675 bytes ==> /jimm/constructor.html?cstep=fsicons
HTTP/1.1 200   0.84 secs:   47981 bytes ==> /jimm/constructor.html?cstep=icon
HTTP/1.1 200   0.44 secs:   18937 bytes ==> /jimm/constructor.html?cstep=start
HTTP/1.1 200   1.52 secs:   39237 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   1.22 secs:   21151 bytes ==> /jimm/constructor.html?cstep=iconauth
HTTP/1.1 200   0.59 secs:   21141 bytes ==> /jimm/constructor.html?cstep=iconauth
HTTP/1.1 200   0.79 secs:   17123 bytes ==> /jimm/constructor.html?cstep=build
HTTP/1.1 200   0.94 secs:   48000 bytes ==> /jimm/constructor.html?cstep=icon
HTTP/1.1 200   0.94 secs:   23383 bytes ==> /jimm/constructor.html?cstep=iconhappy
HTTP/1.1 200   0.59 secs:   23272 bytes ==> /jimm/constructor.html?cstep=iconhappy
HTTP/1.1 200   0.48 secs:   47966 bytes ==> /jimm/constructor.html?cstep=icon
HTTP/1.1 200   0.49 secs:   23404 bytes ==> /jimm/constructor.html?cstep=iconhappy
HTTP/1.1 200   0.49 secs:   23689 bytes ==> /jimm/constructor.html?cstep=fsicons
HTTP/1.1 200   3.05 secs:   20447 bytes ==> /jimm/constructor.html?cstep=finish


Кто ты? Чего ты хочешь?

Неактивен

 

#32 2008-02-02 16:21:57

-=Raider=-
Грозный модератор
Зарегистрирован: 2007-06-25
Сообщений: 594
Профиль

Re: Судьба конструктора

И откуда столько берется?.. О_о


И взял Бог у Программиста кость, в которой не было мозга, и создал из неё  Пользователя...
© "Сеть"
-----
Неужели это опять я?..

Неактивен

 

#33 2008-02-02 16:45:22

Misha
Пользователь
Откуда: Чернігів, Україн
Зарегистрирован: 2007-08-01
Сообщений: 7
Профиль  Вебсайт

Re: Судьба конструктора

Стоп... Откуда такая загрузка??? Как там вообще картинки грузятся? Надеюсь просто статичными ссылками на файлы?
Еще вопрос - как хранится список ресурсов? Надеюсь в MySQL?


В реальності все не так, як насправді

Неактивен

 

#34 2008-02-02 18:36:24

DMA
Пользователь
Зарегистрирован: 2008-01-31
Сообщений: 5
Профиль

Re: Судьба конструктора

O_o Реально нереальная нагрузка для простой странички со списком максимум на 30 файлов. Судя по статистике запросов именно сама генерация страниц с ресурсами и требует оптимизации в первую очередь. И это просто более чем реально сделать. На этом фоне 3 секунды на 4 сборки в минуту просто пффф и не более. Для начала очень бы хотелось чтобы лишние ресурсы, неподдерживаемые моделью телефона, выбранной на стартовом этапе, вообще не отображались. И нам проще, и сайту легче.

Неактивен

 

#35 2008-02-02 20:44:24

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Судьба конструктора

Это не показания сайта на сервере. Конструктор был помещен у меня на ноуте (Sempron 2600+, 512M, Linux) соотверственно показатели немного хуже.
Misha, зря надеешься mysql для конструктора это непозволительная роскошь (всмысле тормозная она для этого). Раньше использовались ini-файлы, теперь они кэшируются. В итоге используется кэш-файл.
DMA, правда нельзя отличить поддерживаемое от не поддерживаемого. Или ты предлагаешь большой список моделей и поиском проверять?

Для сравнения производительности простой пример (нашфорум):
сайт по нагрузкой (25 человек постоянно лезут):

HTTP/1.1 200   0.47 secs:   12776 bytes ==> /forum/
HTTP/1.1 200   0.53 secs:   12776 bytes ==> /forum/

сайт без нагрузки (1 человек):

HTTP/1.1 200   0.08 secs:   12776 bytes ==> /forum/
HTTP/1.1 200   0.04 secs:   12776 bytes ==> /forum/

А теперь внимание конструктор без нагрузки (всего один посетитель собирает):

HTTP/1.1 200   0.21 secs:   14646 bytes ==> /jimm/constructor.html?cstep=kernel
HTTP/1.1 200   0.26 secs:   12626 bytes ==> /jimm/constructor.html?cstep=platform
HTTP/1.1 200   0.18 secs:   13497 bytes ==> /jimm/constructor.html?cstep=modules
HTTP/1.1 200   0.23 secs:   13249 bytes ==> /jimm/constructor.html?cstep=langs
HTTP/1.1 200   0.18 secs:   16427 bytes ==> /jimm/constructor.html?cstep=classes
HTTP/1.1 200   0.20 secs:   15454 bytes ==> /jimm/constructor.html?cstep=name
HTTP/1.1 200   0.23 secs:   53240 bytes ==> /jimm/constructor.html?cstep=statuses
HTTP/1.1 200   0.19 secs:   26712 bytes ==> /jimm/constructor.html?cstep=xstatuses
HTTP/1.1 200   0.26 secs:   28217 bytes ==> /jimm/constructor.html?cstep=pstatuses
HTTP/1.1 200   0.42 secs:   18990 bytes ==> /jimm/constructor.html?cstep=clients
HTTP/1.1 200   0.23 secs:   25379 bytes ==> /jimm/constructor.html?cstep=serverlists
HTTP/1.1 200   0.26 secs:   43594 bytes ==> /jimm/constructor.html?cstep=smiles
HTTP/1.1 200   0.25 secs:   45583 bytes ==> /jimm/constructor.html?cstep=themes
HTTP/1.1 200   0.46 secs:  103741 bytes ==> /jimm/constructor.html?cstep=logo
HTTP/1.1 200   0.28 secs:   38731 bytes ==> /jimm/constructor.html?cstep=back
HTTP/1.1 200   0.59 secs:   21151 bytes ==> /jimm/constructor.html?cstep=iconauth
HTTP/1.1 200   0.22 secs:   23285 bytes ==> /jimm/constructor.html?cstep=iconhappy
HTTP/1.1 200   0.42 secs:   23539 bytes ==> /jimm/constructor.html?cstep=fsicons
HTTP/1.1 200   0.25 secs:   47926 bytes ==> /jimm/constructor.html?cstep=icon
HTTP/1.1 200   0.19 secs:   39420 bytes ==> /jimm/constructor.html?cstep=sounds
HTTP/1.1 200   0.19 secs:   17182 bytes ==> /jimm/constructor.html?cstep=build
HTTP/1.1 200   1.54 secs:   20447 bytes ==> /jimm/constructor.html?cstep=finish

Ну так что сделать реально?

Хочу заметить что это время получения страницы (!), а не ее выполнения. То есть это время работы апача + пхп. (при отсутствии нагрузки время апача равно 0, с ней время обоих расчет). В результате время увеличивается пропорционально нагрузке. А уже это все сказывается на использованнии ресурсов (CPU, память).


Кто ты? Чего ты хочешь?

Неактивен

 

#36 2008-02-03 06:21:43

DMA
Пользователь
Зарегистрирован: 2008-01-31
Сообщений: 5
Профиль

Re: Судьба конструктора

Хотелось бы увидеть время непосредственно генерации страниц в php (замер времени от первой строки скрипта до последней).

Неактивен

 

#37 2008-02-03 11:31:26

Misha
Пользователь
Откуда: Чернігів, Україн
Зарегистрирован: 2007-08-01
Сообщений: 7
Профиль  Вебсайт

Re: Судьба конструктора

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

Добавлено спустя     2 минуты   10 секунд:
Причем кэшировать-то она будет в оперативке, а не на винте!


В реальності все не так, як насправді

Неактивен

 

#38 2008-02-03 14:05:58

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Судьба конструктора

<1,460 /jimm/constructor.html?cstep=kernel
<0,107 /jimm/constructor.html?cstep=platform
<0,091 /jimm/constructor.html?cstep=modules
<0,102 /jimm/constructor.html?cstep=langs
<0,103 /jimm/constructor.html?cstep=classes
<0,103 /jimm/constructor.html?cstep=name
<0,109 /jimm/constructor.html?cstep=statuses
<0,114 /jimm/constructor.html?cstep=xstatuses
<0,397 /jimm/constructor.html?cstep=pstatuses
<0,101 /jimm/constructor.html?cstep=clients
<0,111 /jimm/constructor.html?cstep=serverlists
<0,102 /jimm/constructor.html?cstep=smiles
<0,102 /jimm/constructor.html?cstep=themes
<0,120 /jimm/constructor.html?cstep=logo
<0,107 /jimm/constructor.html?cstep=back
<0,092 /jimm/constructor.html?cstep=iconauth
<0,107 /jimm/constructor.html?cstep=iconhappy
<0,101 /jimm/constructor.html?cstep=fsicons
<0,102 /jimm/constructor.html?cstep=icon
<0,098 /jimm/constructor.html?cstep=sounds
<0,206 /jimm/constructor.html?cstep=build
<0,082 /jimm/constructor.html?cstep=finish

(хм чего то не то. больно медленно пхп с апачем работают. cgi быстрее...)
Шаг со сборкой почему то влог незаписывается.

Misha ввиде файла естественно. Если не веришь что файл быстрее то сам посмотри на:
MySQL: время конекта + время выполнения запроса + время передачи данных (эх сокеты...)
файлы: время чтения файла
Если считаешь что мускул данные в памяти держет и это оптимально, то вспомни дву вещи:
1) если памяти достаточно, то и обычный файл находится в файловом кэше
2) если памяти не достаточно то "в mysql в памяти держет" читается как "mysql хранит все в свопе на диске".


Кто ты? Чего ты хочешь?

Неактивен

 

#39 2008-02-03 15:26:37

Misha
Пользователь
Откуда: Чернігів, Україн
Зарегистрирован: 2007-08-01
Сообщений: 7
Профиль  Вебсайт

Re: Судьба конструктора

Хм.. а Php там модулем апача или отдельно? Если отдельно тогда это одна из причин тормозов...
И ещё, а можно где-нибудь глянуть код конструктора и формат (и пример) файла кэша? Может и придумаю что-нить...
--
Кстати, операции чтения у PHP могут быть медленнее чем MySQL... особенно от формата кэша зависит.

Отредактировано Misha (2008-02-03 15:29:35)


В реальності все не так, як насправді

Неактивен

 

#40 2008-02-03 20:42:52

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Судьба конструктора

Насколько я понял формат кэша зависит от функции serialize. не думаю что ее код настолько медленный. Покрайней мере этот кэш увеличил в два раз скорость отдельного скрипта ( на сервере нагрузка упала всего на ~20%). (по вопросу исходников конструктора к алексису)

Насчет "оптимизировать апача" можешь не говорить. Я еще раз повторяю, что проверял у себя на ноуте, а это не сервер, хоть на нем линукс и стоит. PHP работает как модуль апача (если интересно), но кроме того у меня есть не падченая КДЕ, которой тоже не так мало надо. Так что на числа как на время не смотрите.
Оно нужно лишь что бы сравнить:
1) какова скорость сборки jar (и вообще отдельных шагов) по стравнению с остальным конструктором
2) насколько изменяется скорость и нагрузка при увеличении нагрузки

А вот реальные числа (для сервера, а не ноута):
Предел использование процессора на обычном хостинге 2,5% CPU.
Оптимизированный конструктор - 40% CPU.
Не оптимизированный конструктор - >60% CPU.
И того скрипт:
Должен выполнятся за 60 / 50 * 2.5% = 0.03сек (формула: сек / запросы * %CPU )
Выполняется за 60 / 50 * 40% = 0.47сек
А выполнялся за 60 / 50 * 60% = 0.72сек

Есть идеи по ускорению скрипта в 16 раз?

Отредактировано aspro (2008-02-03 20:44:14)


Кто ты? Чего ты хочешь?

Неактивен

 

#41 2008-02-04 03:55:39

Jector
Пользователь
Зарегистрирован: 2007-08-30
Сообщений: 9
Профиль

Re: Судьба конструктора

Использование memcached. "Кэш" в памяти вместо "кэша" на диске. Явно ускорит процесс. Хотя всё-таки не понятно, где же тормоза?..

Алекс, возможно ли глянуть код конструктора?

Неактивен

 

#42 2008-02-05 11:55:06

Misha
Пользователь
Откуда: Чернігів, Україн
Зарегистрирован: 2007-08-01
Сообщений: 7
Профиль  Вебсайт

Re: Судьба конструктора

Кому бредовую идею? :-)
Итак, проблема сейчас в чем? В загрузке процессора, так?
Применяем методы технического творчества.
1. Формулируем идеальный конечный результат - загрузка процессора равна 0, но работа конструктора выполняется.
2. Будем считать что код оптимизировать дальше некуда. В таком случае снизить загрузку процессора за единицу времени можно лишь увеличив время работы конструктора.
3. Формулируем возможное решение - вставка небольших задержек в код, во время которых процессор нагружаться не будет :-)
Хоть это и замедлит работу, но снизит нагрузку на сервер :-d


В реальності все не так, як насправді

Неактивен

 

#43 2008-02-05 15:13:12

PiG
Пользователь
Откуда: Киев
Зарегистрирован: 2007-07-09
Сообщений: 41
Профиль  Вебсайт

Re: Судьба конструктора

разве это бредовая идея... бредовой идеей было бы сделать весь конструктор на одной странице без шагов

Неактивен

 

#44 2008-02-05 21:51:38

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Судьба конструктора

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


Кто ты? Чего ты хочешь?

Неактивен

 

#45 2008-02-06 07:45:48

Misha
Пользователь
Откуда: Чернігів, Україн
Зарегистрирован: 2007-08-01
Сообщений: 7
Профиль  Вебсайт

Re: Судьба конструктора

Хм... не подумал.
Ну тогда надо смотреть код, так рассуждать можно много.


В реальності все не так, як насправді

Неактивен

 

Board footer

Powered by PunBB 1.2.14
© Copyright 2002–2005 Rickard Andersson
Модифицирован PunBB.ru
А находится на jimm.net.ru