Pull to refresh
25
0
Serhiy Topchiy @helldesigner

User

Send message

SELinux – описание и особенности работы с системой. Часть 1

Reading time11 min
Views265K


О SELinux на Хабре уже писали, однако, не так много опубликовано подробных мануалов по данной системе. Сегодня мы публикуем именно такой, подробный мануал по SELinux, начиная от информации по системе, и заканчивая гибкой настройкой политик.
Для того, чтобы не превращать пост в «простыню», сложную для понимания, мы решили разделить мануал на две части. Первая будет рассказывать о самой системе, и некоторых ее особенностях. Вторая – о настройке политик. Сейчас публикуем первую часть, чуть позже будет опубликована и вторая часть.

Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments13

Десятка лучших консольных команд

Reading time2 min
Views198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Total votes 382: ↑346 and ↓36+310
Comments215

Масштабируя Zabbix

Reading time11 min
Views152K
Zabbix logoТех, кто использует или собирается использовать Zabbix в промышленных масштабах, всегда волновал вопрос: сколько реально данных сможет Заббикс «переварить» перед тем как окончательно поперхнется и подавится? Часть моей недавней работы как раз касалось этого вопроса. Дело в том, что у меня есть огромная сеть, насчитывающая более 32000 узлов, и которая потенциально может полностью мониториться Заббиксом в будущем. На форуме давно идут обсуждения о том, как оптимизировать Zabbix для работы в больших масштабах, но, к сожалению, мне так и не удалось найти законченное решение.

В этой статье я хочу показать, как я настраивал свою систему, способную обрабатывать реально много данных.
Подробности
Total votes 45: ↑45 and ↓0+45
Comments39

AWS Insight: Virtual Private Cloud

Reading time4 min
Views22K
Привет, хабрасообщество! image

Сегодня я, наконец, набрался смелости и имею время рассказать вам о замечательном сервисе, который предоставляет Amazon Web Services: Virtual Private Cloud — VPC.

VPC — это сервис, позволяющий создавать приватные изолированные сети в публичном облаке Amazon. Что же предоставляет VPC?
  • Подсети серых адресов
  • Полный контроль над адресами
  • Динамическое и удобное управление сетевыми устройствами и маршрутизацией
  • Поддерживает EC2, RDS, SQS, ElastiCache и другие сервисы
  • Многое другое..

У VPC есть много внутренних понятий и терминов, давайте я буду их описывать по мере настройки. И сегодня я вместе с вами настрою кроссзонную сеть для VPC для большей отказоустойчивости.
Под катом инструкции, объяснения и картинки
Total votes 13: ↑12 and ↓1+11
Comments14

Опции JVM. Как это работает

Reading time7 min
Views93K
С каждым днем слово java все больше и больше воспринимается уже не как язык, а как платформа благодаря небезызвестному invokeDynamic. Именно поэтому сегодня я бы хотел поговорить про виртуальную java машину, а именно — об так называемых Performance опциях в Oracle HotSpot JVM версии 1.6 и выше (server). Потому что сегодня почти не встретить людей, которые знают что-то больше чем -Xmx, -Xms и -Xss. В свое время, когда я начал углубляться в тему, то обнаружил огромное количество интересной информации, которой и хочу поделится. Отправной точкой, понятное дело, послужила официальная документация от Oracle. А дальше — гугл, эксперименты и общение:

-XX:+DoEscapeAnalysis


Начну, пожалуй, с самой интересной опции — DoEscapeAnalysis. Как многие из Вас знают, примитивы и ссылки на объекты создаются не в куче, а выделяются на стеке потока (256КБ по умолчанию для Hotspot). Вполне очевидно, что язык java не позволяет создавать объекты на стеке на прямую. Но это вполне себе может проделывать Ваша JVM 1.6 начиная с 14 апдейта.

Про то, как работает сам алгоритм можно прочитать тут (PDF). Если коротко, то:

  • Если область видимости объекта не выходит за область метода, в котором он создается, то такой объект может быть создан на фрейме стека вместо кучи (на самом деле не сам объект, а его поля, на совокупность которых заменяется объект);
  • Если объект не покидает область видимости потока, то к такому объекту другие потоки не имеют доступа и следовательно все операции синхронизации над объектом могут быть удалены.


Для реализации данного алгоритма строится и используется так называемый — граф связей (connection graph), по которому на этапе анализа (алгоритмов анализа — несколько) осуществляется проход для нахождения пересечений с другими потоками и методами.
Таким образом после прохода графа связей для любого объекта возможно одно из следующих следующих состояний:

  • GlobalEscape — объект доступен из других потоков и из других методов, например статическое поле.
  • ArgEscape — объект был передан как аргумент или на него есть ссылка из объекта аргумента, но сам он не выходит из области видимости потока в котором был создан.
  • NoEscape — объект не покидает область видимости метода и его создание может быть вынесено на стек.


После этапа анализа, уже сама JVM проводит возможную оптимизацию: в случае если объект NoEscape, то он может быть создан на стеке; если объект NoEscape или ArgEscape, то операции синхронизации над ним могут быть удалены.

Следует уточнить, что на стеке создается не сам объект а его поля. Так как JVM заменяет цельный объект на совокупность его полей (спасибо Walrus за уточнение).

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

    for (int i = 0; i < 1000*1000*1000; i++) {
        Foo foo = new Foo();
    }

скорость выполнения может увеличится в 8-15 раз. Хотя, на казалось бы, очевидных случаях из практики о которых недавно писалось (тут и тут) EscapeAnalys не работает. Подозреваю, что это связано с размером стека.

Кстати, EscapeAnalysis как раз частично ответственен за известный спор про StringBuilder и StringBuffer. То есть, если Вы вдруг в методе использовали StringBuffer вместо StringBuilder, то EscapeAnalysis (в случае срабатывания) устранит блокировки для StringBuffer'а, после чего StringBuffer вполне превращается в StringBuilder.
Читать дальше →
Total votes 72: ↑70 and ↓2+68
Comments18

Как стать кукловодом или Puppet для начинающих

Reading time7 min
Views108K
Здравствуйте.
image
Этот топик открывает цикл статей по использованию системы управления конфигурацией Puppet.

Что такое система управления конфигурацией?


Предположим, что у вас есть парк серверов, выполняющих различные задачи. Пока серверов мало и вы не растёте, вы легко настраиваете каждый сервер вручную. Устанавливаете ОС (может быть, автоматизированно), добавляете пользователей, устанавливаете софт, вводя команды в консоль, настраиваете сервисы, правите конфиги ваших любимых текстовых редакторов (nanorc, vimrc), выставляете на них одинаковые настройки DNS-сервера, устанавливаете агент системы мониторинга, настраиваете syslog для централизованного сбора логов… Словом, работы довольно много и она не особенно интересна.
Как спастись от рутины?
Total votes 62: ↑55 and ↓7+48
Comments66

Cloud Connect Chicago 2012 — День Первый

Reading time2 min
Views2.1K
Привет хабр! image

Занесла меня судьба в город ветров Чикаго на довольно привлекательное мероприятие — Cloud Connect Chicago 2012. Чем же может быть привлекательной конференция на другой стороне земли? Тем, что можно увидеться, послушать и познакомиться с людьми, опыт которых внушает доверие. Перенять этот опыт — это то, зачем я сюда прилетел.

Итак, о чём же конференция? Как понятно из названия, речь идёт об облаках и о всём, что с ними связано, а именно:
  • Облака и безопасность (самая жаркая тема)
  • Приватные, публичные и гибридные облака
  • Инфраструктура
  • Готовность приложений
  • Дизайн и архитектура приложений
  • Мобильные облака
  • … и многое другое

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments2

Cloud Connect Chicago 2012 — День Второй

Reading time3 min
Views1.8K
Привет Хабр! image

В предыдущей статье я рассказал, что началась конференция Cloud Connect в Чикаго. Судя по отзывам — сама коферениця довольно интересна для публики, потому я постараюсь выложить то, что узнал и понял. Итак…

День второй

С восьми утра начался завтрак и то, что мы называем нетворкингом. Люди встерчаются, люди общаюстся, рассказывают друг другу свои ожидания, планы — это очень интересно. Т.к. на второй день назначены уже реальные доклады, а не только семинары, людей в холле стало гораздо больше, что не могло не порадовать. В отчёте будут фотки, извините за их качество...
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments2

Information

Rating
Does not participate
Location
Mountain View, California, США
Date of birth
Registered
Activity