Search  
Always will be ready notify the world about expectations as easy as possible: job change page
News
29 июня 2015

Web Garden - повышение производительности веб-сервера

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

  1. Поставить ещё более мощный сервер.
  2. Распараллелить web приложение.
  3. Распараллелить чтоб аж Google «завидовал» - построить Web Farm.

2-й способ является наиболее оптимальным, потому что просто более мощный сервер может решить проблему лишь на некоторое время, а построить Web Farm - уже слишком дорого покупать несколько серверов. К тому же 2-й способ является очень простым и не требует дополнительных ресурсов и растрат.

Web Garden (веб-сад) это web приложение в котором количество рабочих процессов больше 1. Этот механизм появился в IIS 6, в котором также появилась возможность создавать N пулов под N сайтов (max 2000 pools). Каждый пул в IIS по умолчанию работает в режиме isolation mode, это значит, что каждый пул будет иметь свою память, свой контекст и свои границы приложения. Также это значит, что если сайт «упадёт», то упадёт только этот пул, с сайтами которые в нём существуют, но не весь сервер, как было раньше в IIS 5). Поскольку пул может работать изолированно, мы можем дать ему возможность создавать ещё процессы для того, чтобы приложение могло выдерживать больше подключений. Тем самым мы его распараллеливаем, снижая блокировки на ресурсы, используемые приложением. Все запросы, которые приходят в конкретный пул, разделяются между процессами web сада. Таким образом, используя Web Garden на Blackball.LV удалось решить проблему постоянного перезапуска IIS 7.0 Application Pool из-за чрезмерно высокой нагрузки.

Примущества Web Garden:

  • Легко настраивается;
  • Надежная и устойчивая обработка запросов. Если один из процессов в пуле будет работать не стабильно или «упадёт» по неизвестным причинам, то его сразу подменит другой процесс из пула;
  • Меньше блокировок на ресурсы. Когда web garden доходит до состоянии «сейчас лопну», то каждое новое подключение к серверу распределяется между процессами по карусельному принципу.
22 июня 2015

Глубокое исследование вопроса как в ASP.NET разумнее всего обращаться с объектами Session, Response и Request дало свои положительные результаты. Неправильное и нерациональное использование этих объектов может быть довольно дорогостоящим по затрачиваемым ресурсам, особенно если проект является достаточно высоконагруженным. Полный рефакторинг Blackball.LV решил проблему хронического зависания Application Pool и общей тормознутости сайта.

Очень интересным остаётся вопрос как реализовать общий доступ к объекту Session из разных приложений ASP.NET, даже находящихся на одной физической машине, и судя по всему придётся написать какой-то server-side handler.

27 мая 2015

Для Blackball.LV готов аудиоплеер собственной выпечки. Play, Pause, Stop, Playlist, Shuffle - всё как в лучших домах. Просмотрев кучу готовых проигрывателей, в очередной раз стало понятно одно: если хочешь получить хороший результат - сделай это сам.

Послушать Halford - Resurrection (2000)

25 мая 2015

SignalR 2 - I love you!

Захотелось вывести свои проекты на новый уровень, и в рамках этого возник интерес научиться использовать SignalR 2. Начать решил с создания чата для Blackball.LV. Не знаю кому он может там понадобиться и кто им будет пользоваться, но чат уже почти готов, осталось довести его до ума. Можно будет создавать каналы, комнаты, разграничивать уровни доступа (публичный, приватный, публичный только для участников сайта и т. п.), обмениваться файлами, создавать временные комнаты (создали, поговорили, все вышли - комната улетела в космос). Пока планируется что полнофункциональный чат откроется 01.07.2015.

NuGet Gallery | Microsoft ASP.NET SignalR 2.2.0

21 мая 2015

ASP.NET AJAX Control Toolkit

Наконец-то нашлось время избавить свои проекты от монструозного ASP.NET AJAX Control Toolkit. Для административного сайта эта библиотека может быть и полезна, но для публичных проектов, особенно тех которые бомбят своими набегами поисковые роботы - это просто какой-то тихий ужас.

23 апреля 2015

На дворе уже какой год идёт 21 век, а на многих сайтах URL всё ещё представлен в архаичном виде типа http://[domain]/shop/cat.aspx?id=54356&product=related&view=specs. На Blackball.lv уже начата работа по приведению URL в современный вид, кстати более дружественный к поисковым системам, потом наведём порядок здесь.

23 марта 2015

101 LINQ Samples

Learn how to use LINQ in your applications with these code samples, covering the entire range of LINQ functionality and demonstrating LINQ with SQL, DataSets, and XML. https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

12 марта 2015

На собеседованиях в разрезе поиска работы заметил интересный момент. Могут задать вопрос, на который ожидается развёрнутый грамотный ответ. Это нормально, ведь о тебе нужно узнать на что ты способен, что умеешь, что знаешь и т.д.. Не знаю как в других сферах, но в IT возможных вопросов много, их тысячи. Каких вопросов ожидать - неизвестно, к чему готовиться - неизвестно, надо быть готовым ко всему. Коварность собеседования заключается в том что вопрос может быть совершенно из разных областей (особенно если обозначил их в CV), и понимая что у тебя есть всего минут 15-30 чтобы создать свой профессиональный портрет, от волнения можно слегка растеряться, накосячить... Самое обидное что если во время ответа где-то ошибёшься, чуть напутаешь, а интервьюер уже составит впечатление, а потом после интервью минут через 20 уже в свободном полёте осознаёшь что ведь ответить надо же было так, чего ты там так разволновался?

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

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

10 февраля 2015

Поставил новый сервер, казалось бы всё отлично. Так и было, по сравнению со старым сервером сайты заработали молниеносно, пока не выяснилось что объект Session в .NET - оказывается довольно неприятная штука, и в высоконагруженных проектах его использование нужно всячески избегать - сайт просто зависает. Для небольших проектов это не критично, а вот для добротного портала придётся писать свой механизм сессии.

13 ноября 2014

Произошло невероятное - Microsoft открыла исходный код .NET Server Core! Также выпущена предварительная версия Visual Studio 2015, специальная бесплатная редакция Visual Studio Community 2013, Visual Studio 2013 Update 4... На конференции Microsoft Connect() анонсировано столько нового в развитии инструментов разработки, что разработчикам уж точно не будет скучно.


© 1999–2024 WebDynamics
1980–... Sergey Drozdov
Area of interests: .NET Framework | .NET Core | C# | ASP.NET | Windows Forms | WPF | HTML5 | CSS3 | jQuery | AJAX | Angular | React | MS SQL Server | Transact-SQL | ADO.NET | Entity Framework | IIS | OOP | OOA | OOD | WCF | WPF | MSMQ | MVC | MVP | MVVM | Design Patterns | Enterprise Architecture | Scrum | Kanban