Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Высокие нагрузки на сайт
 
 автор: ruslanaxti   (25.05.2011 в 10:40)   письмо автору
 
 

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

  Ответить  
 
 автор: Valick   (25.05.2011 в 10:56)   письмо автору
 
   для: ruslanaxti   (25.05.2011 в 10:40)
 

+ оптимизация РНР кода и HTML кода :) когда борьба идет за каждый байт траффика.
ну и смена мощного хостинга, на еще более мощный хостинг

  Ответить  
 
 автор: ruslanaxti   (25.05.2011 в 11:05)   письмо автору
 
   для: Valick   (25.05.2011 в 10:56)
 

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

Например хостинг который стоит 100 руб в месяц с объемом памяти в 1 гб. Интересно сколько пользователей он выдержит? Для того чтоб сайт выдерживал нагрузку 200 пользователей хостинг какой мощности, параметров нужен?

  Ответить  
 
 автор: cheops   (25.05.2011 в 12:29)   письмо автору
 
   для: ruslanaxti   (25.05.2011 в 11:05)
 

У разных CMS могут быть разные цели - у одной высокая производительность, у другой - скорость разработки, у третьей поисковая оптимизация и т.п.

>Интересно сколько пользователей он выдержит?
Пользователями тут ничего не измерить (пользователь может неделями не заходить или быть очень активным), тут нужно к хитам обращаться.

  Ответить  
 
 автор: Valick   (25.05.2011 в 12:42)   письмо автору
 
   для: cheops   (25.05.2011 в 12:29)
 

мне кажется речь о 200 пользователях в секунду

  Ответить  
 
 автор: cheops   (25.05.2011 в 12:53)   письмо автору
 
   для: Valick   (25.05.2011 в 12:42)
 

Это будет зависеть от того, что они делают и какие механизмы задействуются для их обслуживания, но не думаю, что хостинг за 100 рублей потянет 200 запросов в секунду. В любом случае это здорово зависит от того как долго обслуживается каждый запрос. Т.е. чтобы не было перегрузки, грубо говоря на каждого пользователя нужно тратить не более 5Мб памяти и запрос должен обслуживаться в течении 0.005 секунды. Вряд ли в памяти будет 200 5-мегабайтных процесса Apache, скорее всего их будет 10 в районе 50Мб (по памяти проходим), ну пусть 20. Это означает, что время выполнения запроса сокращается до 0.0005 секунды. Теперь осталось замерить фактическую скорость (которая будет зависеть и от скорости клиента, т.е. если он будет страницу на своем медленном канале тянуть 3 минуты - все это время Apache терпеливо будет ждать, не передавая этот процесс для обслуживания следующего запроса). Это очень грубая оценка, но от неё можно начинать отталкиваться.

  Ответить  
 
 автор: cheops   (25.05.2011 в 12:27)   письмо автору
 
   для: ruslanaxti   (25.05.2011 в 10:40)
 

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

  Ответить  
 
 автор: ruslanaxti   (25.05.2011 в 18:58)   письмо автору
 
   для: cheops   (25.05.2011 в 12:27)
 

У меня хостинг за 100 руб. (за большее платить не могу), еле еле сделал сайт соц. сеть. На нем пользователи регистрируются, могут находить друзей, писать сообщения (скажем на подобие твитера) видных для друзей. Писать блоги и оставлять к ним комментарии. Сложного ничего нет. Код простой и состоит из простых запросов без больших библиотек и фаерворков. На какое примерно число пользователей одновременно посетивших сайт я могу расчитывать? Человек 30 хоть смогу. И если сайт перегрузиться, что потом, какие нибудь последствия будут?

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

  Ответить  
 
 автор: cheops   (26.05.2011 в 13:50)   письмо автору
 
   для: ruslanaxti   (25.05.2011 в 18:58)
 

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

>Человек 30 хоть смогу.
Смотря в какой срок и что они будут делать. Большинство запросов, например, к базе данных обрабатывается за сотые доли секунды - это позволяет обрабатывать огромное количество запросов. Однако, если возрастает нагрузка на процессор или ощущается нехватка оперативной памяти, это время будет стремительно увеличиваться. Расчитать это можно, но нужно много параметров на руках иметь.

>Скажите есть ли программы и какие нибудь методы позволяющие расчитать нагрузку на сайт.
>Нужно ли устанавливать линукс на свой комп и там как то его тестировать?
Так бесполезно - у вас железо другое, сеть вообще не смоделируете, а если затык будет там и запросы будут выполняться долго по сетевым причинам - у вас память заморозится в этих процессах и сервер ляжет, даже если у вас будет вылизанный код. Очень много параметров - модель нагрузки считать не просто с реальным сервером и полным доступом к нему, а без него - это не подъемная задача - будет модель не имеющая отношения к реальности.

  Ответить  
 
 автор: Добрый кот   (25.05.2011 в 21:30)   письмо автору
 
   для: cheops   (25.05.2011 в 12:27)
 

Тоже интересен данный вопрос. У меня хостер тоже ругается на нагрузку. Как можно выявить "узкие" места скрипта?

  Ответить  
 
 автор: cheops   (26.05.2011 в 13:51)   письмо автору
 
   для: Добрый кот   (25.05.2011 в 21:30)
 

Попросите хостера хотя бы какой-то ключ: куда основная нагрузка: Apache, MySQL, память, канал.

  Ответить  
 
 автор: Добрый кот   (26.05.2011 в 18:46)   письмо автору
 
   для: cheops   (26.05.2011 в 13:51)
 

Нагрузка была на проц и мускул. Нагрузку на мускул снизил кешированием. осталось снизить нагрузку на процессор
00:00    12.30% httpd.pizza (веб-сервер)    12.3%
при лимите 10%
              12.80% [2011-05-26 01:27]
    %CPU       COMMAND:  LAST REQUEST
    2.50       [httpd.httpd] <defunct>
    10.30      httpd-05: (worker) _ сайт.ru/mod.php?name=Art&go=page&cid=7469

  Ответить  
 
 автор: cheops   (27.05.2011 в 16:05)   письмо автору
 
   для: Добрый кот   (26.05.2011 в 18:46)
 

Динамический GDLib или еще что-то в этом духе используется? Объем генерируемых страниц велик?

  Ответить  
 
 автор: Добрый кот   (27.05.2011 в 19:04)   письмо автору
 
   для: cheops   (27.05.2011 в 16:05)
 

GD не используется. Размер страницы: 34 438 байт (По данным Оперы). Размер статьи 19 килобайт

  Ответить  
 
 автор: cheops   (27.05.2011 в 19:40)   письмо автору
 
   для: Добрый кот   (27.05.2011 в 19:04)
 

А сколько времени в среднем формируется HTML-страница (на строне сервера)?

  Ответить  
 
 автор: Добрый кот   (27.05.2011 в 20:14)   письмо автору
 
   для: cheops   (27.05.2011 в 19:40)
 

Открытие страницы: 0.15 секунды и 6 запросов к БД за 0.0964 сек.

  Ответить  
 
 автор: cheops   (27.05.2011 в 20:33)   письмо автору
 
   для: Добрый кот   (27.05.2011 в 20:14)
 

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

  Ответить  
 
 автор: Добрый кот   (27.05.2011 в 20:41)   письмо автору
 
   для: cheops   (27.05.2011 в 20:33)
 

А как нить можно проверить какая часть скрипта наиболее пожорлива? проценты нагрузки ведь откуда то берутся. потом этот кусок и оптимизировать

  Ответить  
 
 автор: cheops   (27.05.2011 в 21:20)   письмо автору
 
   для: Добрый кот   (27.05.2011 в 20:41)
 

Большие вопросы к способам измерения этой нагрузки. Если хостер жалуется, что ваш ресурс создает нагрузку, следовательно пользователи не разделены (иначе бы вы захлебнулись бы в своей квоте и жаловались бы уже вы, а не хостер). Кто-то может поглощать память, при относительно невысокой нагрузке, а ваши вылизанные запросы выстраиваться в очередь, просто в силу того, что у вас посещаемость высокая. Хостер катит бочку на вас, хотя на самом деле у кого-то там бесконечный цикл со сложными SQL-запросом внутри, который никогда не заканчивается, так как PHP терпеливо ждет ответа от базы данных (ну это как один из вариантов, что на самом деле происходит можно понять, только получив полное управление над сервером). А может и в самом деле серверу тяжел ваш проект, ведь сервера в отличие от пользовательских машин друг от друга могут здорово по производительности различаться.

  Ответить  
 
 автор: Добрый кот   (27.05.2011 в 21:49)   письмо автору
 
   для: cheops   (27.05.2011 в 21:20)
 

вот еще нагуглил по теме. http://forum.dklab.ru/viewtopic.php?t=20072
Поставил на денвер, штука охрененная. Показывает где и какая нагрузка (на локалке). Нашел узкие места своих скриптов, правда легче не стало, далее уже некуда оптимизировать :)
Вообщем XDebug+WinCacheGrin маст хев

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования