• С чего начать изучения программирования АСУ в домашних условиях?

    Mansiper
    @Mansiper
    Директор КБ. Разработчик АСУ ТП.
    В домашних условиях максимум, что получится, - это изучение отдельно взятого устройства или языка программирования, что не сильно приблизит вас к созданию полноценной автоматизированной системы управления.
    АСУ - понятие гораздо более широкое, чем кажется. Это и "умный дом", и управление складом и кассой, и управление заводом, и разработка контроллеров. Возможно использование любых технологий от мобильных приложений до программирования микроконтроллеров. Выберите для себя подходящую область, к которой больше лежит душа, и постарайтесь устроиться в фирму, которая занимается интересной вам областью, для получения опыта.
    По своему опыту скажу, что теория может очень сильно отличаться от практики. Что бы вы не придумали дома, не имея практического опыта, почти наверняка уже есть лучшее решение (был опыт общения с подобными мечтателями).

    В частности, для программирования АСУ для БСУ (бетонносмесительной установки) мало просто знать язык программирования. Необходимо иметь хотя бы базовые знания электроники и электротехники, знать протоколы для работы с устройствами, уметь быстро разбираться с новым оборудованием, уметь читать схемы, знать технологический процесс (начальник объяснит, но запомнить надо будет наизусть от и до). А во время пуско-наладки быть готовым быстро соображать и реагировать на любые нештатные ситуации - любая ошибка может очень дорого обойтись вплоть до причинения увечий или чего хуже. В данном случае АСУ - это не только программа, но также исполнительные механизмы (пневмоклапаны, конвейеры, датчики, бетоносмесители и пр.) и устройства, которые ими управляют (промышленные контроллеры, модули ввода и вывода и пр.). Если захотите пойти глубже, чем просто написание программ, то со всем этим вам предстоит научиться работать в той или иной степени, а также с оборудованием, которое, возможно, вы никогда не увидите, но у вас будет руководство по эксплуатации.
    Но запуск первой работающей установки, когда по одной кнопке всё железо оживает, приходит в движение и выдаёт готовый продукт - ни с чем не сравнимое удовольствие. Это похоже на оживление Франкенштейна.

    На фото рабочее место оператора БСУ в Нижнем Тагиле:
    Best_2.jpg
    Ответ написан
    Комментировать
  • Как настроить centos 7 под большое количество tcp соединений?

    @solalex
    cat /etc/sysctl.conf
    # Kernel sysctl configuration file for Red Hat Linux
    #
    # For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
    # sysctl.conf(5) for more details.
    
    # Controls IP packet forwarding
    net.ipv4.ip_forward = 1
    
    # Controls source route verification
    net.ipv4.conf.default.rp_filter = 1
    
    # Do not accept source routing
    net.ipv4.conf.default.accept_source_route = 0
    
    # Controls the System Request debugging functionality of the kernel
    kernel.sysrq = 0
    
    # Controls whether core dumps will append the PID to the core filename
    # Useful for debugging multi-threaded applications
    kernel.core_uses_pid = 1
    
    # Controls the use of TCP syncookies
    net.ipv4.tcp_syncookies = 1
    
    # Controls the maximum size of a message, in bytes
    kernel.msgmnb = 65536
    
    # Controls the default maxmimum size of a mesage queue
    kernel.msgmax = 65536
    
    # Controls the maximum shared segment size, in bytes
    kernel.shmmax = 68719476736
    
    # Controls the maximum number of shared memory segments, in pages
    kernel.shmall = 4294967296
    
    ##############
    # nat tuning #
    ##############
    
    # Увеличиваем количество conntrack соединений, необходимо менять значение
    # по умолчанию только на высоконагруженных серверах.
    # ядро 2.6 лучше воспринимают размеры таблиц равные степени 2, так что можно установить
    # CONNTRACK_MAX и HASHSIZE равные 1048576 (2^20) etc...
    # net.ipv4.netfilter.ip_conntrack_max = 4194304
    # net.nf_conntrack_max = 4194304
    net.ipv4.netfilter.ip_conntrack_max = 9437184
    net.nf_conntrack_max = 9437184
    
    
    # increase TCP max buffer size setable using setsockopt()
    # изменение размеров буферов для приема и отправки данных через сокеты, tcp-memory
    net.core.rmem_default = 16777216
    net.core.rmem_max = 16777216
    net.core.wmem_default = 16777216
    net.core.wmem_max = 16777216
    # increase Linux autotuning TCP buffer limits
    # min, default, and max number of bytes to use
    # set max to at least 4MB, or higher if you use very high BDP paths
    # net.ipv4.tcp_rmem = 4096 87380 16777216
    # net.ipv4.tcp_wmem = 4096 65536 16777216
    net.ipv4.tcp_rmem = 4096 16777216 16777216
    net.ipv4.tcp_wmem = 4096 16777216 16777216
    
    # Максимальное число сокетов в состоянии TIME-WAIT одновременно. При превышении этого порога лишний сокет разрушается 
    # и пишется сообщение в системный журнал. Цель этой переменной – предотвращение простейших разновидностей DoS-атак
    # Значение по-умолчанию –     180000
    net.ipv4.tcp_max_tw_buckets = 1800000
    
    # Переменная задает максимальное число осиротевших (не связанных ни с
    # одним процессом) сокетов. Если это число будет превышено, то такие
    # соединения разрываются, а в системный журнал пишется предупреждение. Это
    # ограничение существует исключительно ради предотвращения простейших
    # разновидностей DoS-атак. 
    net.ipv4.tcp_max_orphans = 262144
    # net.ipv4.tcp_max_orphans = 65536
    
    # net.ipv4.tcp_max_syn_backlog = 262144
    
    # When in a non-Napi (or Interrupt) mode, this counter indicates that the stack is dropping packets.
    # net.core.netdev_max_backlog = 10000
    net.core.netdev_max_backlog = 30000
    
    # net.core.somaxconn = 262144
    
    # These ensure that TIME_WAIT ports either get reused or closed fast.
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    
    # защита от syn-флуда
    net.ipv4.tcp_syncookies=1
    
    # запрет приёма ICMP-редиректов
    # net.ipv4.conf.all.accept_redirects = 0
    # net.ipv4.conf.default.accept_redirects = 0
    
    # игнорируем широковещательные ICMP-запросы
    net.ipv4.icmp_echo_ignore_broadcasts=1
    
    # игнорируем пакеты, в которых указан путь до источника
    net.ipv4.conf.all.accept_source_route=0
    
    # Укажем диапазон портов которые разрешено использовать в качестве
    # локальных. По умолчанию этот диапазон достаточно мал, и при высокой
    # нагрузке вам их может просто не хватить
    # net.ipv4.ip_local_port_range = 16384 61000
    net.ipv4.ip_local_port_range = 1024 65535
    
    # Уменьшим время которое используется для сообщений
    # о поддержке keep alive соединений
    net.ipv4.tcp_keepalive_time = 7200
    
    # Уменьшим время до закрытия TCP соединения, данный параметр стоит менять
    # только на высоко нагруженных серверах.
    net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 7200
    
    # Другие таймауты:
    net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 60
    net.ipv4.netfilter.ip_conntrack_udp_timeout = 60
    net.ipv4.netfilter.ip_conntrack_generic_timeout = 3600
    
    # В случае kernel panic reboot через 10 секунд (panic может возникнуть при высокой нагрузке и irqbalance, например)
    kernel.panic = 10
    
    # чтобы не переполнялась арп-таблица (пишет в логах kernel: ipv4: Neighbour table overflow)
    net.ipv4.neigh.default.gc_thresh1 = 1024
    net.ipv4.neigh.default.gc_thresh2 = 2048
    net.ipv4.neigh.default.gc_thresh3 = 4096
    Ответ написан
    Комментировать
  • С чего начать изучение Linux?

    3vi1_0n3
    @3vi1_0n3
    Для начала поставьте какой-нибудь дистрибутив попроще. Можно даже ту же Убунту, но лучше Дебиан. Не надо ставить сразу генту и арч, через месяц задолбаетесь и будете думать "Ну и говно ваш линукс". Сначала разберитесь с тем, как те же сервисы стартуют, сеть настраивается, как логи читать, как в консоли работать. Когда немного пользоваться научитесь, тогда уже имеет смысл переходить на арч. Я в свое время после нескольких лет Дебиана поставил LFS, времени потратил много, зато после этого генту без мануалов собрал.
    В общем, не надо сразу нырять с головой в кишки, сначала начните себя комфортно чувствовать во время работы
    Ответ написан
    6 комментариев
  • Как загрузить данные на SD-карту в Android, имея доступ только к Recovery?

    @zodeg
    В любом современном recovery есть режим монтирования внутренней памяти и sd-карты, ищите пункт mounts and storage, ставьте галочки и включайте MTP или эмуляцию usb устройства хранения.

    Также для устройств samsung есть утилита ODIN

    techbeasts.com/2015/09/06/download-latest-odin-odi...
    Ответ написан
    3 комментария
  • Как правильно понять сущности CoreOS и Docker?

    Insaned
    @Insaned
    CoreOS операционная система - Да
    На ней установлен Docker. - Да
    docker контейнер - это своя операционная система - не совсем, это скорее эмулятор операционной системы, но для дизайнера так можно считать.
    может потом mongo перекинуть с одной ноды на другую - сейчас вам скажут, что перекидываь контейнер с ноды на ноду - моветон и надо на новой ноде построить новый контейнер, а данные среплицировать. Но в целом, опять же да - так можно.
    Ответ написан
    1 комментарий
  • Какое сетевое хранилище выбрать?

    edinorog
    @edinorog
    Троллей не кормить!
    Забей на любой тип готового сетевого хранилища! Так иногда таааакие перлы вылезают. Волосы дыбом встают. Возьми мать на простеньком проце последнего поколения. Возьми корпус под 4 винта с горячим извлечением. Определись с осью. И только тогда ты будешь спать спокойно, не переживая з свои данные.
    Ответ написан
    5 комментариев
  • Как лучше организовать электронную библиотеку?

    @nirvimel
    >500000

    Можете использовать ext4 или почти любую современную файловую систему.

    Главное предупреждение: Даже не пытайтесь сложить все это в одни каталог! Последствия могут оказаться печальными. Вплоть до того, что вы даже не сможете удалить из мега-каталога что-то без полного форматирования ФС. Сходу не найду ссылки, но были прецеденты печальных историй.

    Лучше разбить коллекцию на 1000 каталогов по 1000 файлов.
    Ответ написан
    Комментировать
  • Порекомендуйте загрузочную USB флешку?

    В свое время остановился не на софтовом решении, а на железном, а именно боксы от Zalman типа ZM-VE300, ZM-VE200 и тд.
    Смысл в том, что создается на жестком диске раздел _iso в который склыдваются ISO образы, и данный раздел в bios виден как CD-ROM в который можно путем перебора ISO образов (на боксе либо джойстик, либо цифровая клавиатура для этого), подставлять любой ISO образ из загруженных.

    PS: в рамках одного предприятия это правильней решать с помощью WDS / SMS
    Ответ написан
    7 комментариев
  • Как пустить все исходящие соединения на сервере через Tor?

    mourr
    @mourr
    Passionate JS developer
    Используйте iptables - вот годный мануал
    Ответ написан
    Комментировать
  • Системное администрирование сайтов на vps. Что для этого нужно знать?

    @ramjke
    Языки - никаких не надо знать. Достаточно грамотно настроить программы.
    Nginx - настройки оптимизации (кеширование, keepalive, gzip, количество воркеров), и безопасности (сервак не должен ложиться под дос-атаками и выполнять php, загруженный под видом картинки). Уметь пользоваться Rewritemode.
    MySQL - настройки кеширования (размер кеша, количество таблиц в кеше).
    PHP - Memcache/Xcache для кеширования результатов запросов к php. Настройка заключается в основном в выставлении размера кеша.
    Wordpress - знание основных атак и установка плагинов от них (из популярных атак - брутфорс пароля к админке и xml-rpc атака).
    Ротация логов - чтобы место на диске не закончилось от распухших логов.
    Fail2Ban - чтобы не забрутфорсили пароли к ftp, smtp, ssh.
    Опционально - установка системы мониторинга (Zabbix, Nagios) для отслеживания работы служб (nginx, mysql и другие необходимые) и доступности сайта.
    Из утилит нагрузочного тестирования простейшая - ApacheBench (просто шлёт n запросов на одну страницу), покруче - Jmeter (с возможностью записывания сценариев).
    Ответ написан
    2 комментария
  • Почему компьютер включается каждую ночь?

    alhray
    @alhray
    powercfg /lastwake Показывает что вывело ПК последний раз из сна
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    knutov
    @knutov
    Если у вас ext4, то проблема происходит от журнала. Если запустить

    iotop -oPa

    увидите jb2, съедающий всё ио (или iostat -kx 1)

    1) можно просто удалить журнал.

    tune2fs -O ^has_journal /dev/sdX

    где sdX - ваш диск с разделом (т.е. например sda2)/

    Вопреки популярным мнениям - в контексте хостинга ничего страшного без журнала не случится (предполагая, что у вас относительно нормальный сервер в относительно нормальном ДЦ).

    2) Можно поставить нормальные серверные диски.

    Это, например, Intel s3610, но если без очень больших нагрузок, то Intel S3500 или Seagate 600 Pro тоже будет, скорее всего, достаточно (но Seagate 600 Pro не советую, в текущий момент его смысла покупать уже нет).

    upd: про 20тб. Проблем в целом не должно быть, если это zfs (raidz2, например), + l2arc cache. Ну или делать на ссд дисках (серверных типа s3610, или обычных, но с LSI контроллерами).
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    Можно переместить все файлы в структуру каталога, где на каждом уровне будет 256 поддиректорий.
    1-й уровень вложенности - 256 папок
    2-ой уровень вложенности -256^2 папок
    ......
    n-ый уровень - 256^n

    Можно получать хэш md5 от
    md5sum filename - 9673a892a7d8c1c9ac598ebd06e3fb58
    затем нарезать путь из директорий, выбирая по 2 символа на подгруппу:
    /96/73/a8/filename
    Таким образом, для трехуровневой структуры можно разложить порядка 4-х миллиардов файлов, где в конечной папке будет в среднем 256 файлов.
    Триллион файлов - сделайте четыре уровня.

    Одно дело, читать папку, в которой 256 объектов, другое дело - когда несколько десятков тысяч, скорость работы изменится на порядки.
    Ответ написан
    1 комментарий
  • VPN-сервер на микротике с поддержкой аутентификации по сертификатам?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Читаем
    lantorg.com/article/nastrojka-vpn-cherez-mikrotik-...

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

    В качестве клиентов данного VPN-сервера будут выступать несколько виндовых машин.

    Вообще не вижу смысла в OpenVPN.
    PPTP подняли, пароли выдали и адью.
    Ответ написан
    1 комментарий
  • Upwork системному администратору?

    athacker
    @athacker
    Там есть и заказы и с почасовой и с по-проектной оплатой. Рутовый доступ сразу, я думаю, не дадут. Скорее всего будет доступ через TeamViewer, во всяком случае, поначалу. Т. е. клиент откроет ssh-сессию на своём компе, и даст вам доступ к своему компу по TeamViewer, чтобы смотреть, что вы делаете.

    По опыту -- админских задач там гораздо меньше, чем программерских. Так что набор клиентской базы займёт порядочное время. Когда уже определённая репутация будет, то появятся постоянные заказчики, тогда будет проще. Но на быстрый успех рассчитывать не стоит.
    Ответ написан
    Комментировать