Задания дня
Опубликовать пост, который наберет 500 плюсов...
ха-ха, скорее 500 минусов будет
Опубликовать пост, который наберет 500 плюсов...
ха-ха, скорее 500 минусов будет
Дали под роспись в руки рацию… ее Величество Моторолу. Я так думал минут 10, пока не полез в интернет и не понял, что таскаю я пошлый Vertex Standard VX-261 с нашлепкой от Моторолы Солюшн на фронте корпуса и на шильдике.
Ничего больше от Моторолы в рации нет. Вообще ничего.
Тощий аккумулятор на 1350 мАч, что хватает еле-еле на 8 часов, и то, пока не пройдет год и не станет хуже.
Какая-то изборожденная бороздами у основания антенна, что сразу начинает гнуться в месте этих декоративных и бесполезных борозд.
Квадратный корпус, что при установленной прищепке еще надо постараться суметь обхватить мужику при росте от 180 см.
Дизайн как из конца 90-х годов.
В общем, я думал, что это простой бюджетный вариант тысячи за 3-4, для людей, которым нужно, чтобы было, а как работает – не важно. Но цена этой рации меня шокировала. От 15 тысяч до 25 тысяч рублей! И это на маркетплейсах! В магазинах цене в 30 тысяч я не удивлюсь! Ведь продают как настоящую Моторолу!
Единственное, что производитель добавил из доп функционала, – это расширенный сигналинг. К примеру, при удалении за зону уверенного приема одного абонента от другого рация должна пищать! Но какой практический смысл в таком функционале уже при наличии в радиогруппе больше двух радиоабонентов! В общем, ломать голову смысла нет.
Подытоживаю… Один диапазон, отсутствие индикации заряда, влагобоязнь и неудобный форм-фактор с дизайном из нулевых – не перевесят более-менее нормальный звук, пять ватт мощности и все-таки крепкий корпус, что не люфтит аккумулятором. А главное – цена в три, а может, даже четыре раза больше, чем такие же по классу рации у других производителей.
Короче. Шарёные парни такую поделку покупать не будут.
А кстати! Вот эта рация ET-538 переплюнет "Моторолу" VX261 c первого раза!
Когда делаешь хорошую, музейную модель, да еще и с нуля, да еще и с неясными пожеланиями, на выручку приходит тест-модель.
Вот как тут. Заказали мне макет разреза линкора, в большом масштабе- 1:10. На секундочку, это порядка 1700 мм в высоту, без учета мачты.
А расположение людей, и что конкретно хочет видеть клиент- пока не понятно. И для этого я делаю то же сечение , но в уменьшенном ( и до предела упрощенном) масштабе 1:35
Вначале нужно определить, где оно будет проходить- что бы попало максимум интересного, но при этом было наглядно.
Для этого приходится совмещать кучу источников- чертежи, фото иных моделей , планы судов похожего класса.
Очень помогает, что парусные корабли одной эпохи обычно имеют мало отличий в компоновке.
А еще помогает, что на Виктори есть отличная экскурсия)



Верхняя палуба, или шкафут ( поскольку это ЗА фок-мачтой)


Опердек ( upper-deck) Некоторые пиллерсы стоят чаще, чем нужно- это отличие между кораблями.



Мидель-дек, (middle-deck) или средняя палуба . Подальше от начальства, поближе к кухне.


Гандек ( gun-deck) , или нижняя, орудийная палуба. Канаты на якорные битенги еще намотаю)



Орлоп-дек. Мастерская плотника и боцманская кладовая.


Трюм. Просто трюм.
А дальше мне придется изготавливать фигурки, все расставлять и спорить о том, как они должны стоять, сидеть и прочее)
Приветствую пикабушников!
Хочу поделиться со всеми желающими авторской бесплатной утилитой Easy Disk Checker. Я работаю в сфере восстановления данных уже более 20-ти лет и год назад начал писать её в помощь людям, которые обращались ко мне с теми или иными профильными проблемами.
Это простая в использовании программка под Windows для работы с дисками и флешками на «физическом» уровне, независимо от файловой системы или её отсутствия. Приложение выполнено в виде одного исполняемого EXE файла, не требует установки, не оставляет следов в системе, не ставит драйверы и не лезет в реестр.
💻 Поддерживаемое оборудование:
USB, NVMe, SATA и PATA контроллеры
Жёсткие диски (HDD) и SSD (SATA / NVMe)
Внешние USB диски
USB флешки и карты памяти
📊 Диагностика:
Просмотр логической структуры накопителя
Вывод параметров диска (кол-во LBA, размер сектора, версия f.w., rpm и т.д.)
Просмотр S.M.A.R.T. атрибутов и логов Seagate FARM
Определение наличия HPA (Host Protected Area) и ATA пароля
Идентификация внутренней модели внешних HDD (обход USB моста)
Вывод VID и PID для флешек и сведений о микроконтроллере (дополняется)
Выявление дисков участников Microsoft Storage Space
🔬 ️Тестирование:
Тест поверхности: Полное сканирование на наличие битых секторов (bad blocks)
Проверка на подделку: Выявление флешек с фальшивым объёмом
Бенчмарк: Замер средней скорости чтения
🛠 Ремонт:
Исправление бэд-блоков: Полная посекторная запись секторов для исправления soft-bad или инициализации встроенной функции замещения дефектов там, где это возможно
💾 Резервное копирование:
Чтение и запись посекторных образов без модификации (*.bin)
Создание VHD \ VHDX динамических образов и «разворачивание» их на физ. диск
📤 Восстановление данных:
Просмотр и редактирование HEX содержимого секторов
Восстановление повреждённых MBR \ GPT записей для потерянных или удалённых разделов
Просмотр и копирование файлов с разделов FAT, NTFS, exFAT, Linux (Ext2/3/4) и Mac (HFS+)
Программа постоянно развивается, регулярно выходят версии с добавленным новым функционалом, сертифицирована в Microsoft Partner Center и доступна для скачивания как по прямой ссылке в виде исполняемого файла со страницы поддержки (кстати там ещё и полное описание всех функций есть), так и для установки через Windows Store.
Буду благодарен за обратную связь, особенно за пожелания улучшения функциональности и возможные багрепорты.
Взято с основного технического канала Postgres DBA (возможны правки в исходной статье).
Часто при замедлении работы базы данных первым решением кажется увеличение вычислительных ресурсов: больше ядер, памяти, быстрые диски. Однако существует и другой, более экономичный путь — заглянуть глубже, на уровень операционной системы, управляющей этими ресурсами.
Данная статья — это практический разбор реального кейса, где скрупулёзная настройка параметров подсистемы ввода-вывода, кэширования и планировщика задач Linux позволила поднять производительность PostgreSQL на впечатляющие 65%. Без замены железа, без увеличения лицензий, только за счёт грамотной оптимизации «фундамента», на котором работает СУБД. Мы пройдём по всем ключевым экспериментам, от базовых значений до финального результата, и покажем, какие именно настройки стали решающими в этой «бесплатной» победе над latency.
СУБД: PostgreSQL 17
Инструмент нагрузочного тестирования: pg_expecto
Тестовая база данных: pgbench (10GB, простая структура)
Условия тестирования: параллельная нагрузка от 5 до 22 сессий по каждому тестовому сценарию.
Общие параметры производительности:
vm.dirty_ratio = 30
vm.dirty_background_ratio = 10
Параметры IO-планировщика:
[none] mq-deadline kyber bfq
Настройки кэширования и буферизации:
vm.vfs_cache_pressure = 100
Параметры файловой системы:
/dev/mapper/vg_data-LG_data on /data type ext4 (rw,relatime)
Размер буферов для операций с блочными устройствами
read_ahead_kb=4096
vm.dirty_ratio=10
vm.dirty_background_ratio=5
[mq-deadline] kyber bfq none
vm.vfs_cache_pressure=50
/dev/mapper/vg_data-LG_data on /data type ext4 (rw,noatime,nodiratime)
echo 256 > /sys/block/vdd/queue/read_ahead_kb
Сравнительный график изменения операционной скорости в ходе нагрузочного тестирования для Эксперимента-8(SPEED-8) и базовыми значениями параметров IO для Эксперимента-1(SPEED-1)
Среднее увеличение операционной скорости в результате применения изменений подсистемы IO по сравнению с базовыми значениями составило 65.09%.
Систематическая оптимизация параметров подсистемы IO — таких как настройки кэширования, планировщика операций ввода-вывода и параметров файловой системы — позволила достичь значительного повышения производительности PostgreSQL.
Суммарный эффект от внесённых изменений выразился в среднем увеличении операционной скорости на 65,09% по сравнению с базовой конфигурацией. Наиболее существенный вклад внесли корректировки размера буферов предварительного чтения (read_ahead_kb) и отключение избыточного обновления временных меток файлов (noatime, nodiratime).
Результаты подтверждают - целенаправленная настройка окружения ОС является критически важным этапом развёртывания высоконагруженных СУБД.
Взято с основного технического канала Postgres DBA (возможны правки в исходной статье).
В мире оптимизации СУБД иногда меньше означает больше. Вопреки стандартным рекомендациям об увеличении буферов, эксперимент показал, что осознанное уменьшение размера read_ahead_kb с 4 МБ до 256 КБ привело к росту общей производительности PostgreSQL на 7%. Это напоминание о том, что каждая система уникальна, а оптимизация требует тонкой настройки под реальную нагрузку.
Read_ahead_kb — параметр, который определяет максимальное количество килобайт, которые операционная система может прочитать заранее во время последовательной операции чтения.
В результате вероятно необходимая информация уже присутствует в кэше страниц ядра для следующего последовательного чтения, что улучшает производительность ввода-вывода.
По умолчанию значение параметра — 128 КБ для каждого сопоставляемого устройства. Однако увеличение значения read_ahead_kb до 4–8 МБ может улучшить производительность в средах приложений, где происходит последовательное чтение больших файлов
cat /sys/block/vdd/queue/read_ahead_kb
# cat /sys/block/vdd/queue/read_ahead_kb
4096
echo 256 > /sys/block/vdd/queue/read_ahead_kb
Увеличение предварительного чтения может улучшить производительность последовательных операций чтения.
Улучшение rMB/s для последовательных рабочих нагрузок.
Период анализа: 2026-01-07 10:50 - 2026-01-07 12:39 (109 минут)
Основные устройства хранения:
vdd (vg_data-LG_data): 100ГБ, смонтирован в /data - основной диск данных
vdc (vg_wal-LG_wal): 50ГБ, смонтирован в /wal - диск для WAL
vdb (vg_log-LG_log): 30ГБ, смонтирован в /log
vda: системный диск с разделами ОС
Тип нагрузки: Смешанная нагрузка с признаками как OLTP, так и OLAP
Для vdd: OLAP-сценарий (соотношение чтение/запись = 3.33:1)
Для vdc: OLTP-паттерн (высокая корреляция speed-IOPS)
ALARM: Загрузка устройства 100% во всех 110 наблюдениях
ALARM: Высокое время отклика на запись - 94.55% наблюдений превышают 5мс
ALARM: Постоянно высокая длина очереди - 100% наблюдений с aqu_sz > 1 (до 35)
ALARM: Высокий процент ожидания CPU IO (wa) - 100% наблюдений с wa > 10%
ALARM: Процессы в uninterruptible sleep возрастают при высоком wa
ALARM: Загрузка устройства >50% - 100% наблюдений (50-66%)
WARNING: Высокая корреляция wa-util (0.5115) - процессы ждут диск
ALARM: Очень высокая корреляция cache-w/s (0.7635) - неэффективное использование памяти
Отрицательная корреляция memory cache - r/s (-0.8040) и cache - rMB/s (-0.8465)
Память неэффективно используется для снижения нагрузки на диск
Отрицательная корреляция speed-IOPS (-0.2205) и speed-MB/s (-0.8862)
Производительность не ограничена IOPS или пропускной способностью
Узкое место в CPU, блокировках или параметрах параллелизма
Высокая положительная корреляция speed-IOPS (0.7764)
Классический OLTP-паттерн, производительность зависит от способности диска обрабатывать мелкие операции
Отрицательная корреляция speed-MB/s (-0.6110)
Проблема не в пропускной способности диска
r_await(ms): 2-5 мс (в пределах нормы)
w_await(ms): 4-16 мс (критически высоко, 94.55% > 5мс)
aqu_sz: 10-35 (критически высоко, всегда > 1)
proc_b: 5-13 процессов в uninterruptible sleep
cpu_wa(%): 39-45% (критически высоко)
Корреляция speed-IOPS: -0.2205 (отрицательная)
Корреляция speed-MB/s: -0.8862 (сильно отрицательная)
r_await(ms): 0 мс (нет операций чтения)
w_await(ms): 0.56-0.62 мс (в норме)
aqu_sz: 0.6-0.71 (в норме)
proc_b: 5-13 процессов в uninterruptible sleep
cpu_wa(%): 39-45% (критически высоко)
Корреляция speed-IOPS: 0.7764 (сильно положительная)
Корреляция speed-MB/s: -0.6110 (отрицательная)
vdd является основным узким местом - 100% загрузка, длинные очереди, высокое время отклика записи
Высокий cpu_wa на обоих устройствах указывает на системную проблему с IO
Разные паттерны нагрузки на vdd (OLAP) и vdc (OLTP) требуют разных подходов к оптимизации
Память используется неэффективно для кэширования, особенно на vdd
Текущее состояние: Критическое. Система испытывает серьезные проблемы с производительностью IO, особенно на основном диске данных (vdd).
Основные проблемы:
Диск vdd постоянно загружен на 100% с длинными очередями запросов
Высокое время отклика на операции записи (до 16мс)
Неэффективное использование оперативной памяти для кэширования
Значительные простои CPU из-за ожидания IO (wa 39-45%)
Прогноз: Без вмешательства производительность будет деградировать при росте нагрузки, возможны отказы служб из-за таймаутов IO.
Приоритет действий: Высокий. Рекомендуется начать с немедленных оптимизаций настроек СУБД и мониторинга, затем перейти к апгрейду инфраструктуры.
Сравнительный график изменения операционной скорости в ходе нагрузочного тестирования для Эксперимента-7(SPEED-7) и Эксперимента-8(SPEED-8)
Среднее увеличение операционной скорости в ходе Эсперимента-8 по сравнению с Экпериментом-7 составило 7.79%.⬆️
Сравнительный график изменения ожидания СУБД в ходе нагрузочного тестирования для Эксперимента-7(WAITINGS-7) и Эксперимента-8(WAITINGS-8)
Сравнительный график изменения количества IOPS в ходе нагрузочного тестирования для Эксперимента-7(IOPS-7) и Эксперимента-8(IOPS-8)
Сравнительный график изменения MB/s в ходе нагрузочного тестирования для Эксперимента-7(MB/s-7) и Эксперимента-8(MB/s-8)
Сравнительный график изменения длины очереди в ходе нагрузочного тестирования для Эксперимента-7(aqu_sz-7) и Эксперимента-8(aqu_sz-8)
Сравнительный график изменения r_await(ms) в ходе нагрузочного тестирования для Эксперимента-7(r_await(ms)-7) и Эксперимента-8(r_await(ms)-8)
Сравнительный график изменения w_await(ms) в ходе нагрузочного тестирования для Эксперимента-7(w_await(ms)-7) и Эксперимента-8(w_await(ms)-8)
Вывод: Оба эксперимента показывают, что узкое место не в подсистеме IO, а в других компонентах системы (CPU, блокировки, СУБД).
Эксп. 7: 2–5 мс, стабильно низкий.
Эксп. 8: 2–5 мс, стабильно низкий.
Вывод: Задержки чтения в норме, проблем нет.
Эксп. 7: 4–16 мс, есть рост в конце.
Эксп. 8: 4–16 мс, стабилен.
Вывод: Задержки записи также в допустимых пределах.
Эксп. 7: 10–31, растёт к концу.
Эксп. 8: 10–35, также рост к концу.
Вывод: Очереди увеличиваются, что может указывать на рост нагрузки или блокировок.
Эксп. 7: 4–13, умеренный рост.
Эксп. 8: 5–13, стабильно.
Вывод: Количество процессов в ожидании IO не критично.
Эксп. 7: 39–47%, высокий уровень.
Эксп. 8: 39–45%, также высокий.
Вывод: Высокий cpu_wa указывает на то, что CPU часто простаивает в ожидании IO или других ресурсов.
Отрицательная в обоих случаях, но в эксп. 7 — сильнее.
Это подтверждает, что производительность не зависит от IOPS.
Отрицательная, особенно сильная в эксп. 8.
Пропускная способность диска не является ограничением.
Utilization: 100% в обоих экспериментах, но это не означает перегрузку IO, так как задержки низкие.
Shared блоки: активный рост в обоих случаях, что характерно для OLTP-нагрузки.
Время чтения/записи shared блоков: растёт, особенно в эксп. 8.
IO не является узким местом ни в одном из экспериментов.
Проблемы связаны с CPU, блокировками, ожиданиями СУБД.
Рост очередей (aqu_sz) и времени ожидания CPU указывают на проблемы с параллелизмом или блокировками в СУБД.
Оба эксперимента подтверждают отсутствие IO-ограничений.
Задержки чтения/записи низкие, пропускная способность не влияет на производительность.
Эксперимент 8 показывает лучшую оптимизацию параметров IO, что выражается в более стабильных метриках r_await и w_await, а также в снижении влияния IOPS на скорость.
Основные проблемы остаются неизменными:
Высокий cpu_wa указывает на неэффективное использование CPU.
Рост aqu_sz и proc_b говорит о возможных блокировках или недостатке параллелизма.
Рекомендуется фокус на оптимизацию СУБД, настройку параллелизма и устранение блокировок.
Рекомендации:
Провести анализ ожиданий в СУБД (locks, latches, waits).
Настроить параметры параллелизма (если используется PostgreSQL — max_connections, work_mem, shared_buffers и т.д.).
Рассмотреть возможность увеличения CPU или оптимизации запросов.
Заключение: Эксперимент 8 демонстрирует улучшение в части управления IO, но системные проблемы (CPU, блокировки) остаются. Для дальнейшего повышения производительности необходимо сосредоточиться на оптимизации работы СУБД и устранении узких мест, не связанных с IO.