homer18

Рейтинг
60
Регистрация
07.11.2007
myhand:
Учитывая тенденцию "велосипедистов" быть, мягко говоря, малоквалифицированными программистами - пока не исключаю здесь проблемы. Например, что будет если запросов пришло несколько, а файла кеша еще нет?

Не скрою, программист я такой же как администратор. Но учиться никогда не поздно :)

Если приходит запрос а файла кэша нет, то скрипт создаёт временный файл со случайным именем и пишет в него результат работы (т.е. весь html файл), а в конце делается rename("временное_имя_файла","постоянное_имя_файла"). Не могу утверждать, но как мне кажется это достаточно надежный способ. Даже если будет одновременно несколько обращений к несуществующему кэшу, то проблем быть не должно - максимум это файл кэша несколько раз перезапишется.

Отличите между *чем* и *чем*. Тем что скрипт пишет в заголовке и реальным размером вывода. Тогда это проблема. Учитывая что такая порнография у вас в 20% запросов - стоило бы исправить.

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

Не может ли быть проблема быть связана с более низким уровнем? Например, со стеком tcp/ip? Там для меня пока совсем темный лес. Раньше где-то натыкался на интересные посты про оптимизацию серверов под большие нагрузки (правда под фряхой, а у меня debian) - так там какие-то изменения на уровне ядра предлагали делать. Сейчас правда ничего найти не могу :(

myhand:
Это плохо. Ну а man siege полностью осилишь? Взять access.log и долбиться не на одну страничку - на точно так как делают клиенты.

Попробую, только похоже по хорошему предварительно надо будет мне брать второй сервер, переносить туда сайт, а потом уже играться с этим.

Убедитесь, что запросы от siege не идут мимо вашего "кеша".

Если файл "кэша" отсутствует, то php скрипт выполнится полностью и создаст этот файл. Если бы дело было в "кэше", то в server-status висели бы процессы соответствующих скриптов. Это бы нельзя было не заметить.

Т.е. запрос не отвалился, сервер не возвратил 4** или 5** статус, а что?
Между чем и чем "размер отличается", поясните пожалуйста?

Начинаю сомневаться в вашей компетентности. Если внимательно посмотреть то что я написал, то там видно Document Length: 21841 bytes. Отличие на 1 байт - это 21840 или 21842.

Ну так сделайте 25тыс, в чем конкретно проблема?

25 тысяч онлайн по статистике liveinternet это не 25 тысяч запросов в секунду. Как я уже писал, server-status апача сообщал о примерно 100-110 запросах в секунду. Запуск ab с параметром -c 100 даёт (по server-status) порядка 1000 запросов в секунду (сюда же входят запросы реальных пользователей).

myhand:
Чудо, man ab осилишь самостоятельно?

По манере общения сразу видно - профессионал.

Document Path: /

Document Length: 21841 bytes

Concurrency Level: 100

Time taken for tests: 1.838 seconds

Complete requests: 2000

Failed requests: 368

(Connect: 0, Receive: 0, Length: 368, Exceptions: 0)

Write errors: 0

Total transferred: 43995608 bytes

HTML transferred: 43681608 bytes

Requests per second: 1087.86 [#/sec] (mean)

Time per request: 91.923 [ms] (mean)

Time per request: 0.919 [ms] (mean, across all concurrent requests)

Transfer rate: 23369.75 [Kbytes/sec] received

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 0 1.1 0 6

Processing: 5 89 11.3 91 108

Waiting: 3 89 11.4 91 108

Total: 8 90 10.6 91 108

Percentage of the requests served within a certain time (ms)

50% 91

66% 93

75% 94

80% 94

90% 96

95% 98

98% 100

99% 102

100% 108 (longest request)

Посмотрел в логах почему 368 Failed - там размер у них на 1 байт отличается.

P.S. Сервер сейчас под нагрузкой. По статистике LiveInternet >5000 online. Проблемы были вчера когда онлайн было >25000.

zexis:
1. У вас выделенный сервер или VPS?
2. Первая страница долго грузится у каждого нового посетителя или только у первых посетителей?
3. Попробуйте зайти сразу на бэкенд http://site.ru:8080/ Проблема в этом случае остается?
4. Попробуйте зайти сразу на бэкенд по IP http://11.22.33.44:8080/ Проблема в этом случае остается?

1. Да, выделенный. Core 2 Quad 8300, 4GB.

2. За каждого я не могу говорить, но проверялось с 3х компов (2 разных провайдера) и первое открытие сайта (любой страницы) - происходило медленно. По ощущениям - даже не открытие, а именно соединение. Все последующие запросы к сайту отрабатывались мгновенно. Если даже ничего не открывать в течении нескольких минут (я не засекал, но минут 10 проходило, а то и больше) - а потом снова открыть сайт, то он открывался мгновенно. Если подождать дольше - то снова первое соединение происходило медленно.

3,4. Не догадался проверить :( Сейчас-то уже поздно :) как трафик упал меньше 70-80 запросов к апачу в секунду - всё нормализовалось.

На проблемы с ДНС не было похоже. К сожалению не сохранил результаты проверки site-perf, там больше всего времени (по 5 секунд и больше) тратилось на "connect" (красная полоска), а с некоторых источников - вообще с первой попытки не соединяло, только со второй. причем если запускать повторно - то отрабатывало быстро.

myhand:
Доверять решение проблем тем, кто это умеет.

Дак тут на форуме каждый второй пишет что он профессионал и "ацкий сотона". Как определить кто действительно умеет?

Ничего плохого не хочу сказать про systemintegra - но имея явно максимум информации (были на месте) - они не узнали абсолютно ничего существенного.

Аналогично ничего сказать не могу. Но почему такого не может быть, что действительно на первый взгляд (т.е. просмотрев стандартный набор параметров) - действительно ничего криминального не было видно? Ведь, теоретически, в медленном коннекте и провалах на хост-трекере мог быть виноват хостер? Это я уже позже выяснил, что у него проблем не было.

Боюсь, без существенно более полной информации от вас (тот же вывод mod_status на момент проблемы, top, mysql processlist, статистика munin, настройки _всех_ замешанных сервисов от nginx до апача/sql, и т.п. и т.д.) - угадайки от местных телепатов будут еще менее полезны.

mod_status - описывал в первом посте: ничего особенного там не было. висит 10 свободных процессов (maxclients стоит 150), из них при постоянном обновлении - занято было 2-3, а то и вообще один.

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

mysql - фактически не использовался. Сайт самописный - ещё до роста нагрузки я включил своё собственное "кэширование" (страница один раз генерируется и валяется обычным файлом на tmpfs диске. php скрипт проверяет есть ли файл, если есть - считывает его и отдаёт. Запросы к БД отсутствуют).

munin - каюсь, отсутствует. надо будет поставить.

настройки всех сервисов - в целом стандартные для debian 5 + ispmanager lite.

За исключением увеличенных worker_processes до 4, worker_connections 4000 и worker_rlimit_nofile 16000, keep_alive 15 для nginx. Возможно, что-то ещё по мелочи, что не должно оказывать существенного влияния на производительность.

ihc_ru

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

durov77:
Какое отношение имеют прокси сервера расположенные в NL, DE, UK, UA, CH к Ростелекому?

А что до сих пор оттуда не работает? У меня проблем нет. А вот вчера действительно было 2 небольших провала - с 11:24 по 11:36 и с 13:16 по 13:34. Второй я застал и увидел по хост-трекеру (ДЦ был не отовсюду доступен).

durov77:
я в течение 10 минут пытался зайти на firstvds.ru из 6 разных прокси серверов, и из всех только через германию страница полностью загрузилась, часто идут timeout'ы, что значит, досят не только Ваш VDS/VPS, а походу дела всех.

Тож не грузилось. Примерно с 13:30. Я тикет создать не успел - смотрю уже всё нормально заработало. Хост трекер подтверждает.

Скорее дело в Ростелекоме. У меня (собственно как и у всех остальных кто пользуется нашим мухосранским провайдером) аналогично до WebDC.ru по вечерам были потери по 30%. Написал в дата-центр и как мог расписал. Они поменяли маршруты и теперь всё стало ОК (огромное им ещё раз спасибо ;) ). Так что ещё раз пишите мастерхосту, прикладывайте trace, слёзно умоляйте поменять маршуты (если у них вообще есть такая возможность) и надейтесь на лучшее. Ну или пишите своему провайдеру гневные письма. Но провайдеры, как мне кажется - чаще игнорят. Не они ж посетителей теряют.

Если в ближайшее время не поднимутся - полрунета начнёт тормозить :)

Всего: 88