Pull to refresh
5
0
Горобец Дмитрий @dmitra90

Python разработчик

Send message

Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

Reading time3 min
Views206K
Если вы словили OutOfMemoryError, то это вовсе не значит, что ваше приложение создает много объектов, которые не могут почиститься сборщиком мусора и заполняют всю память, выделенную вами с помощью параметра -Xmx. Я, как минимум, могу придумать два других случая, когда вы можете увидеть эту ошибку. Дело в том, что память java процесса не ограничивается областью -Xmx, где ваше приложение программно создает объекты.

image

Читать дальше →
Total votes 76: ↑73 and ↓3+70
Comments39

zsh: tips & tricks

Reading time3 min
Views31K

zsh logoО zsh не раз писали на хабре. Однако, и как те топики, и как мои личные наблюдения, показывают, что большинство людей, знакомых с zsh, используют его как bash с продвинутым автокомплитом. Да и тот (автокомплит) используют не на полную катушку.



Я не хочу описывать как раскрасить консоль во все цвета радуги или сделать промт, показывающий всё на свете. Я хочу показать, что возможности zsh гораздо шире, и его использование в качестве основной оболочки может сделать вашу работу немного краше.

Если вам интересно, и вы не сторонник холиваров, милости прошу
Total votes 64: ↑63 and ↓1+62
Comments34

TOP'ай сюда

Reading time5 min
Views180K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →
Total votes 401: ↑389 and ↓12+377
Comments122

Django tips & tricks

Reading time9 min
Views52K
Приветствую!

В этом посте — небольшие советы по работе с Django, которые могут пригодиться начинающим разработчикам. Как я хотел бы знать это в начале моего пути освоения Django!..
Рассматривать эти советы следует с долей критицизма. Буду рад, если вы найдёте неточности / лучшее решение, или предложите свои «фишки» для django, которых нет в документации.

Итак, начнём издалека, а уж потом перейдём к деталям.

Читать дальше →
Total votes 64: ↑58 and ↓6+52
Comments65

Распространенные ошибки при построении ИТ-инфраструктуры малого бизнеса

Reading time10 min
Views55K

Которые все совершают, и из-за которых потом приходится все переделывать




Подавляющее большинство ИТ-инфраструктур малого бизнеса, с которыми мне пришлось сталкиваться, имеют один существенный недостаток – они не масштабируемы. Нет, нет, проблема не в том, что к имеющимся в настоящий момент 50-ти компьютерам вы не можете подключить 51-й. Проблема в том, что заложенная изначально архитектура создает с ростом бизнеса непропорционально больше проблем и затрат, нежели приносит пользы.

У молодого бизнеса горизонт планирования, как правило, ограничен годом, а то и парой месяцев, и построение ИТ-инфраструктуры является далеко не самой насущной проблемой. Если есть быстрое и дешевое решение, пусть и с побочными эффектами в будущем, бизнес выберет его, чем более дорогое, но правильное с точки зрения дальнейших перспектив. И в этом нет ничего плохого. Плохо, когда данная практика продолжается уже после того, как бизнес окреп и уверенно смотрит в будущее.

В данной статье я освещу несколько моментов, на которые стоит вовремя обратить внимание, и которые могут помочь компаниям избежать потерь, связанных с полным переделыванием ИТ-инфраструктуры по мере роста бизнеса:
Читать дальше →
Total votes 63: ↑51 and ↓12+39
Comments82

10 причин, почему мы перешли на PyCharm

Reading time3 min
Views87K
Совсем недавно мы начали плавный перевод разработки наших проектов с Eclipse + PyDev на PyCharm. Это такая замечательная среда разработки от компании JetBrains, которая специализируется на создании продуктов для программистов, в том числе всяких IDE.

Если вы делаете сайты на Джанго, но еще не оценили в полной мере Пайчарм, мы подготовили небольшой список фич, которые определили наш выбор в его пользу. В основном, это конечно же, функционал, которого нам не хватало в Эклипсе, либо фичи, которые были реализованы неполно или менее удобно. Само собой, это лишь вершина айсберга фич, которые есть в PyCharm, для примера таблица сравнения популярных IDE.

Читать дальше →
Total votes 80: ↑72 and ↓8+64
Comments121

Huge Pages в PostgreSQL

Reading time3 min
Views36K
В PostgreSQL начиная с версии 9.4 появилась поддержка больших страниц. Это очень хорошая новость, с большими страницами я познакомился когда работал с виртуализацией. Коротко о чем же речь. В ОС Linux работа с памятью основывается на обращении к страницам размер которых равен 4kB (на самом деле зависит от платформы, проверить можно через getconf PAGE_SIZE), так вот когда объем памяти переваливает за несколько десятков, а то и сотни гигабайт управлять ею становится сложнее, увеличиваются накладные расходы на адресацию памяти и поддержание страничных таблиц. Для облегчения жизни и были придуманы большие страницы, размер которых может быть 2MB а то и 1GB. За счет использования больших страниц можно получить ощутимый прирост скорости работы и увеличение отзывчивости в приложениях которые активно работают с памятью. Как я уже отметил, впервые я столкнулся с большими страницами при работе с виртуализацией, в частности с KVM. Проведенные в свое время тесты показали что прирост производительности виртуальных машин составил от 7 до 10% (измерялось все это дело синтетическими тестами различных сервисов типа redis/memcache/postgres/etc внутри виртуальных машин). Теперь это появилось в PostgreSQL.

image

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments16

15 малоизвестных команд Linux

Reading time3 min
Views316K
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
Читать дальше →
Total votes 333: ↑274 and ↓59+215
Comments224

PostgreSQL: аналитика для DBA

Reading time4 min
Views36K
Многие пользователи СУБД PostgreSQL знают, что сервер во время своей работы собирает разнообразную статистику, но не все знают, что ее полезно анализировать и как ее извлекать для этого. В этом небольшом тулките собраны несколько полезных запросов, дающих некоторое представление о том, как использовать это «скрытое знание», которое постоянно копится. Эти запросы можно использовать для мониторинга состояния PostgreSQL (ручного или с помощью плагинов для систем мониторинга вроде Nagios, Cacti или Zabbix), для поиска узких мест в работе сервера и многих других подобных задач. Помните, что это лишь верхушка айсберга; в документации можно найти описания нескольких десятков системных представлений, которые также могут быть полезны администратору PostgreSQL.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments20

DNS сервер BIND (теория)

Reading time21 min
Views497K
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

Основные понятия Domain Name System


Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
Читать дальше →
Total votes 110: ↑102 and ↓8+94
Comments24

Интересные приемы программирования на Bash

Reading time6 min
Views130K
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →
Total votes 181: ↑175 and ↓6+169
Comments67

Перенос системы LINUX на другой винчестер с переразбивкой разделов

Reading time5 min
Views72K
Когда-то давным давно в далекой-далекой галактике мне понадобилось перенести мою систему linux с одного винчестера на другой, а пользоваться проприетарщиной ужас, как не хотелось. Погуглив и поискав с помощью других поисковиков я нашел для себя решение, которое линукс-админу может показаться смешным, а меня оно тогда здорово выручило.

В общем — вот оно. Бейте ногами, режьте на части. Встречайте!

Читать дальше →
Total votes 62: ↑53 and ↓9+44
Comments58

Описание более 350 команд Линукс

Reading time2 min
Views42K
На дигге была найдена интересная ссылка (PDF-версия) — описание более, чем 350 команд Линукс (на английском языке). Фактически представляет собой шпаргалку, где команды разбиты на категории. Отмечу, что это не простой список команд, а именно описание с применением. Чтобы не быть голословным приведу несколько примеров.

Читать дальше →
Total votes 74: ↑70 and ↓4+66
Comments89

Простой подход к версионированию баз данных MS SQL Server

Reading time8 min
Views12K

Простой подход к версионированию баз данных MS SQL Server



Предисловие.

Очень часто в прикладных программах возникает необходимость использовать современные базы данных, которые предоставляют разработчику очень большой функционал, основанный не только на уровне данных, но также и созданию собственного API для предоставления доступа к этим данным, посредством хранимых процедур, триггеров, функций. Очевидно, что во всей этой структуре в зависимости от обстоятельств, могут понадобятся какие-либо изменения. И в самом безобидном случае, когда разработчик имеет дело с одним клиентом и одной изменяющейся базой данных (предположим на небольшом предприятии), процесс обновления выглядит просто – мы делаем необходимые изменения в структуре, сравниваем с помощью специальных утилит, например SQL Examiner, старую и новую версию и накатываем сгенерированный sql-скрипт на существующую базу. Как видно в описанном случае, миграция данных происходит каждый раз при обновлении структуры базы. Но к сожалению, описанная ситуация встречается крайне редко, чаще — клиенты и соответствующих для них базы данных для какого-либо продукта у разработчиков исчисляется сотнями, если не больше. Таким образом, для нормального жизненного цикла базы данных необходима система версионирования (не путать с системами версионирования исходников типа Subversion).
Читать дальше →
Total votes 36: ↑21 and ↓15+6
Comments19

Горячие клавиши в шелле

Reading time3 min
Views113K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
Total votes 150: ↑145 and ↓5+140
Comments59

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Еще раз про IP-адреса, маски подсетей и вообще

Reading time7 min
Views1.5M
Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.


Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.
Читать дальше →
Total votes 286: ↑261 and ↓25+236
Comments204

Asterisk – система компьютерной телефонии уровня предприятия

Reading time9 min
Views265K
Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium. Asterisk – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.

Дaлее
Total votes 111: ↑108 and ↓3+105
Comments67

Zabbix 2.2 верхом на nginx + php-fpm и mariadb

Reading time10 min
Views58K


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


Перед нами стоит нетривиальная задача, добиться максимальной производительности известной системы мониторинга zabbix.
Среди многих статей в интернете, есть много описаний типовых установок этой системы. Я подробно опишу, как заставить работать zabbix быстрее.
В качестве базовой системы я буду использовать CentOS 6.4. Так же как и многие я люблю Debian, Gentoo и все остальные дистрибутивы, но эта статья именно для CentOS.

Все что нужно делать я распишу подробно и шаг за шагом, и начнем с базовой настройки нашего CentOS
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments117

Видео лекций четвертого набора Курсов информационных технологий Яндекса

Reading time2 min
Views49K
Информационные технологии сегодня — одна из самых динамичных областей. Востребованный набор знаний и навыков современного специалиста, будь то разработчик, тестировщик, системный администратор, сотрудник службы технической поддержки или информационной безопасности, напоминает сказку про Алису в Зазеркалье, в которой «приходится бежать со всех ног, чтобы только остаться на том же месте, а чтобы попасть в другое место, нужно бежать вдвое быстрее».

К сожалению, эта ситуация приводит к разрыву между программой подготовки специалистов в академической среде и технологиями, с которыми им придется столкнуться в современной интернет-компании. Курсы информационных технологий (КИТ) не претендуют на моментальное заполнение этого разрыва, но предназначены быть местом встречи и диалога молодых и опытных специалистов отрасли.

image
Видеозаписи лекций
Total votes 67: ↑62 and ↓5+57
Comments14

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity