Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2

Общие положения

В документе описывается настройка PostgreSQL версий 9.2-9.4 на максимальную производительность для платформы 1С. Предполагается, что сервер, используемый для PostgreSQL является достаточно производительным и имеет приблизительно:

  • 4 - 512  Gb RAM
  • 2 - 256 CPU cores
  • RAID 0-1 или SSD
Данный документ подразумевает хотя бы поверхностное знакомство с архитектурой PgSQL. Приведенные в документе параметры являются приблизительными и стартовыми для тонкой настройки.

Настройки сервера для PostgreSQL

  • Рекомендуется отключать HyperThreading. Для программ типа систем управления базами данных от него скорее вред чем польза.
  • Также рекомендуется отключать Energy Saving, поскольку в противном случае могут непредсказуемо вырастать задержки ответов БД.
  • Надо запретить своппинг разделяемой памяти SYSV/posix (FreeBSD: kern.ipc.shm_use_phys=1)

Обозначения

  • RAM - объем оперативной памяти сервера. Если сервер используется не только для PostgreSQL, то надо уменьшить эту величину на объем занятой памяти.
  • NCores - суммарное число ядер на всех CPU сервера
  • max_connections - максимальное число коннектов (или сессий) к PgSQL. Задается в конфигурационном файле.
  • WAL - Write Ahead Log, опережающий лог действий с таблицами и индексами. Основная задача - целостность и отказоустойчивость  базы данных при одновременном росте производительности.
  • checkpoint - точка восстановления база данных. Все WAL данные, записанные до checkpoint становятся не нужны.
  • X..Y - диапазон значений от X до Y включительно

Параметры производительности

shared_buffers = RAM/4

Количество памяти, выделенной PgSQL для совместного кеша страниц. Эта память разделяется между всеми процессами PgSQL.

temp_buffers = 256MB Максимальное количество страниц для временных таблиц. Т.е. это верхний лимит размера временных таблиц в каждой сессии.

work_mem = RAM/32..64 или 32MB..128MB Лимит памяти для обработки одного запроса. Эта память индивидуальна для каждой сессии. Теоретически, максимально потребная память равна max_connections * work_mem, на практике такого не встречается потому что большая  часть сессий почти всегда висит в ожидании. Это рекомендательное значение используется оптимайзером: он пытается предугадать размер необходимой памяти для запроса, и, если это значение больше work_mem, то указывает экзекьютору сразу создать временную таблицу. work_mem не является в полном смысле лимитом: оптимайзер может и промахнуться, и запрос займёт больше памяти, возможно в разы. Это значение можно уменьшать, следя за количеством создаваемых временных файлов: 

select maintenance_work_mem = RAM/16..32 или work_mem * 4 или 256MB..4GBЛимит памяти для обслуживающих задач, например вакуум, автовакуум или создания индексов.

effective_cache_size = RAM - shared_buffersОценка размера кеша файловой системы. Увеличение параметра увеличивает склонность системы выбирать IndexScan планы. И это хорошо.

effective_io_concurrency = 2Оценочное значение одновременных запросов к дисковой системе, которые она может обслужить единовременно. Для одиночного диска = 1, для RAID - 2 или больше.

random_page_cost = 1.5-2.0 для RAID, 1.1-1.3 для SSDСтоимость чтения рандомной страницы (по-умолчанию 4). Чем меньше seek time дисковой системы тем меньше (но > 1.0) должен быть этот параметр. Излишне большое значение параметра увеличивает склонность PgSQL к выбору планов с сканированием всей таблицы (PgSQL считает, что дешевле последовательно читать всю таблицу, чем рандомно индекс). И это плохо.

autovacuum = onВключение автовакуума. Не выключайте его!

autovacuum_max_workers = NCores/4..2 но не меньше 4Количество процессов автовакуума. Общее правило - чем больше write-запросов, тем больше процессов. На read-only базе данных достаточно одного процесса.

autovacuum_naptime = 20sВремя сна процесса автовакуума. Слишком большая величина будет приводить к тому, что таблицы не будут успевать вакуумиться и, как следствие, вырастет bloat и размер таблиц и индексов. Малая величина приведет к бесполезному нагреванию.

bgwriter_delay = 20msВремя сна между циклами записи на диск фонового процесса записи. Данный процесс ответственен за синхронизацию страниц, расположенных в shared_buffers с диском. Слишком большое значение этого параметра приведет к возрастанию нагрузки на  checkpoint процесс и процессы, обслуживающие сессии (backend). Малое значение приведет к полной загрузке одного из ядер.

bgwriter_lru_multiplier = 4.0bgwriter_lru_maxpages = 400Параметры, управляющие интенсивностью записи фонового процесса записи. За один цикл bgwriter записывает не больше, чем было записано в прошлый цикл, умноженное на bgwriter_lru_multiplier, но не больше чемbgwriter_lru_maxpages.

synchronous_commit = offВыключение синхронизации с диском в момент коммита. Создает риск потери последних нескольких транзакций (в течении 0.5-1 секунды), но гарантирует целостность базы данных, в цепочке коммитов гарантированно отсутствуют пропуски. Но значительно увеличивает производительность.

checkpoint_segments = 32..256 < 9.5Максимальное количество сегментов WAL между checkpoint. Слишком частые checkpoint  приводят к значительной нагрузке на дисковую подсистему по записи. Каждый сегмент имеет размер 16MB.

checkpoint_completion_target = 0.5..0.9Степень "размазывания" checkpoint'a. Скорость записи во время checkpoint'а регулируется так, что бы время checkpoint'а было равно времени, прошедшему с прошлого, умноженному на checkpoint_completion_target.

min_wal_size = 512MB .. 4G         > =9.5
max_wal_size = 2 * min_wal_size    > =9.5Минимальное и максимальный объем WAL файлов. Аналогично checkpoint_segments.

ssl = offВыключение шифрования. Для защищенных ЦОД-ов шифрование бессмысленно, но приводит к увеличению загрузки CPU.

fsync = onВыключение параметра приводит к росту производительности, но появляется значительный риск потери всех данных при внезапном выключении питания. Внимание: если RAID имеет кеш и находиться в режиме write-back, проверьте наличие и функциональность батарейки кеша RAID контроллера! Иначе данные записанные в кеш RAID могут быть потеряны при выключении питания, и, как следствие, PgSQL не гарантирует целостность данных.

commit_delay = 1000commit_siblings = 5Групповой коммит нескольких транзакций. Имеет смысл включать, если темп транзакций превосходит 1000 TPS. Иначе эффекта не имеет.

temp_tablespaces = 'NAME_OF_TABLESPACE'Дисковое пространство для временных таблиц/индексов. Помещение временных таблиц/индексов на отдельные диски может увеличить производительность. Предварительно надо создать tablespace командой CREATE TABLESPACE. Если характеристики дисков отличаются от основных дисков, то следует в команде указать соответствующий random_page_cost. См. статью.

row_security = off               >= 9.5Отключение контроля разрешения уровня записи.

max_files_per_process = 1000 (default)Максимальное количество открытых файлов на один процесс PostreSQL. Один файл это как минимум либо индекс либо таблица, но таблица/может состоять из нескольких файлов. Если PostgreSQL упирается в этот лимит, он начинает открывать/закрывать файлы, что может сказываться на производительности. Диагностировать проблему под Linux можно с помощью команды lsof.

Параметры для платформы 1С:Предприятия

standard_conforming_strings = offРазрешить использовать символ \ для экранирования.

escape_string_warning = offНе выдавать предупреждение о использовании символа \ для экранирования.

max_locks_per_transaction = 256Максимальное число блокировок индексов/таблиц в одной транзакции.

max_connections = 500..1000Количество одновременных коннектов/сессий.

Параметры для PgBadger

Приводится согласно документации

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

log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] ' или '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
lc_messages='C'
log_duration = on
log_statement = all
log_destination = stderrПримечание. Здесь пока никак не рассматриваются вопросы ротации логов и использования самого PgBadger'a.

Параметры дополнительных модулей

plantuner

Исходники git clone 

Документация

plantuner.fix_empty_table = 'on'Исправляет чрезмерную пессимистичность оптимизатора посгтреса на пустых, недавно созданных таблицах.

online_analyze

Исходники git clone

Документация

online_analyze.table_type = 'temporary'Автоматически анализировать временные таблицы при их изменении. Фоновый analyze может заметно отставать, и, как результат, планер ошибается.

online_analyze.verbose = 'off'Отключение излишней болтливости автоматического analyze.

 

 

 

источник: https://its.1c.ru/db/metod8dev#content:5866:hdoc

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

1. iMovie

Бесплатные видеоредакторы: iMovie

  • Платформы: macOS, iOS.
Практически идеальный инструмент от Apple для простого редактирования видео. И настольная, и мобильная версия имеют классический интерфейс с монтажным столом, удобный браузер медиафайлов, а также встроенную галерею переходов, эффектов и фильтров. Есть готовые шаблоны проектов для разных ситуаций и богатые настройки экспорта вплоть до 4К.


iMovie

Разработчик: Apple

Цена: Бесплатно


2. DaVinci Resolve

Бесплатные видеоредакторы: DaVinci Resolve

  • Платформы: Windows, macOS, Linux.
Профессиональный видеоредактор продвинутого уровня. DaVinci Resolve ориентирован на постпродакшен и имеет огромное количество инструментов для подстройки картинки и звука. У бесплатной версии есть несколько ограничений, которые обычному пользователю, скорее всего, будут незаметны. Среди них более низкое 4К-разрешение, отсутствие поддержки совместной работы и водяные знаки для некоторых фильтров.

Скачать →

3. Shotcut

Бесплатные видеоредакторы: Shotcut

  • Платформы: Windows, macOS, Linux.
Неплохой редактор с открытым исходным кодом, который будет одинаково хорош как для начинающих, так и для более опытных пользователей. У Shotcut гибкий, интуитивный интерфейс и большая поддержка форматов видео, включая 4К. Помимо базовых возможностей обработки, доступны переходы, комбинируемые фильтры и экспорт не только в заданный формат, но и под конкретное устройство.

Скачать →

4. Lightworks

Бесплатные видеоредакторы: Lightworks

  • Платформы: Windows, macOS, Linux.
Мощный профессиональный видеоредактор, предыдущие версии которого использовались для монтажа «Криминального чтива», «Волка с Уолл-стрит» и других известных фильмов. Lightworks поддерживает мультикамерный монтаж, цветокоррекцию с аппаратным ускорением и другие функции, доступные только в дорогих программах.

В базовой версии можно работать с видео вплоть до 5К, но опции экспорта ограничены 720р или 1080р при загрузке на Vimeo.

Скачать →

5. OpenShot

Бесплатные видеоредакторы: OpenShot

  • Платформы: Windows, macOS, Linux.
Кросс-платформенный редактор с удобным интерфейсом и довольно неплохим списком возможностей, который хорошо подойдёт начинающим. OpenShot умеет работать с различными форматами видео, поддерживает неограниченное количество дорожек, а также имеет неплохую галерею переходов, фильтров и титров.

Скачать →

6. Avidemux

Бесплатные видеоредакторы: Avidemux

  • Платформы: Windows, macOS, Linux.
Очень простой видеоредактор, который при этом прекрасно справляется с базовым монтажом. Avidemux не сравнится по функциям с современными аналогами. Тем не менее его удобно использовать для обрезки и склейки видео, поскольку он позволяет выполнять эти операции без перекодирования файлов и экономит время.

Скачать →

7. Quik

Бесплатные видеоредакторы: Quik Бесплатные видеоредакторы: Рождество здесь

  • Платформы: iOS, Android.
Фирменный редактор от GoPro для монтажа контента в ситуациях, когда под рукой нет компьютера. Шаблоны стилей, фильтры, синхронизация с аудиодорожкой — в Quik есть всё, что нужно для подготовки профессиональных видео для YouTube, Instagram и других соцсетей.


Редактор Quik от GoPro — видео из фото и музыки

Разработчик: GoPro

Цена: Бесплатно





8. Clips

Бесплатные видеоредакторы: Clips Бесплатные видеоредакторы: Этикетки Clips

  • Платформы: iOS.
Простое приложение Apple, которое идеально подходит для создания коротких и забавных роликов для публикации в соцсетях. В Clips есть уйма фильтров и эффектов, крутейшие стикеры, а также продвинутые титры и анимированные постеры на все случаи жизни.

Clips

Разработчик: Apple

Цена: Бесплатно





9. FilmoraGo

&lt;span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"&gt;&lt;/span&gt;

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

 
FilmoraGo - Free Video Editor

Разработчик: Wondershare Software (H.K.) Co., Ltd.

Цена: Бесплатно



10. Movie Maker

  • Платформы: Android.

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


Movie Maker (YouTube) видео Редактор кино эдитор

Разработчик: ALIVE Inc.

Цена: Бесплатно

 

 

источник: https://lifehacker.ru/besplatnye-videoredaktory/

Рейтинг: 4 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна

IP – самый базовый протокол в стеке TCP/IP, все остальные протоколы являются надстройками над ним, поэтому вынуждены играть по его правилам. А по правилам протокола IP, пакет, передаваемый по сети, должен иметь поля source IP (адрес отправителя) и destination IP (адрес получателя).

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

Image result for ip spoofing

Теперь давай подумаем, а каким образом source IP и destination IP попадают внутрь пакета? Ну, они записываются в пакет программным кодом, который этот пакет формирует. А откуда они берутся? Destination IP задает пользователь (или приложение, или что-нибудь еще – вариантов куча, все не перечислишь), когда вводит, скажем, “telnet 127.0.0.1” (в данном случае – destination IP=127.0.0.1), а source IP берется автоматически из настроек системы.

Ок, теперь мы знаем, что в каждом пакете есть destination IP и source IP, а также как они в этот самый пакет попадают. А теперь я скажу, что такое ip spoofing (да ты и сам, наверное, уже знаешь ;)). Ip spoofing – это подмена реально source IP в пакете на ложный. То есть комп шлет пакет (много пакетов), а в поле “адрес отправителя” ставит не свой IP, а чужой (или вообще не существующий). Вот тут-то и начинается веселье: Инет построен так, что проверить достоверность указанного в пакете source IP очень сложно. На этом и построено огромное количество разрушительных DoS-атак. Например, DoS-умножение и циклические пакетные шторма.

КАК ДЕЛАЕТСЯ IP СПУФИНГ?

Хватит теории, давай перейдем к конкретным действиям :). Теоретически существует два способа подменить source IP в пакете: изменить IP своей системы на нужный, чтоб он автоматически добавился в пакет, когда тот будет формироваться, или сформировать пакет самостоятельно, записав в него какой угодно source IP. Второй способ значительно лучше, если не сказать, что первый вообще очень сомнительный. Дело в том, что, во-первых, IP, на который перенастраиваеться система, должен быть свободен, а во-вторых, ответы будут приходить на этот же IP, а он уже стал IP-шником нашей системы – это уже не спуфинг.

Так что катит только первый способ. Но, как обычно бывает в таких случаях, он проблемный. Если делать все правильно, придется компилировать, программировать и т.д. Если это тебя не пугает, поищи на поисковиках следующие вещи: ipspoof.c, IP-spoof-2.txt, spoofit.h, spoof.c. Это исходники и библиотеки на сиях, реализующие спуфинг.

Image result for ip спуфинг

Разобраться будет сложно, так как все эти проги ориентированы на спуфинговые атаки, при которых атакующий не просто отправляет пакеты не со своим родным IP внутри, но и продолжает поддерживать связь с атакуемым, постоянно выдавая себя за другого. При DoS-атаках это не требуется – достаточно просто отправить пакеты, не заботясь об их дальнейшей судьбе (главное – отправлять их постоянно и побольше ;)). Так что то, что лежит в этих исходниках, на порядок сложнее того, что нужно нам.

Спрашивается: зачем себя мучить, ломая лишний раз голову над сложными проблемами, если можно воспользоваться уже готовыми тулзами? Согласен, разобравшись с spoofit.h и ipspoof.c один раз, всегда можно будет написать конкретную прогу для конкретных целей, и это будет правильнее, чем пользоваться уже готовыми тулзами. Но бошка ведь тоже не железная и имеет свойство раскалываться, если всегда все делать по максимуму правильно и дотошно :). Так что давай сделаем так: кодинг я оставлю на твое усмотрение, а сам тебе расскажу про проги, при помощи которых можно спокойно спуфить и устраивать злейшие DoS-атаки, особо не напрягаясь.

SING-1.1

Что нужно, чтоб организовать DoS-умножение? Правильно, отправить какой-нибудь пинг на широковещательный адрес здоровенной сети, подменив в нем source IP на айпишник жертвы. Стало быть, нужна такая прога, которая умеет отправлять ICMP-пакеты, подменяя в них адрес отправителя. Такая прога есть :). Называется sing и имеет текущую версию 1.1. Скачать можно тут: http://download.sourceforge.net/sing/. После даунлода архивчик надо распаковать, а полученный исходник отконфигурировать (./configure), откомпилировать (make) и проинсталлировать (make install) – если тебя все это парит, скачай какую-нибудь rpm-ку (или какой у тебя там дистриб линя?).

Теперь прогу можно вызвать, набрав в командной строке “sing”. Sing – это сетевая тулза, умеющая формировать практически любые ICMP-пакеты, спуфить адрес в них и даже определять удаленную ОС (последнее вряд ли может пригодиться, так как есть nmap, который великолепно справляется с этой задачей). Итак, sing установлен: первым делом ввожу:



1



sing 127.0.0.1







Отлично, пропинговалось. Теперь попробую поспуфить:



1



sing -S 127.0.0.2 127.0.0.1







Вроде все хорошо – спуфенный пинг прошел (пакеты вернулись, т.к. я пока использую loopback). Но мне хочется проверить, все ли ОК. Давай я запрещу файрволу пропускать любые пакеты с 127.0.0.1, попробую пропинговаться обычным ping-ом (который, естественно, все будет слать с 127.0.0.1), а потом попробую пролезть через файрвол sing-ом, меняя 127.0.0.1 на 127.0.0.2. Ввожу:



1



ipchains -A input -s 127.0.0.1 -j DENY









1



ipchains -L







и вижу, что теперь все пакеты с 127.0.0.1 отбрасываются.
Пингую обычным ping-ом:



1



ping 127.0.0.1







Восемь пакетов ушло, вернулось – ноль. Естественно, ведь файрвол все блокирует.
Теперь то же самое, но sing-ом и со спуфом:



1



sing -S 127.0.0.2 127.0.0.1







Опппа!!! Все получилось! Sing обдурил файрвол, прикинувшись, что пакеты идут с 127.0.0.2, а не с 127.0.0.1, который блокируется!
А пакеты вернулись потому, что я использовал loopback: моя система слала ответы на 127.0.0.2, но они пришли к ней же обратно, так как это, как и 127.0.0.1, тоже ее петлевой адрес. Хорошо, теперь попробуем проделать то же самое с удаленной системой. Я буду иллюстрировать все на примере сервака m-net.arbornet.org (да не обидятся на меня его админы ;)). Сначала просто пингую (ping-ом или sing-ом без спуфа – все равно):



1



ping m-net.arbornet.org







Сервак отвечает – все хорошо.

А теперь отправляю серваку несколько пакетов, типа от него же самого (так вызываются циклические ICMP-штормы: сервак получает пакеты вроде как от себя, отвечает на них самому же себе, и так много раз, пока не наступит 3.14zDoS):



1



sing -S m-net.arbornet.org m-net.arbornet.org







Отправлено одиннадцать пакетов, вернулось – ноль. Естественно, сервак отвечал на мои пакеты самому себе, поэтому мне ничего не пришло. И не надо :).

Как видишь, все сработало :). Можно досить спуфом, не ковыряясь во всяком коде! Не думаю, что мои пакеты могли нанести arbornet-у какой-либо ущерб – во-первых, их было слишком мало, во-вторых, на арборнете сидят грамотные админы, и они, наверное, догадались настроить ДДоС защиту так, чтоб она не отвечала на свои собственные ICMP-пакеты ;). Тем не менее, мы с тобой, приятель, разобрались в довольно гиморном вопросе. До новых встреч, и удачных тебе экспериментов в net security!!!

 

 

источник: https://antiddos.biz/chto-takoe-ip-spufing-spoofing/

Подкатегории