LINUX.ORG.RU

Сообщения KRoN73

 

Фигня какая-то с mdadm. Что делать?

Форум — Admin

Пытался уменьшить имеющийся md raid1, чтобы добавить дополнительный раздел.

Исходная ситуация: md0 = sda1+sdb1 и md1 = sda2+sdb2 — не интересны.

md2 = sda3+sdb3, 2Тб (1.8ТиБ). Уменьшается до 1.4ТиБ, чтобы осталось 400М в остатке.

Уменьшил md2 до размера меньше нужной границы:

mdadm --grow /dev/md2 --size 1530000000

Переразбил диски parted'ом, не затрагивая начало /dev/sda3 и /dev/sdb3. Результат — такая раскладка:

Number  Start           End             Size            Type     File system  Flags
 1      1048576B        17180918271B    17179869696B    primary               raid
 2      17181966336B    17718837759B    536871424B      primary               raid
 3      17719885824B    1584439230463B  1566719344640B  primary               raid
 4      1584439230464B  2000398934015B  415959703552B   primary               raid

Дальше нужно увеличить /dev/md2 до отведённого максимума:

mdadm --grow /dev/md2 --size max

И вот тут он выдал мне, что размер его стал не 1530000000, а полных 1936077760 (кажется, посмотреть точно сейчас нельзя). И начал синкать. Вероятно, без перезагрузки системы или mdadm он не просёк, что изменилась разбивка. При чём синк фактически висел, выдавая ожидаемое время работы постоянно разное, на сотни тысяч минут. Прогресс тоже не сдвигался, так и висел на 79 с чем-то процентов.

Я решил тормознуть это дело и вернуть --size 1530000000. Но не помогали ни echo «idle» > /sys/block/md2/md/sync_action, ни /usr/share/mdadm/checkarray -xa, процесс также продолжался/висел. А поменять во время его работы размер невозможно.

Тогда я решил тормознуть /dev/md2 по --stop и потом запустить заново. И приплыл. Теперь любая попытка создать массив выводит подобное:

mdadm --assemble -f /dev/md2 /dev/sdb3 /dev/sda3 -v
mdadm: looking for devices for /dev/md2
mdadm: /dev/sdb3 is identified as a member of /dev/md2, slot 1.
mdadm: /dev/sda3 is identified as a member of /dev/md2, slot 0.
mdadm: failed to add /dev/sdb3 to /dev/md2: Invalid argument
mdadm: failed to add /dev/sda3 to /dev/md2: Invalid argument
mdadm: failed to RUN_ARRAY /dev/md2: Invalid argument

Есть мысли куда копать?

 mdadm md raid1

KRoN73
()

Посмотреть прогресс уже запущенного resize2fs можно?

Форум — Admin

Запустил сдуру resize2fs без ключика -p. Теперь не знаю, в какой стадии процесс и сколько ждать. Может, есть какая возможность?

 

KRoN73
()

Есть в природе cli-инструменты для работы с фильтрами Байеса?

Форум — General

Задача — есть ряд текстов для обучения. Хочется скормить (в консоли) тексты фильтру Байеса с привязкой текстов и ключевых слов (категорий текста). И запомнил.

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

В spamassasin была такая штука, sa-learn, но там только бинарный подход спам/не спам.

Есть много библиотек под разные языки, но очень низкоуровневых. Надо много геморроиться и разбираться с созданием хранилища. Либо вообще обучение перед каждым использованием...

Должно же быть что-то уже готовое к использованию, нет?

 bayesian, фильтр байеса

KRoN73
()

Я спросил у ясеня^W инфосферы...

Форум — General

Интересует такая задачка на распределение и децентрализацию.

Пусть у нас есть N или даже K серверов, соединённых в доверенную p2p-сеть. Одному из серверов понадобились некоторые данные, которые, может быть у кого-то есть, а может — нет. Ну, для определённости, нужно получить снипет сайта по URL. Можно самому дёргать сайт с этой URL. Но сайт может тормозить, может лежать, может быть уже вообще этой страницы нет. Зато инфу для снипета мог уже дёргать какой-нибудь другой сервер нашей сети. Поэтому можно кинуть запрос в сеть. Будет ответ — воспользуемся готовым решением. Нет — тогда уже будем дёргать сами. Результат сохраним и в другой раз, если кто-то в сети сделает такой же запрос, вернём ему наш результат.

Время реакции... Ну, отлично — менее секунды. Удовлетворительно — несколько секунд.

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

Я вижу навскидку такие варианты.

Файловый командный синк через btsync (быстрее и надёжнее) или syncthing+syncthing-inotify (открыто, но менее надёжно и быстро). Клиент шлёт запрос в виде файла в специальном каталоге запросов, изменения в котором мониторят сервера. Обнаружив запрос, парсят, смотрят, есть ли чем ответить и кидают туда же файл с результатом. Клиент всё это время до истечения таймаута проверяет, не пришёл ли результат.

Плюсы — очень простая организация и полная децентрализация. Наш клиент вообще может ничего не знать о серверах. Возможна реализация асинхронной работы (клиент шлёт запрос и отваливает. Монитор изменений через какое-то время находит ответ и засовывает его куда нужно).

Минусы — может быть приличная временнАя задержка. До секунд — легко.

Ещё вариант — соединяем сервера по MQTT-бриджированию. Клиент дёргает один из серверов (он должен знать хотя бы один), шлёт по MQTT команду-запрос и слушает в ожидании ответа.

Плюсы — высокая скорость реакции. Возможность асинхронной работы.

Минусы — привязка к конкретным машинам, сложная логика синхронного клиента (сперва шлём запрос, потом слушаем...)

Вариант с p2p-FS, в которых можно мутабельные данные писать по ключу (FreeNet — может, ещё где-то есть). Скажем, когда мы первый раз получаем данные, потом сохраняем их в сеть по хешу от URL. Клиент же просто пытается получить данные по такому же своему ключу. Нету — тогда получает данные сам и, опять же, сохраняет по ключу.

Плюсы — распределённое хранение, отсутствие привязки к конфигурации сети и т.п.

Минусы — очень медленная работа, особенно в отсутствии файла в сети, невозможность асинхронной работы.

...............

Кто что ещё предложит?

 ,

KRoN73
()

Есть ли альтернатива HTML Tidy, но более тупая? Просто переформатировать HTML.

Форум — Web-development

Нужна софтинка для переформатирования HTML, но не такая умная, как HTML Tidy. Не нужно парсить HTML и параметры, нужно тупо на каждом открывающемся теге делать новую строку и добавлять отступ, на каждом закрывающемся — отступ убирать.

Понятно, что такое навелосипедить на Perl'е не особенно проблематично, но велосипедить не хочется. Нет ли готового решения?

 , tidy,

KRoN73
()

Куда уходит память?

Форум — Admin

На машине всего 4Гб оперативки, ОС 64-х битная и поэтому памяти очень, очень не хватает...

Но куда она девается — не понимаю. Раньше, бывало, просто тупо сложишь всё, что в top'е выводится — вот уже, ±погрешность, вся память. А сейчас? 2Гб занято, но если весь софт из top'а просуммировать, набегает едва ли 800Мб. free тоже не проливает свет. Если перезагружусь — то будет занято что-то за 1Гб. Куда оно уходит, есть мысли? :-/

Иллюстрации:

https://ipfs.io/ipfs/QmZSY6jLggJ9b1k9SL8JtVsjecZFqdq6rZ8TTmH8fUUNMh

https://ipfs.io/ipfs/QmUNEkH6B1qDy6s3fLdPAmuW2xcMMDaj5ep3J6jV6xgXtZ

 , , ,

KRoN73
()

Samba стала работать только при ручном запуске, но не через systemd

Форум — Admin

Есть Ubuntu 15.10. Есть настроенная много лет назад Samba. Сегодня перезапустил smbd и теперь она из systemd не работает:

journalctl:

апр. 09 21:40:22 home-server polkitd(authority=local)[1382]: Registered Authentication Agent for unix-process:30235:272102
апр. 09 21:40:22 home-server systemd[1]: Stopping LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 21:40:22 home-server smbd[30241]: * Stopping SMB/CIFS daemon smbd
апр. 09 21:40:22 home-server smbd[30241]: start-stop-daemon: warning: failed to kill 29719: No such process
апр. 09 21:40:22 home-server avahi-daemon[1307]: Invalid response packet from host 192.168.1.73.
апр. 09 21:40:23 home-server smbd[30241]: ...done.
апр. 09 21:40:23 home-server systemd[1]: Stopped LSB: start Samba SMB/CIFS daemon (smbd).
апр. 09 21:40:23 home-server polkitd(authority=local)[1382]: Unregistered Authentication Agent for unix-process:30235:2721
апр. 09 21:40:25 home-server polkitd(authority=local)[1382]: Registered Authentication Agent for unix-process:30284:272102
апр. 09 21:40:25 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 21:40:25 home-server smbd[30290]: * Starting SMB/CIFS daemon smbd
апр. 09 21:40:25 home-server smbd[30290]: ...done.

systemd:

service smbd status
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)
   Loaded: loaded (/etc/init.d/smbd)
   Active: active (exited) since Сб. 2016-04-09 21:40:25 MSK; 3min 1s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 30241 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS)
  Process: 30290 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

апр. 09 21:40:25 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 21:40:25 home-server smbd[30290]: * Starting SMB/CIFS daemon smbd
апр. 09 21:40:25 home-server smbd[30290]: ...done.
апр. 09 21:40:25 home-server systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).

Статус горит зелёненьким, хотя процесса smbd нет. Логи самой самбы при этом пустые и даже не создаются.

Если же запускать smbd вручную с -F, то всё работает прекрасно.

Куда копать в этом вашем systemd? :-/

 , ,

KRoN73
()

Orange Pi PC и Ubuntu против Wi-Fi RTL8188CUS

Форум — Linux-hardware

Проблема с загрузкой firmware.

[Wed Apr  6 17:07:48 2016] rtl8192cu: Chip version 0x10
[Wed Apr  6 17:07:49 2016] rtl8192cu: MAC address: e8:4e:06:10:2f:bb
[Wed Apr  6 17:07:49 2016] rtl8192cu: Board Type 0
[Wed Apr  6 17:07:49 2016] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
[Wed Apr  6 17:07:49 2016] usbcore: registered new interface driver rtl8192cu
[Wed Apr  6 17:07:49 2016] rtlwifi: Firmware rtlwifi/rtl8192cufw.bin not available

Вроде, гуглится всё без проблем. И linux-firmware-nonfree ставил, /lib/firmware/rtlwifi/rtl8192cufw.bin на месте. И вручную скачивал его — ничего не меняется. Может, в другое место куда класть нужно?

Есть мысли, что ещё попробовать?

 , , ,

KRoN73
()

Rust в объектом Фибоначчи.

Форум — Talks

Давно я к этому своему синтесту работы с объектами не обращался. Но вчера, после годичного забвения, обновлял данные по PHP7 (очень интересен был его рывок) и в голову пришла мысль измерить Rust. Заодно, решил посмотреть, что за язык получился :) На знакомство с языком и написание теста ушло 15 минут, так что, возможно, его качество далеко от идеала. Потому тему и завёл, может, где-то грубо ляпнул. Я даже не знаю до сих пор, как дело в Rust со сборкой мусора обстоит и он эквивалент по этой классификации Java/C-хипового или C-стекового.

Важно! Это не программа для вычисления чисел Фибоначчи, это тест для скорости создания объектов, обращений к свойствам и вызовов методов. Поэтому не нужно делать «алгоритмическую оптимизацию», типа вынесения локальных переменных, отказа от объектов вообще или введения хвостовой рекурсии — просто тогда сразу по формуле Бине посчитать :D

Вот мой первый вариант: https://github.com/Balancer/benchmarks-fib-obj/blob/f6474cbbca83b8ae376c27d5e...

Получилось 0.603 сек., что почти вдвое хуже стекового Си (0.350) и немного лучше Java (0.685) со сборкой мусора.

Результат после оптимизации в топике — 0.329 и у Rust первое место.



Обновлённая таблица: https://github.com/Balancer/benchmarks-fib-obj/wiki/Результат-теста:-i3-2.2ГГц

 , ,

KRoN73
()

Infonesy: Вопросы и проблемы протокола обмена

Форум — Development

Решил попробовать включить в файлы для обмена топиков ещё и UUID постингов. Чтобы приёмная нода сразу могла понять, все ли постинги есть у неё и при необходимости запросить у исходной недостающее (например, когда нода включается в работу поздно, когда идут пополнения уже имеющегося давно топика). В таком духе:

{
    "UUID": "ru.balancer.board.topic.39814",
    "Node": "ru.balancer.board",
    "Title": "G36",
    "Date": "Wed, 14 Jun 2006 03:22:00 +0400",
    "Modify": "Fri, 25 Mar 2016 22:57:26 +0300",
    "Type": "Topic",
    "ForumUUID": "ru.balancer.board.forum.6",
    "Keywords": [
        "армия"
    ],
    "Author": "Stribog",
    "AuthorMD": "059a7f25d4be01ae98f401048f0f2f5b",
    "AuthorEmailMD5": "059a7f25d4be01ae98f401048f0f2f5b",
    "AuthorUUID": "ru.balancer.board.user.8395",
    "Posts": [
        "ru.balancer.board.post.759526",
        "ru.balancer.board.post.759563",
        "ru.balancer.board.post.759910",
        "ru.balancer.board.post.759919",
        "ru.balancer.board.post.4124847",
        "ru.balancer.board.post.4125397",
        "ru.balancer.board.post.4126108",
        "ru.balancer.board.post.4126149",
        "ru.balancer.board.post.4126164",
        "ru.balancer.board.post.4126167",
        "ru.balancer.board.post.4126172",
        "ru.balancer.board.post.4126877",
        "ru.balancer.board.post.4126954",
        "ru.balancer.board.post.4144048",
        "ru.balancer.board.post.4144049",
        "ru.balancer.board.post.4144841",
        "ru.balancer.board.post.4144956"
    ]
}

Проблема — есть много огромных топиков. Так что сразу за 4 дня в обменном репозитории легло 23Мбайт файлов. Это на 876 штук. В то время, как всех остальных файлов (постинги, описания аттачей, форумы, категории) за 14 дней всего на 16Мбайт (16255 штук).

Т.е. основной обменный трафик в этом случае будут составлять файлы постингов.

Не то, чтобы 23Мбайт за 4 дня много (хотя трафика реально много больше, т.к. топики же обновляются с каждым постингом), но как-то выглядит неаккуратно. А ещё есть идея попробовать файлы постингов засовывать в ipfs, и хеши вписывать в файл топика. Чтобы приёмная нода могла постинги уметь прочитать даже при падении исходной ноды без поиска других нод с архивом этих постингов. Это ещё примерно удвоит размер файлов топиков...

Прямо не знаю, что делать :) Наверное, пока лучшая идея не появится, буду, таки, писать и UUID постов и IPFS-хеши... Но — не красиво :-/

Перемещено Klymedy из talks

 , ,

KRoN73
()

KDE Windows — где же у него кнопка^W пакет с настройками?

Форум — General

Дочке хочу под Windows поставить kturtle. На русском. Поставил штатным виндовым инсталлятором пакеты kdeedu и kde-l10n-ru. Интерфейс всё равно английский. Как я понимаю, нужно в системных настройках поставить нужную локаль. Но как? Пакеты с *settings* или *config* не находятся. Как в KDE зовётся пакет с system settings?

 , ,

KRoN73
()

Кто же удерживает каталоге, не давая сделать umount?

Форум — Admin

Наводя порядок в простаивающем LXC-контейнере делал в него chroot. Перед этим, соответственно, монтировал /dev, /sys и /proc. Закончил работу, вышел и... не могу отмонтировать:

 # umount /home/airbase/airbase-lxc/dev
umount: /home/airbase/airbase-lxc/dev: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))


lsof не показывает использование /home/airbase/airbase-lxc/dev

В mount ничего перекрывающего нет:
# mount
...
none on /home/airbase/airbase-lxc/proc type proc (rw)
/dev on /home/airbase/airbase-lxc/dev type none (rw,bind)
/sys on /home/airbase/airbase-lxc/sys type none (rw,bind)
...


Опция -f не помогает.

Есть мысли, куда копать?

 

KRoN73
()

Простой такой вопрос по resync в mdadm/raid1.

Форум — Admin

Если я во время resync в mdadm-зеркале машину перезагружу — процесс продолжится с того же места или начнётся с начала?

 , ,

KRoN73
()

И в очередной раз возвращаясь к теме мониторинга io. Как же найти самые грузящие систему файлы?

Форум — General

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

У нас же iotop показывает только загрузку по процессам. Но это мало и часто бесполезно.

strace и lsof по pid из iotop показывают только факты открытия файлов, но не их активность.

Неужели до сих пор так никто и не придумал, как под Linux посмотреть, работа с какими файлами наиболее сильно грузит io?

Достало. Машина на 30% в io. Львиная доля процессов — nginx. Но nginx обращается к миллиону файлов разных типов в разных каталогах и разделах. Как узнать, какие тормозят больше всего?

С mysql такая же фигня. io-загрузка высокая. Запросы короткие, так что mytop и binlog не позволяют эффективно оценить, какие базы и таблицы грузят систему активнее всего. Мониторинг файлового io позволил бы это понять. Но такое, опять же, доступно мне только под windows. Как сделать это под linux? o_O

Может, у кого-то есть мысли по теме?

 , ,

KRoN73
()

Ubuntu 15.10. После рестарта странное с сетью. И smbd к интерфейсу не цепляется.

Форум — Admin

До вчерашнего дня всё работало как часы. Утром — не работает samba. Вчера на корневом разделе кончалось место (plexmediaserver выжрал 25Гб места :)), с виду после очистки всё работало, но мало ли что. Рестарт самбы не помог, так что рестартовал весь сервер.

К удивлению после рестарта оказался пустой /etc/resolv.conf. Хотя до этого перегружал не раз и всё было ок. Было, вроде, так (по памяти, т.к. сегодня уже редактировал, воюю с глюками):

/etc/network/interfaces

auto lo
iface lo inet loopback

auto enp3s0
iface enp3s0 inet static
  address 192.168.1.3
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameservers 8.8.8.8
  up route add default gw 192.168.1.1

auto enp3s0:0
iface enp3s0:0 inet static
  address 192.168.1.13
  netmask 255.255.255.0

auto lxcbr0
iface lxcbr0 inet static
  address 10.23.1.1
  netmask 255.255.0.0

Потыкался, потыкался, выяснил удивительное. Если добавить dns-nameservers в секцию enp3s0:0 или lxcbr0 — то в resolv.conf запись появляется. При чём берётся она из enp3s0:0 (если ставить разные DNS). Если оставить только в enp3s0:0 — то опять в resolv.conf пусто o_O

В логе ничего особо подозрительного кроме:

марта 09 09:50:33 home-server sh[1063]: SIOCADDRT: File exists
марта 09 09:50:33 home-server sh[1063]: Failed to bring up enp3s0.
марта 09 09:50:33 home-server systemd[1]: ifup@enp3s0.service: Main process exited, code=exited, status=1/FAILURE
марта 09 09:50:33 home-server networking[1064]: RTNETLINK answers: File exists
марта 09 09:50:33 home-server networking[1064]: Failed to bring up enp3s0.
марта 09 09:50:35 home-server kernel: r8169 0000:03:00.0 enp3s0: link up
марта 09 09:50:35 home-server kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp3s0: link becomes ready

В принципе, похоже на двойное поднятие интерфейса, что некрасиво, но обычно не фатально. Откуда лезет и как бороться — непонятно. Интерфейс поднимается, всё, в целом, работает.

Дальше — интереснее. Самба так и не работает. При попытке перезапустить по netstat видно, что на сетевом интерфейсе висит только nmbd, а smbd к сети не цепляется. Хотя демон висит, в логах всё ок:

марта 09 09:52:41 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
-- Subject: Начинается запуск юнита smbd.service
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Начат процесс запуска юнита smbd.service.
марта 09 09:52:41 home-server smbd[6169]: * Starting SMB/CIFS daemon smbd
марта 09 09:52:41 home-server smbd[6169]: ...done.
марта 09 09:52:41 home-server systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).
-- Subject: Запуск юнита smbd.service завершен
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Процесс запуска юнита smbd.service был завершен.
--
-- Результат: done.

По service smbd status тоже всё ок:

● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)
   Loaded: loaded (/etc/init.d/smbd)
   Active: active (exited) since Ср. 2016-03-09 10:00:03 MSK; 11min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 7773 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS)
  Process: 7810 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)
   Memory: 0B
      CPU: 0

марта 09 10:00:03 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
марта 09 10:00:03 home-server smbd[7810]: * Starting SMB/CIFS daemon smbd
марта 09 10:00:03 home-server smbd[7810]: ...done.
марта 09 10:00:03 home-server systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).

В конфиге самбы ничего интересного, он работал много лет, ошибок в логах нет, nmbd на интерфейсе висит.

Ничего не понимаю :-/

 , ,

KRoN73
()

Хрень какая-то с сервером.

Форум — Admin

Есть хост с обычной серверной Ubuntu 14.04 LTS без хитростей.

Есть в ней уйма Docker и LXC-контейнеров.

Сервер без нареканий пахал 3.5 года.

Недавно (две недели назад) начались проблемы. Симптомы:

— В LXC-контейнерах (сразу всех) виснет php5-fpm. Виснет так, что ни перезапустить, ни даже убить. Процессы даже в зомби не превращаются. Просто попытки их убивать ни к чему не приводят. Попытка перезапустить сервис приводит к завису процесса перезапуска. Попытка остановить или убить LXC-контейнер приводит к завису lxc-stop/lxc-kill.

— Всё остальное работает нормально: — И nginx внутри LXC отдаёт данные корректно (кроме того, что обращение php выдаёт 502-ю ошибку). — И Docker-контейнеры работают (в т.ч. с PHP) и перезапускаются штатно. — И хост весь рабочий. — Диски в отличном состоянии, в dmesg пусто. — Загрузка системы после зависа нагруженных тяжёлых LXC-контейнеров падает практически до нуля. CPU — почти 100% idle, дисковая активность — тоже.

Поскольку никакие средства lxc не оживляют, сервер приходится перезапускать. Перезапуск проходит штатно, после перезапуска всё работает.

Ещё два замечания:

У меня висят cron-процессы с традицонной много-много лет назад добавленной защитой от повторного запуска, если старый не отработал до конца. Это ещё в нулевых, когда cron-скрипты минутные за минуту иногда не успевали отработать. Код проверки такой:

if [ ! -z "`ps -C \`basename $0\` --no-headers -o "pid,ppid,sid,comm"|grep -v "$$ "|grep -v "<defunct>"`" ]; then
   echo script is already running . abort
   exit 0
fi

Так вот, где-то с месяц назад (точно не помню) cron-скрипыт иногда стали «зависать». Скрипт всё сделал, но процесс висит (кажется, уже не помню точные симптомы). Новый скрипт поэтому не запускается. Я пожал плечами и убрал эту проверку. Всё стало работать нормально. Машина к тому времени была 160 дней без рестарта, подумал, мало ли какие-то проблемы стали в ядре накапливаться и забил. Теперь думаю, не связано ли оно как-то вместе...

После этих зависов и рестартов трижды были проблемы madm-raid. Первый раз я в попытках понять, почему висят php-процессы в контейнере доигрался до того, что сервер не перезапускался. Пришлось его удалённо ресетить. Через какое-то время после перезапуска (специально не контролировал) обнаружил, что вся активность идёт на одном из hdd, второй — стоит. Беглый просмотр показал, что зеркало развалилось и работает только один том. С какой точно формулировкой проблемы была не помню. Удалил отвалившийся том, добавил снова — всё завелось штатно и без проблем. Конечно, тщательно изучил smartctl и т.п. — всё было ок. Т.е., скорее всего, проблема была где-то в жёстком перезапуске.

Добавил мониторинг mdam в munin.

После второго рестарта, уже мягкого, всё было ок пару дней. Потом — munin выдал alert. Смотрю — зеркало развалилось. На этот раз без ошибок, просто hdd оказался исключённым o_O Включил в зеркало, сразу подхватился, засинхронизировался, всё стало ок.

После третьего рестарта, не сразу, а где-то через пол-дня, munin опять сигнализирует. На этот раз «жёлтеньким», типа, предупреждением. Смотрю — raid в процессе восстановления снова. Но на этот раз сам. Конечно, тренд позитивный, с полного развала к лёгкой починке и потом к самовосстановлению, но какого фига? Я бы понял, если бы проблема лезла сразу после рестарта. Но она не синхронна с зависами/перезапусками...

Сегодня был 4-й завис. Опять всё чисто, никаких проблем. Специально тщательно потыркал палочкой Docker-контейнеры, работают как часы. А вот в LXC — опять мёртвые php-fpm. И опять пришлось перезапускать...

Есть мысли, что это может быть? :) И как с этим бороться, кроме навешивания watchdog (благо, сервер рестартует нормально и хост остаётся работоспособен).

 , ,

KRoN73
()

STM32. Есть ли что-то типа NodeMCU?

Форум — Talks

Чисто по затратам времени, при отладке очень неудобно на STM32 каждый раз заливать всю прошивку. Да и цеплять для заливки программатор или serial ломает. В то время, как на ESP8266 очень понравилась идея NodeMCU — тупо заливаем несколько строк кода на Lua и всё ок.

Нет ли чего-то подобного под STM32? Т.е. некая ОС (плевать, пусть хоть 90% места занимает), способная исполнять скрипты (пофиг на чём — Lua, Python, JS). Которые заливаются, идеально, через что-нибудь типа NRF24L01 (раз Wi-Fi на борту нет), но, в крайнем случае через родной USB. Вариант с Serial, как писал, уже не катит — громоздко.

 ,

KRoN73
()

curl wttr.in, ifcfg.me, whatthecommit.com — ещё примеры есть? :)

Форум — Talks

Начал коллекционировать curl-сайты: http://www.wrk.ru/tech/forum/2016/02/t92589--cli-internet-vsyakie-poleznye-ni...

Есть ещё что-то подобное?

 , , ,

KRoN73
()

STM32 и USB

Форум — Talks

Балуюсь тут с китайским STM32F103C8T6

http://g01.a.alicdn.com/kf/HTB1pe5ILXXXXXXcaXXXq6xXFXXXb/220352482/HTB1pe5ILX...

Не пойму, USB на нём разведён, системой видится. Но не определяется как опознанное устройство. Гугление на тему программирование обычно приводит только решения с подключением внешнего USB-UART. Понятно, что не проблема, но зачем тогда этому модулю полная разводка USB? Ведь не для одного же питания? :)

 , , ,

KRoN73
()

Golang в Revel и Gin-gonic почему-то работает медленнее PHP :-/

Форум — Web-development

Фигня какая-то. Делаю тут для изучения несложную задачку (взять html, подсунуть параметр из GET-запроса) на Golang. В результате, запросов в секунду:

* PHP (голый) — до 12000
* Golang/Revel — до 8700
* Golang/Gin-gonic — до 4800

Удивительно, во-первых, что Revel быстрее Gin'а, обычно считается наоборот. Но это ладно.

Вот каким макаром PHP получается быстрее — не понимаю. Т.е. цифра вообще какая-то нереальная в моём привычном мировоззрении... При чём не 7.0 какой-нибудь или hhvm, а обычный 5.4.45, fpm.

Может, фишка в том, что PHP используется классически, html-код со вставкой, который один раз компилируется и потом берётся из кеша, а golang-фреймворки так не умеют и производят чтение/парсинг на каждом запросе? Или вопрос в оптимизации многоядерности, т.к. у php-fpm уйма инстансов, грузящих все ядра, а у Revel/Gin собственный менеджер и фиг знает, как он там распределяет загрузку?

 , , , ,

KRoN73
()

RSS подписка на новые темы