Кто, я? Причуды Java выставили бога ИТ как ложного кумира

    0
    33


    Кто, я? Иногда ИТ-специалисты могут казаться пользователям богами. Иногда простое их присутствие может привести к тому, что проблемы чудесным образом исчезнут. В сегодняшней сказке на основе Java читатель вспоминает тот слишком короткий момент, когда он стал божеством баз данных. Добро пожаловать в “Кто, я?”

    Наша история исходит от «Боба» (не его имя) и происходит на фоне последствий пузыря доткомов и угасающих углей корпоративного долларового костра 2000 года.

    Боб, уставший от разрушающих память “бомб”, оставленных в коде C ++ младшими разработчиками, искал более продуктивную среду. «Java, – сказал он, – кажется предпочтительным языком».

    «К этому времени у нас за плечами было несколько небольших и средних проектов, и мы чувствовали, что знаем, что делаем».

    Тем не менее, все еще оставалась странная проблема. Приложение Java было разработано для обработки больших файлов CSV, но обычно было быстрее просто убить объект после обработки, чем ждать, пока он запустит следующий пакет. Странно, но это было не критично. Никто не удосужился изучить это дальше.

    Дела шли хорошо. Настолько хорошо, что команде был передан свой первый Java-проект: корпоративное веб-приложение, работающее на Tomcat, с SQL Server, обрабатывающим данные. Более сотни пользователей взломали систему, используя ее для записи звонков о продажах и их результатов.

    Команда администрирования сократилась с 40 до 20 человек, а команда продаж увеличилась, такова была эффективность приложения.

    «Мы ни разу не пролили слезы, когда другому администратору вручили бланк», – похвастался Боб. «Нет, это были демонстрации того, насколько мы могущественны. Мы были богами эффективности».

    И так продолжалось. SQL-запросы были тщательно составлены и настроены с точностью до дюйма их электронной жизни. Другие менеджеры запрыгнули на поезд эффективности, и приложение Боба распространило свои щупальца по всей организации. Те, кого не уволили, любили своих Java-повелителей. «Мы были хозяевами своего дела», – радостно вспоминал Боб.

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

    Опытные разработчики Java, несомненно, нажимают кнопку комментариев прямо сейчас. Но для команды Боба это было загадкой.

    Были проверены журналы и найдены тупиковые ситуации. Была изучена документация Tomcat, SQL Server и Java. Ничего не выскочило, кроме… чего-то, что называется Java Garbage Collection (GC).

    Банда продолжила расследование, все больше и больше убеждаясь, что проблема с паузой каким-то образом связана с сборщиком мусора. Однако они также начали чувствовать себя менее богоподобными и более не имеющими своей глубины. В местный офис Sun Microsystems позвонили за помощью.

    «Что ж, – заметил Боб, – оказывается, что местный офис Sun на самом деле не поддерживает Java, и на самом деле не было никакого способа получить какую-либо поддержку и нулевую заинтересованность в этом.

    «Возможно, именно поэтому Солнца больше нет», – сухо добавил он.

    Но как решить проблему? Объем памяти! Конечно! Больше памяти поможет разобраться!

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

    «В этот момент, – сказал Боб, – мы больше не были корпоративными героями. Вместо этого мы были ублюдками в подвале, ответственными за все беды организации».

    Дела были плохи, и была реальная вероятность, что банда уставится в дуло пистолета, если проблема не будет решена. Боба отвезли в корпоративный офис, в котором находилась система, и сказали, что время дома не придет, пока паузы не станут историей.

    Он сидел рядом с сервером, ожидая ужасной паузы и забавляясь, возясь с SQL-запросами и читая статьи о Java GC, когда Это случилось снова. Над перегородками, как сурикаты, выскакивали головы, зазвонили телефоны, доносились гневные звуки из кабинетов руководства.

    Именно в этот момент произошло событие, которое Боб назвал «Чудо серверной комнаты».

    «Хорошо, да, – признал он, – меня не было в серверной, но это звучит гораздо более культово, чем« Чудо открытого офисного стола с сидящим на нем сервером »».

    В конце концов Боб уперся руками в официанта.

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

    Другими словами, он почувствовал вибрацию диска внутри коробки и понял, что файл подкачки забивается.

    «Если вы не знаете, как работает Java GC, – пояснил Бокс, – при первом выделении памяти она помещается в кучу под названием« Eden ». Большинство выделений недолговечны и собираются, пока все еще находятся в Eden. период времени, который не был собран, перемещается в кучу с хранением. Большинство запусков Java GC игнорируют кучу с хранением. “

    В наши дни это немного больше, но вкратце, Tenured heap, о котором говорит Боб, не часто вызывает много действий, и поэтому был основным кандидатом для выгрузки на диск. Вплоть до тех пор, пока Java не стала не хватать памяти и не выгружала постоянную кучу обратно в память для сборки мусора.

    При чтении файла подкачки возникла пауза. Добавление дополнительной памяти только увеличило размер файла, что усугубило проблему.

    «О, и это маленькое приложение Java, которое обрабатывает файлы CSV? Если бы мы только остановились, чтобы выяснить, в чем проблема, мы бы уже знали, что файлы GC и файлы подкачки не смешиваются».

    В то время как современные твердотельные накопители означают, что возложение рук на сервер может не вызвать посещения ангела-вдохновителя (через вибрирующие диски) в наши дни, «это были дни настоящих богов ИТ», – с тоской сказал Боб.

    «И на мгновение … я был одним из них».

    Вы когда-нибудь взлетали в ИТ-мире только для того, чтобы подрезать себе крылья, когда поняли, что не так умны, как думали? Или ножницы в руках вы держали? Признайтесь всем, отправив электронное письмо Who, Me? ®

    Предыдущая статьяИгровые графические процессоры Intel Alchemist определенно выглядят так, как будто они предназначены для бизнеса
    Следующая статьяКак найти все коллекционные предметы в Гаворане (ракетные танки, энергетические танки и т. Д.
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.