nomarketing

nomarketing
Рейтинг
195
Регистрация
23.09.2009
Маркус:
Запрос к БД обычно отправляют через функцию mysql_query(). Можно поискать её текстовым поиском по всем файлам.

А с файлом можно работать, например, так:
$f = fopen( 'путь к лог файлу', 'a' ); //открываем файл на добавление
fputs( $f, '.' ); //пишем точку, как счётчик
$fclose( $f ); //закрываем файл

После открытия HTML-страницы в браузере смотрим сколько точек попало в файл. Количество точек = размер файла в байтах.

Фокусы какие то - сегодня или уже завтра попробую сделать это.

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

Или нужно обьязательно иметь всю бд - но сами понимаете давать кому то бд.. это не хорошо

---------- Добавлено 24.02.2014 в 21:19 ----------

kgtu5:
ТС может все же в одной теме обсуждать /ru/forum/839543 ???

---------- Добавлено 24.02.2014 в 20:53 ----------


их не

надо, а исправлять...

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

Вообщем сделал я ТЕСТ

Поместил запись в файл точки именно где есть SQL = запрос

И одна точка там записалась.

Т.е один раз зашел одна точка.

И так уже в 2 скриптах где есть запросы по точке, т.е одна точка один запрос (заход на страницу)

Я думаю может у меня кто то ворует контент ?? из за этого падает бд ? т.е кто то парсит мой сайт и лажиться бд ?

Тогда как можно просто отсеить по кол запросов ? т.е если много запросо идет с одного айпи мы его блокируем ?

pupseg:
пример среднего проекта, ооооочень грубая прикидка, все очень округлено.
50-70тыс посещений в сутки. DLE-движок.
сервер - 100евро
админ - 100евро
программист, который не посвещает все время этому проекту, но присматривает за ним - 150 евро.
- внешнее хранилище данных, для проверенного хостинга бакапов - 20евро. (не лиж бы дешевое с побольше места, а гарантированно надежное, без ответов саппорта "сгорел диск" и без слов "мы не несем ответственности за ..." в оферте)
- мониторинг какой нибудь ping-admin - 10 евро.
итого 380евро по очень грубым прикидкам - себестоимость.
как меньше сильно может быть, так и больше.

Т.е в мес 380 Евро - да я думаю это не очень дорого... хотя цен вроде не припомню я за 100 евро сервер..

А что выбирать при покупке сервера ? т.е на что орьентироваться ?

Маркус:
Ага, т.е. падение могло быть не по вине вашего сайта, а по вине какого-то другого сайта, который положил СУБД хостера?

С вашей CMS я не знаком, поэтому не скажу, как именно подсчитать число запросов БД. Но если бы такая задача была поставлена...
1) Разворачиваем сайт на Win- Denwer
2) разворачиваем реальную базу с сайта
3) ищем в скриптах место, в котором РНР обращается к MySQL, и ставим там инкрементирующий счётчик. Например, пишем в файл строчку. По окончании загрузки страницы открываем файл и считаемч число строк. (Если есть время разобраться с CMS, то можно и более красивый счётчик сочинить)
4) повторяем процедуру для разных страниц. Записываем результаты измерений.

А поподробней можно на счет счетчика ? остальное уже все есть реальная база - и денвер и сама цсм - готов приступить к понятию и поиска проблемы - еще я глянул в логах сервера (хостера)

В каком скрипте ошибка базы данных и ее строка

PHP Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in

HP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

PHP Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Что нужно сделать ? - найти код запроса - как выявить сколько времени требуеться и можно ли оптимизировать это ?

pupseg:
- понять узкое место вашего проекта.
- просить\требовать изучения со стороны сервера у текущего хостера. что грузит ? диск? память, скрипты тяжелые? база данных? миллионы файлов в одной папке ?
- понять - что вы хотите от сервера, а может быть нужна группа серверов ? может быть экономически выгоднее иметь вообще свое оборудование.
- составить план миграции на другие мощности.
- выбрать, арендовать сервер(ы)
- основываясь на плане миграции - переносить данные. Есть проекты - которым терпимо полежать час полтора при миграции, а есть - которым и 10 минут лежать - не приемлемо.
- иметь\нанять группу программистов или одного человека, зависит от ваших масштабов. который будет сопровождать ваш код.

это 1% действий при комплексном подходе к проблеме. 90% непосвященных уверены - что "если настроить mysql\nginx\httpd - все будет летать". на самом деле - вся серверная оптимизация дает 10-15-20% производительности в целом, но открывает горизонты проггерам для масштабирования своего проекта. Поэтому, повторюсь, внимательно изучите ваш код.
- бюджет опять же.
- выбор времени дауна, если согласно плану он предусмотрен.
- оценка ваших потерь. что будет если криво переедите\часть данных потеряете?
- если все пойдет плохо- как быстро и безболезненно вернуться назад для второй попытки переезда. и тд.
по своему опыту в уже почти 10 лет - не отвечаю за уважаемых коллег, но могу сказать, что а. хороший программист(ы), б. наличие понимания и плана - решают.

если же у вас десяток сайтов на каком-нибудь ДЛЕ и вы переживаете "а как же яндекс и сапа" - то можете не читать, что выше написано :) в 90% случаев подобные сайты переносятся за 20 минут(не считая времени на перекачку какой-нибудь папки "upload", если таковая есть). Хотя видел лично я несколько проектов, которые на wordpress, DLE, joomla, от движка которых остались только одни названия. код там писан\переписан и вовсе не похож с первого раза на ДЛЕ и т д.
PS: по деньгам на рынке услуг - от 15$\час , до сотен и тысяч долларов.

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

Вообщем посмотрел я лог вот что там за ошибки..

PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

PHP Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in

PHP Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Указаны строки запросов, но что толку что я на них смотрю я все равно не знаю как их оптимизировать или хотя бы потестировать или что то самому преприняться для начала -

Может после того как (если они не оптимизированны) после оптимизации все будет нормально работать то еще можно пожить не много но все равно потом переезжать на VPS

---------- Добавлено 24.02.2014 в 20:10 ----------

WapGraf:
Проще говоря необходим сервер с администрированием. Тогда у вас не будет головной боли по переходу из хостинга на дедик.

Так и денег я думаю за сервер не мало нужно это раз -

А во вторых если я сам мало что понимаю как я администратировать буду ?

Ну по мануалам там буду рабираться по не многу но это времени куча...

А нанимать когда то тоже деньги нужны.

Маркус:
nomarketing, лично я бы начал диагностику с общего числа SQL-запросов, которые выполняются, чтобы сформировать страницу. Бывает так: думаешь, что там 5-10 небольших запросов. А на самом деле оказывается 900-1000. Причём 90-95% из них просто лишния.
У вас есть возможность отследить, сколько SQL-запросов выполняется при формировании страниц?

---------- Добавлено 24.02.2014 в 20:31 ----------

Следующее, что приходит в голову — проверить железо. Винчестеры имеют обыкновение через 4-6 лет работать жутко медленно. Бывает и так: в коде ничего не меняешь, но на новой винчестере БД летает, а на старом — глохнет.

Далее я бы использовал утилиту innotop в период пиковых нагрузок. Утилита в реальном времени показывает долго выполняющиеся запросы.
Для этой же цели можно переконфигурировать MySQL. В my.cnf прописать логгирование медленных запросов. Порог поствить, например, 10 или 15 секунд — если запрос выполняется дольше порога, он будет записан в лог-файл. Если в лог файл ничего не попадает, то понижаем порог.

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

Отследить ? - у меня есть сайт на локальной машине win - denwer.. - может как то можно локально проверить или самому как то сгенерировать что то типа нагрузки и выловить где ошибка и сколько держит ? - ну или не знаю.. но на данный момент ситуация такова..

---------- Добавлено 24.02.2014 в 19:41 ----------

ivan-lev:
nomarketing, CMS какая?

Довольно часто есть встроенные средства "профайлинга" - как общее количество/время запросов, так и детализация по каждому запросу.

X-Zero Community

kgtu5:
просто взял и перешел :)
затем постепенно начал разбираться с постепенно появляющимися вопросами.
ничего вроде, впс и сайты на нем работают стабильно ;)

P.S. лучше раньше...
P.P.S. понимание придет когда начнете аксесс и еррор логи смотреть...

Ну логи я уже посмотрел - все вроде по не многу проясняеться - но скажу чесно у меня страх от перехода :) т.е так оно вроде все работает более мение но вот если начну переходить это прописывать днс - вообщем все менять с ног наголову да еще и туда где нужно самому все делать...

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

Оптимизайка:
Понятное дело, что чем ближе сайт к посетителю, тем скорость загрузки будет меньше, т.к. меньше будет до сервера пинг. Обычно статику и кеширующие серверы разносят географически, а ядро системы проще оставить в одном ДЦ. Выбирайте хостинг с возможностью выбора ДЦ или CDN по интересующим вас странам.

Спасибо за советы, просто я этим ни когда не интересовался более подробно.

Просто понимаю что нужны схемы, в плане, начинающая, потом средняя, потом уже идет highload, ну и пошло поехало, что то там добавить что то оптимизировать, т.е схема что бы управлять и вертеть как ты хочеш проэктом.

Оптимизайка:
Проекты с большой нагрузкой обычно индивидуальны, но вы можете почитать о принципах их организации, если будете гуглить по ключевому слову highload :) Но это еще рановато вам, т.к. 100 тыс. уников в сутки - это не highload ;)

В этом блоге вы можете почитать, как устроены многие высокопосещаемые сайты.

А еще вопрос, к примеру сайт расчитан на одну страну, к примеру пусть это будет испания.

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

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

Т.е я имел ввиду то что к примеру есть сайт расчинат на Испанию, а сервер я куплю в америке, то я думаю отклик будет меньше, юзеров из испании на сайт ?.

Оптимизайка:
Надо смотреть, на что в вашем сайте идет основная нагрузка. Это место оптимизировать или добавить недостающих ресурсов (обычно +память или HDD->SDD). По мере роста проекта далее придется вынести базу данных на отдельный сервер и при необходимости создать несколько web-серверов с распределением нагрузки по ним (load balancer, round robin dns). Потом опять оптимизируете (memcached). Если и дальше не будете справляться с нагрузкой, то придется из базы данных делать кластер - разносить на несколько серверов и думать о дальнейшем пересмотре архитектуры проекта и его переписывании.

А есть где можно подробно поэтапно почитать об этом.

Посмотреть различные начальные схемы ?

Спасибо.

Люди вообще кто то через Киевстар на Приват выводил ?

Всего: 710