В следующей статье предлагается 2 решения. Объединение семафора (CountDownLatch) и добавление таких функций, как экстернализация данных из внутреннего потока. Другим способом достижения этой цели является использование пула потоков (см. Точки интереса).
Nagios хорош, хорошо, возможно, иметь тестирование системы (Селен), работающий regularily.
Редактирование: Hyperic и Основа также выглядят интересными.
существует, вероятно, система набора тестов, которая может сохранить испытание под давлением всем также для Вас. Я не могу помнить имя первое, что пришло на ум, возможно, кто-то может упомянуть один ниже.
Другие вещи мне нравится делать:
лучший девиз для инфраструктуры, всегда фиксируют, обнаруживают, восстановление. Разбудите его, доберитесь до корня его и исправьте/предотвратите его, если Вы можете.
, Так как система существует на многих уровнях, мы должны протестировать на многих уровнях:
Редактирование: Имейте все ошибки или предупреждения, отправленные непосредственно на Вашего куратора по электронной почте. Тем путем можно отследить случаи в одном месте.
1) Соединение : контролируйте свое интернет-соединение с сервера и с внешней стороны. Зарегистрируйте это где-нибудь
2) Сервер : контролируйте все процессы, что Вы должны, чтобы гарантировать, что они выполняют и не прикрепляют сервер. Используйте сервер HP или что-то эквивалентное с уведомлением об отказе оборудования, что оно может сделать от уровня BIOS. Уведомьте и зарегистрируйтесь, если они.
3) программное обеспечение : Определите ключевое программное обеспечение, которое всегда должно работать. Установите уровни производительности если любой и затем контролируйте их. Nagios должен смочь помочь с этим. На окнах это может быть немного больше. Когда исключение происходит, необходимо смочь запустить скрипт от него для перезапуска процессов автоматически. Моя система мечты позволяет мне взаимодействовать с серверами по SMS, если сервер рассматривает его как исключение, которое я должен или разрешить, или тот, который произойдет автоматически, если я не отменю SMS Однажды..
4) Удаленное питание : Удостоверьтесь, что сброшенные удаленным питанием возможности находятся в Вашей руке. Вы могли бы хотеть запланировать еженедельные перезагрузки, если Вы когда-либо используете окна для чего-нибудь.
5) Бизнес-логика, Тестирующая : Имейте регулярно под управлением сценарии, тестирующие рабочий процесс Вашей системы. Селен может, вероятно, достигнуть части этого, но мне нравится регистрировать результаты также, чтобы сказать, что это работало в это время, и эти файлы имели ошибки. Если возможно где угодно, имейте сам системный монитор через Ваши сценарии.
6) Резервные копии : Сделайте резервное копирование, которое можно установить и забыть. Если бы можно получить вещи в виртуальные машины, это было бы идеально, поскольку можно масштабироваться, переместитесь или разверните любую часть инфраструктуры где угодно. У меня были экземпляры, где я перешел неисправный сервер на свой ноутбук, позвольте ему работать в VMware, в то время как я решил проблему.
Хорошо, если системное тестирование (Selenium) будет выполняться регулярно.
=> 100% ACK. Для этого мы используем http://www.alertfox.com . с нашей учетной записью PRO2 они проводят регрессионный тест каждые 1 час, и это здорово. Вы даже можете сделать это с их бесплатной учетной записью, но ограничены только одним датчиком транзакции.
Перефразировать Richard Levasseur: ах, контролируя инструменты, как Ваши недостатки расстраивают меня. Там, кажется, нет идеального инструмента; Nagios довольно легко создать, но UI довольно старомоден, и у Вас должен быть демон, работающий на каждом контролируемом сервере. Zenoss имеет намного более хороший UI включая графики тенденции использования ресурсов, но это использует SNMP, таким образом, у Вас должно быть некоторое знакомство с этим для получения его работающий правильно, и документация не является лучшей - существуют сотни страниц, но действительно трудно найти просто информацию, необходимо начать.
Мои друзья также рекомендовали Кактусы и Hyperic, но у меня нет личного опыта с теми.
Одна последняя вещь - один из других ответов предложил выполнить инструмент, который подчеркивает Ваш сайт. Я не рекомендовал бы делать это на Вашем живом сайте, если у Вас нет надежного тихого периода, когда никто не поражает его; даже затем Вы могли бы неожиданно снизить его. Намного лучше, чтобы иметь сервер подготовки, куда можно выполнить нагрузочные тесты прежде, чем ввести изменения в эксплуатацию.
Единственный самый важный способ контролировать любой онлайн-сайт состоит в том, чтобы контролировать внешне. Цель должна состоять в том, чтобы контролировать Ваш сайт способом, который наиболее тесно отражает, как Ваши пользователи используют сайт. В 99% случаев, как только Вы знаете, что Ваш сайт снижается внешне, относительно легко найти первопричину. Самая важная вещь состоит в том, чтобы знать как можно скорее, что Ваши клиенты не могут загрузить Ваш сайт.
Это обычно означает использовать внешний контрольный сервис производительности. Они очень от очень нижнего уровня (mon.itor.us, pingdom) к верхнему уровню (Webmetrics, Gomez, Представление ведущих идей). И как всегда, Вы получаете то, за что Вы платите. Вещи искать, находя приемлемый вариант контрольного сервиса включают:
Удачи!
Контроль количества соединений с Вашим веб-сервером и Вашей базой данных является другой хорошей вещью отследить. Возможности состоят в том, если Вы стреляете через крышу, что-то жаждет ресурсов, и сайт собирается понизиться.
Также удостоверяются, что у Вас есть регулярный запрос на URL, который является разумным сквозным тестом системы. Если Ваш поиск поддержек сайта, то имейте nagios, выполняют поиск - который должен удостовериться, что поисковый индекс здоров, веб-сервер и сервер базы данных.
кроме того, удостоверьтесь, что Ваши приложения посылают Вам электронное письмо каждый раз, когда Ваши пользователи видят ошибку, или существует необработанное исключение. Тем путем Вы знаете, как приложение перестало работать в поле.
Вы думали о контроле функциональности также? Сценарий (или в языке сценариев как Perl или в Pyton или использующий некоторый инструмент как WebTest), который говорит с Вашим приложением и делает некоторые важные шаги как вход в систему, создание покупки, и т.д. очень хорош иметь.
Если бы я должен был выбрать один тип тестирования, то это должно было бы протестировать функциональность конечного пользователя системы. Важной вещью рассмотреть является пользователь. При тестировании вещей как доступность базы данных время работы сервера, и т.д., является всеми важными, тестирующими рабочими процессами через систему через удаленные покрытия системы тестирования UI все эти основания. Если Вы знаете, что критические части Вашей системы доступны конечному пользователю, то Вы знаете, что Ваша система является пролилом хорошо.
Этот конечный пользователь, тестирующий, не должен устранять контроль системы в Вашем центре обработки данных, но я хочу повторить того конечного пользователя, тестирующего, самый важный тип тестирования, можно сделать для веб-приложения.
А-а-а, контроль. Как я люблю тебя и Ваши колебания в 3:00.
По существу, Вам нужен способ осмотреть внутреннее состояние Вашего приложения, оба в определенный момент, а также по промежуткам времени (последний очень важен для обнаружения проблем, прежде чем они произойдут). Другой способ думать о нем как прославленное поблочное тестирование.
у Нас есть наша собственная (очень хорошая) система контроля, таким образом, я не могу прокомментировать Nagios или другие приложения. Наш вариант использования подобен Вашему, хотя (cgi приложение на апаче).
Thats весь довольно высокий уровень. Важная вещь состоит в том, что у Вас есть история состояния приложения со временем. От этого можно затем создать правила (возможно, просто необработанные запросы SQL, которые Вы помещаете в конфигурацию где-нибудь), которые говорят, "Если запросы, в секунду удвоенные, отправьте предупреждение SlashDotted", или, "если 50% ответов 404, отправьте предупреждение". Это также ослепляет блеском управление, потому что можно определить количество любого комментария о том, замедляются ли, вниз, быстро, или.
Вещи контролировать включают (другие, вероятно, упомянули их также): состояние http, доступный порт, http загрузка, загрузка базы данных, открывает соединение, задержку запроса, доступность сервера (ssh, ping), запросы в секунду, количество рабочих процессов, ошибочного процента, коэффициента ошибок.
Простые сквозные тесты также очень удобны, хотя они могут быть хрупкими. Ее лучшее для хранения их простыми, но у Вас должен быть тот, который пытается коснуться базовых частей приложения (кэширование, база данных, аутентификация).
Внутренний вход великолепен, но когда Ваше целое приложение понижается, или Ваш box/enviro разрушает Вас, нуждаются во внешней проверке также. http://www.pingdom.com/ был очень надежен для меня.
Мой только другой совет, я не был бы потраченный слишком много время на этом. моим лучшим примером является Твиттер, сколько сделала энергия они помещают в системную способность полуумереть вместо того, чтобы просто инвестировать то время и энергию в бросок большего количества аппаратных средств / масштабирование горизонтально его.
Возможности - то, что заканчивает тем, что удалило Вас, Ваш вход и системы здравоохранения будут отсутствовать так или иначе.
Кроме того, что контролировать, которому уже ответили, необходимо удостовериться - безотносительно системы, которую Вы используете - что Вы получаете только один уведомление об ошибке, которая происходит многократно по каждому запросу. Или Ваш ящик входящих сообщений исчерпает память :) Плюс, это - простое раздражение...
Делят резервные сдвиги между поддержкой/командой разработчиков, таким образом, один человек не должен быть по требованию каждый вечер. Это сотрет людей. Контроль хорошая вещь , но все должны получить шанс иметь жизнь время от времени. Ваш сотовый телефон, шумящий в 2:00 в течение нескольких ночей, будет становиться очень старым довольно скоро, доверять мне. И не каждый разработчик привык к поддержке 24/7, таким образом, необходимо найти баланс между использованием контроля и злоупотреблением контролем.
В основном, имейте отличные уровни эскалации, и если небо не падает, определите" спокойствие теперь " окно ночью, куда меньшие уровни эскалации не выходят.
Один из наших клиентов использует Techout (www.techout.com) и очень доволен сервисом.
Существует бесплатно для предупреждений, независимо от того, что вид или сколько, и они предлагают электронной почте, речевой почте и предупреждениям SMS - и если что-то главное происходит, телефонный вызов от живого человека для выручения Вас.
Это - все на основе сервиса - Вы не устанавливаете программное обеспечение, и у Вас есть консультант, который работает с Вами для определения лучшего подхода для бизнеса. Это - одна из самых удобных услуг по контролю веб-приложения, потому что они заботятся обо всем.
Для мониторинга присутствия в Интернете я бы предложил сервис, над которым я работаю: Sucuri NBIM (сетевой мониторинг целостности).
Он выполняет проверки доступности и целостности, ища изменения о вашем присутствии в Интернете (сайты, DNS, WHOIS, заголовки и т. д.) и потере связи. Это бесплатно, и вы можете попробовать его здесь .
Я бы просто добавил, что вы можете предсказать вероятность ошибки в некоторой степени на основе истории прошлых ошибок и их исправления. При внутреннем тестировании меньшего масштаба, если вы должны были графически изобразить частоту и серьезность проблем, которые были исправлены к этому моменту, вы получите обзор предсказуемых новых проблем. Если в течение некоторого времени все работает без ошибок, то двумя источниками проблем будут недавние изменения или проблемы с масштабируемостью.
Из вышесказанного похоже, что масштабируемость - это ваше единственное беспокойство, но я просто упомянул тест на частоту прошлых ошибок, потому что команды, в которых я работал, неизменно думают, что они исправили последнюю ошибку, и их больше нет. Пока не будет.
Я использовал Nagios + CruiseControl + Selenium для запуска высокоуровневых тестов критически важных веб-приложений. Меня очень сильно обожгла простая ошибка jquery, из-за которой пользователи не могли пройти через онлайн-форму регистрации.
http://www.agileatwork.com/the-holy-trinity-of-web-2-0-application- мониторинг /