Как стать автором
Обновить
25
-1

Программист

Отправить сообщение

Zabbix, PostgreSQL и pg_stat_statements

Уровень сложностиСложный
Время на прочтение43 мин
Количество просмотров9.7K

Я хочу поделиться своим опытом использования Zabbix для анализа проблем с производительностью PostgreSQL, используя расширение pg_stat_statements.

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии16

Настройка производительности диска и памяти в Linux

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров13K

В отличие от таких операционных систем как HPUX (dbc_min_pct, dbc_max_pct) или AIX (minperm%, maxperm%), в Linux нет возможности настраивать размер кэша страниц, читаемых с диска (страничный кэш, page cache). Под страничный кэш Linux использует всю доступную память. Размер страничного кэша можно увидеть в /proc/meminfo в параметре "Cached". В /proc/meminfo есть также значение "Buffers", которое часто путают с размером страничного кэша. "Buffers" — это память, содержащая сырые дисковые данные (raw disk data) и выступающая в роли промежуточного буфера между процессами, ядром и диском.

В этой статье рассмотрим, как Linux работает с памятью, и, в частности, со страничным кэшем, а также исследуем, как доступный объем памяти влияет на производительность буферизованного ввода-вывода (buffered IO).

Читать далее
Всего голосов 28: ↑27 и ↓1+26
Комментарии4

Что делает ChatGPT… и почему это работает?

Уровень сложностиСредний
Время на прочтение75 мин
Количество просмотров145K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

Читать далее
Всего голосов 248: ↑248 и ↓0+248
Комментарии121

Как использовать Midjourney с умом

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров19K

Мне довелось познакомиться с нейросетями совсем недавно. На работе дали задание — найти подходящую бесплатную картинку для сайта. В первую очередь, я вспомнил про Crayion (Бывший DALL-E), но качество результата на нем совсем меня не удивило. После этого я вспомнил о существовании Midjourney и о том, что разработчики предоставляют пробный доступ в Discord. Я подключился к серверу и сделал свою первую картинку. Результат был сногсшибательным.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии16

Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться

Время на прочтение14 мин
Количество просмотров24K

В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузки СУБД может вести себя не так, как мы ожидаем. Это и есть аномалии, на которых мы сосредоточимся в данной статье (для тех, кто предпочитает видео, эта информация доступна в виде записи доклада на HighLoad++).

Наша компания помогает обслуживать мультитерабайтные базы данных в крупных проектах, поэтому мой рассказ об аномалиях основан на реальном опыте промышленной эксплуатации СУБД в Postgres Professional — порой мы сталкиваемся с тем, что СУБД ведёт себя не так, как мы ожидали.

Также в рамках статьи мы рассмотрим следующее:

Читать далее
Всего голосов 67: ↑67 и ↓0+67
Комментарии14

Как сделать таск-трекер под себя на low-code конструкторе

Время на прочтение22 мин
Количество просмотров11K

Типовые таск-менеджеры отлично подходят для конкретных ситуаций, но чаще всего их не получится настроить под свои нужды. Джира медленная, дорогая и часто слишком сложная, trello слишком простой, а персональные таск менеджеры не дают нужного взаимодействия с командой.

Читать далее
Всего голосов 34: ↑33 и ↓1+32
Комментарии24

Профилирование и трейсинг с perf

Время на прочтение1 мин
Количество просмотров25K
Учимся дебажить с perf — целых 18 страниц про основные подкоманды, фичи и устройство инструмента. Джулия рекомендует; “Я даже использовала его несколько раз для профилирования Ruby программ!”

Уровень сложности — для суперпродвинутого администратора.

Когда нужно отыскать причину сбоя, не имея доступа к исходным кодам. Все логи уже просмотрены, все debug и verbose-ключи включены, а причина проблем так и не обнаружена — используйте perf. Потребуется навык кодинга на языках типа Си.


Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии13

Битвы на территории ZFS

Время на прочтение6 мин
Количество просмотров20K
Один из крупных клиентов нашей компании попал в грустную ситуацию: базы данных подросли, потребности тоже, купили мощные NUMA-сервера, установили любимую файловую систему ZFS (ZFS — для краткости: формально это OpenZFS), а производительность PostgreSQL стала хуже, чем до покупки.

Базы нешуточные: две базы, в каждой по 180ТБ. В них сливаются данные из многих других, непостгресовых баз. А этими, огромными, напрямую пользуются аналитики компании, и эта деятельность критически важная. ZFS сжала эти базы в два раза — теперь каждая занимает на диске по 90 ТБ, железу бы вздохнуть с облегчением. А стало только хуже. Пригласили наших сотрудников из поддержи, они провели аудит. Случай нам показался интересным, и мы решили о нём рассказать. Заодно напомнив о средствах диагностики.
Читать дальше →
Всего голосов 89: ↑87 и ↓2+85
Комментарии103

Исследование быстродействия СУБД MS SQL Server Developer 2016 и PostgreSQL 10.5 для 1С

Время на прочтение25 мин
Количество просмотров46K

Цели и требования к тестированию «1С Бухгалтерии»


Основной целью проводимого тестирования является сравнение поведения системы 1С на двух разных СУБД при прочих одинаковых условиях. Т.е. конфигурация баз данных 1С и первоначальная заполненность данными должны быть одинаковыми при проведении каждого тестирования.

Основными параметрами, которые должны быть получены при тестировании:

  • Время выполнения каждого теста (снимается отделом Разработки 1С)
  • Нагрузка на СУБД и серверное окружение во время выполнения теста снимается- администраторами СУБД, а также по серверному окружению системными администраторами

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

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

Описание настроек и характеристик тестируемых сред


Мы в компании Fortis решили перепроверить результаты, в том числе с помощью известного теста Гилева.

Также нас подстегнуло к тестированию в том числе и некоторые публикации по результатам изменения производительности при переходе от MS SQL Server к PostgreSQL. Такие как: 1С Батл: PostgreSQL 9,10 vs MS SQL 2016.
Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии113

Невыносимая легкость контрибьюта в Open Source

Время на прочтение5 мин
Количество просмотров21K

Мы дожили до момента, когда для отправки своего коммита в популярный проект, не нужно подписывать бумажный отказ от прав на код, как это бывало в случае с GNU-проектами. Заходи на Github, ищи. Выбирай, что нравится, клонируй, создавай пул реквест, чувствуй себя гордым контрибьютором. Но если хочется не только чувствовать, но и быть, то все несколько сложнее...

Читать далее
Всего голосов 133: ↑117 и ↓16+101
Комментарии93

Загадочная волна-убийца

Время на прочтение5 мин
Количество просмотров45K
image

В 19 веке начали появляться свидетельства очевидцев о таинственных огромных волнах в океане, появляющихся из ниоткуда. И это не совпадение – в 19 веке появились первые железные морские судна, которые, при счастливом стечении обстоятельств, могли пережить встречу с таинственной волной. До этого встреча с ней была фатальной – моряки уже никогда не возвращались на берег…

image
Читать дальше →
Всего голосов 89: ↑83 и ↓6+77
Комментарии36

А что у них? Обзор американской бухгалтерии QBD

Время на прочтение7 мин
Количество просмотров14K

В статье вы найдете обзор системы, а также немного аналитической информации.

Читать далее
Всего голосов 18: ↑17 и ↓1+16
Комментарии12

Как я угнал национальный домен Демократической Республики Конго

Время на прочтение5 мин
Количество просмотров18K
Примечание: проблема решена. Сейчас национальный домен .cd уже не делегирует полномочия скомпрометированному нейм-серверу

TL;DR Представьте, что может произойти, если национальный домен верхнего уровня (ccTLD) суверенного государства попадет в чужие руки. Однако я (@Almroot) купил доменное имя, которое указано для делегирования NS в национальном домене Демократической Республики Конго (.cd), и временно принял более 50% всего DNS-трафика для этой TLD. На моём месте мог оказаться злоумышленник, который использовал бы эту возможность для MITM или других злоупотреблений.


Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии8

Почему линукс использует swap-файл

Время на прочтение8 мин
Количество просмотров98K

Жажда тюнинга может завести в неведомые дебри. И, пожалуй, едва ли не самая частая неправильная оптимизация - отключение swap-файла. Если прикинуть частоту, с которой эта ошибка встречается, то, наверное, она входит в негласный top-10 (а может и top-5) самых распространенных, самых бесполезных и самых вредных оптимизаций - потому что swap-файл это одна из самых интересных, сложно понимаемых и недооцененных  сущностей в подсистеме управления виртуальной памятью.

Читать далее
Всего голосов 110: ↑100 и ↓10+90
Комментарии409

Зачем нам понадобился еще один язык программирования

Время на прочтение5 мин
Количество просмотров9K

Более чем год назад мы публично представили нашу открытую и бесплатную платформу lsFusion. Многие тогда задавали нам вопрос : зачем мы создавали свой собственный язык, ведь уже существует огромное множество других популярных языков.

Да, мы прекрасно понимали, что собственный язык значительно увеличивает порог входа в технологию. Нет, нам нужен был специализированный синтаксис не потому, что все остальные обладают фатальным недостатком. Мы - не сторонники изобретения велосипедов, и при разработке платформы, в отличие от 1С, старались максимально использовать уже готовые открытые решения.

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

Читать далее
Всего голосов 33: ↑25 и ↓8+17
Комментарии64

Мониторим базу PostgreSQL — кто виноват, и что делать

Время на прочтение7 мин
Количество просмотров28K
Я уже рассказывал, как мы «ловим» проблемы PostgreSQL с помощью массового мониторинга логов на сотнях серверов одновременно. Но ведь кроме логов, эта СУБД предоставляет нам еще и множество инструментов для анализа ее состояния — грех ими не воспользоваться.

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


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

Сегодняшняя статья — о том, какие выводы можно сделать, наблюдая в динамике различные метрики баз PostgreSQL-сервера, и где может скрываться проблема.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии11

Методы расчета себестоимости

Время на прочтение16 мин
Количество просмотров11K
Сегодня предлагается очень много разных методов учета затрат и расчета себестоимости.

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

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


Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Особенности реализации динамических списков в пользовательских интерфейсах

Время на прочтение9 мин
Количество просмотров8.9K
image

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

В открытой и бесплатной платформе lsFusion все списки по умолчанию являются динамическими и добавляются на любую форму в несколько строк кода. В этой статье я расскажу некоторые технические подробности их реализации, а также возможности в интерфейсе, которые автоматически предоставляются пользователю при работе с любым списком на любой форме.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии9

1С-Битрикс и попытка его внедрения

Время на прочтение5 мин
Количество просмотров32K
Привет, друзья!

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

В данной статье хочу поделиться негативным опытом покупки 1С-Битрикс.
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии147

10 признаков того, что хороший программист из вас не получится

Время на прочтение11 мин
Количество просмотров330K
Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Signs You Will Suck at Programming» автора Jonathan Bluks.



Очень часто на Reddit или Quora я вижу вопросы вида «Как понять, смогу ли я стать успешным программистом?» (На самом деле, эта статья является расширенным продолжением моего недавнего ответа на Quora.) Когда кто-то задумывается о смене карьеры или интересуется разработкой и хочет знать, что для этого требуется, неизбежно возникает этот самый вопрос.

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

Будучи преподавателем на курсе «Full-stack Web-development», я работал со многими программистами-новичками. Хорошая новость в том, что мне редко встречались студенты, которые вообще не могли научиться программировать. Я считаю, что умение программировать — такой же базовый навык, как умение читать, писать и считать. Это под силу любому, так как это одна из способностей человека, но этому действительно надо учиться.

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

Этот список поможет вам понять, сможете ли вы стать хорошим программистом, а также что делать, если вы решите это изменить.
Читать дальше →
Всего голосов 162: ↑139 и ↓23+116
Комментарии518

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Работает в
Зарегистрирован
Активность