LINUX.ORG.RU

Избранные сообщения Nao

strace 4.23

Новости — Open Source
Группа Open Source

strace — утилита для диагностики и отладки программ для ОС, использующих ядро Linux. Она позволяет отслеживать и (начиная с версии 4.15) вмешиваться в процесс взаимодействия программы и ядра, включая происходящие системные вызовы, возникающие сигналы и изменения состояния процесса. Для своей работы strace использует механизм ptrace. Начиная с версии 4.13, формирование выпусков программы синхронизировано с выходом новых версий Linux.

( Список основных изменений… )

>>> Полный список изменений

>>> Сайт проекта

>>> Скачать

>>> Репозиторий (GitHub)

>>> Подробности

 , ,

eSyr ()

Распаковка обновлений 1С падает при старте по incron, при ручном запуске работает нормально

Форум — Admin

Т.к. поговаривают, что нет у 1С консольного распаковщика, начал городить монстра.

Виртуалка с CentOS7 и автоматическим входом в XFCE под именем robot. По incron для новых файлов в определённом каталоге запускается скрипт распаковки и …не работает. Руками его запускаю - всё хорошо. Хоть из консоли в иксах, хоть с другого tty, хоть по ssh. По incron setup.x86_64 во время распаковки падает с «segmentation fault». Вот кусок отвечающий за распаковку:

#!/bin/bash
TMP=`mktemp -d`
…
export DISPLAY=:0
cd $TMP
./setup --keep --noexec --target $TMP

./setup.x86_64 usecwd &
sleep 2
xdotool mousemove 611 565 click 1 sleep 0.1 click 1 sleep 10 mousemove 446 414 click 1 sleep 1 mousemove 611 565 click 1
…
Падает ≈ через 3-5 секунд после того, как xdootool сделает второй клик.

Вместо ${TMP}/setup.x86_64 usecwd & пробовал xfce4-terminal -e /tmp/run.sh, в котором

#!/bin/bash
cd ${TMP}
./setup.x86_64 usecwd
sleep 60
Результат тот же - только ещё минуту висит сообщение о падении setup.x86_64.

Что сделать, чтобы оно по incron сработало?

UPD: помогло добавление LANG=en_US.UTF-8 перед вызовом распаковщика

 , ,

mogwai ()

1c очень долго открывает файлы на NFS, CIFS

Форум — General

По сути вопрос мало касается самой 1с.
Открываю в конфигураторе 1С 8.3 файл конфигурации (*.cf). Размером он около 200-300 Мб.

Если открывать с локальной фс, то открытие происходит за несколько секунд.
Если открывать с nfs или cifs то открытие занимает минут 10 (sic!).

Моя машина и NAS с файлами находятся в сети 100Mbit/s.
Копирование файла с NFS на локальную фс идёт со скоростью близкой к 80-90Mbit/s.

Далее рассматриваем открытие файла на nfs3:
С помощью strace -cw выясняем что очень долго выполняется read:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 57.41 2007.728556      478600      4195      1538 futex
 28.74 1005.053317      434900      2311           epoll_wait
 13.04  455.978200         596    764976        25 read
  0.41   14.455605          14   1038231           lseek
(Насколько я понял futex и epoll_wait тут вообще не причём, они похоже не связаны с тормозами и время исполнения у них слишком большое)

Если просто сделать strace и посмотреть что делается с нашим файловым дескриптором то можно увидеть что-то такое:

open("/mnt/nas/foo/bar/1Cv8.cf", O_RDONLY) = 83 <0.000631>
fcntl(83, F_GETFD)                = 0 <0.000004>
fcntl(83, F_SETFD, FD_CLOEXEC)    = 0 <0.000004>
flock(83, LOCK_SH|LOCK_NB)        = 0 <0.000007>
open("/mnt/nas/foo/bar/1Cv8.cf", O_RDWR) = 84 <0.000616>
fcntl(84, F_GETFD)                = 0 <0.000017>
fcntl(84, F_SETFD, FD_CLOEXEC)    = 0 <0.000004>
fcntl(84, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=4294967296, len=1}) = 0 <0.000012>
Целых два дескриптора на один файл.
На кой чёрт открывается второй с O_RDWR я понятия не имею, ибо менять файл 1С-ка всё равно не может.

И потом идёт куча таких вызовов:

lseek(83, 0, SEEK_END)            = 211404996 <0.000005>
lseek(83, 16, SEEK_SET)           = 16 <0.000004>
read(83, "\r\n00057a80 00057a80 7fffffff \r\n", 31) = 31 <0.000007>
lseek(83, 47, SEEK_SET)           = 47 <0.000004>
read(83, "\257z\5\0.{\5\0\377\377\377\177", 12) = 12 <0.000004>
lseek(83, 0, SEEK_END)            = 211404996 <0.000004>
lseek(83, 359087, SEEK_SET)       = 359087 <0.000003>
read(83, "\r\n00000060 00000060 7fffffff \r\n", 31) = 31 <0.001051>

Т.е. мы постоянно прыгаем в разные места файла и делаем read небольшими порциями (32 байта и меньше).
Таким образом читается весь файл (200-300 мегабайт).

Насколько я понимаю сетевые фс NFS/CIFS на такое не рассчитаны?

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

Чтобы всё работало почти так же быстро как работает локально делаем следующее:

  1. Настраиваем FS-Cache
  2. Монтируем NFS со следующими опциями: vers=4,fsc,ro

fsc - включаем кэширование через FS-Cache
vers=4 - на третьей кэширование с нашим файлом не работает, по-видимому из-за того что 1с открывает дескриптор на чтение/запись; в документации по FS-Cache написано что на NFSv3 кэш на файле отрубается пока открыт R/W дескриптор, а на NFSv4 всё ок.
ro - связано с одним тупым багом, из-за которого нельзя из 1с открывать файлы на NFSv4 если она смонтирована в r/w, к сабжу не относится.

С CIFS я ничего не придумал, хотя мне он особо и не нужен.
С NFSv3 тоже ничего не получается из-за того что файл открывается r/w и кэширование не работает.

 , , ,

Nao ()

Сайт для скринкастов терминальных сессий

Форум — Talks

Наткнулся случайно на сайт: https://asciinema.org/
Это вроде как script+wgetpaste+pastebin.

Можно записывать терминальные сессии типо как это делает script и выкладывать на их сайт.
Прелесть в том что это отображается не как видео, а как текст, который можно копипастить.
Для записи нужно поставить тузлу на питоне (есть в некоторых дистрах, например в Gentoo).
Может кому-то понадобится такое.


Пример:
http://asciinema.org/a/ad3lgm6hl8ocqc7h5owpt3486

 ,

Nao ()

Пластилиновый квест Armikrog

Новости — Игры
Группа Игры

Создатели игр The Neverhood и Earthworm Jim объявили сбор средств на выпуск новой игры с поддержкой GNU/Linux. Главный герой и его верный говорящий четвероногий друг терпят крушение на космическом корабле. Необычные враги и хорошо вылепленный мир прилагается. Классический квест сулит окружающему миру тонны использованного пластилина и горы веселья.

>>> Ссылка на kickstarter

 

Evgueni ()

network discovering

Форум — Admin

subj. Ну очень надо простую в использовании тулзу для «изучения сети». Нечто что можно поставить на нотебук, за день просканить сеть,чутка подстроить и оставить на неделю чтобы снять всякие показания (нагрузки на каналы, наличие конфликтов, потери и так далее).

пока-что всё испробованное (zabbix,nagion,netdisco,wiredmaps) либо требует долгой предварительной настройки, либо не умеет мониторить автоматом-обнаруженное. И абсолютно всё не умеет работать в оперативных условиях - нет use-case «новая сеть-изучить-уточнить-снимать статистику-сохранить». Все они ориентированны на то что ставятся сразу и навсегда на выделенный сервер подконтрольной сети.

MKuznetsov ()

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

Форум — Talks

Звук модема, подключающегося на 9600 бод, впился в ухо ВП, проник в его мозг и заставил открыть глаза. «Что-то случилось» — пронеслось в мозгу ВП, зрение постепенно возвращалось к нему. Кое-как поднявшись на 4-ре лапы и проклиная Дарвина, ВП пополз к столу, но по дороге вляпался во что-то липкое и вонючее. Надо завязывать жить на первом этаже подумал ВП, глядя как дождь месит говно по ту сторону окна. Говна изрядно прибыло: того и гляди дойдет до форточки и прорвется внутрь. В последнюю осушительную канаву ВП только вчера закопал новую линию оптоволокна. После чего всю канаву закатал в асфальт, чтобы кабель не сперли пчелы, что было весьма вероятно, т.к. этот кабель он сам срезал у пчелиного провайдера «пчел-нет» два дня назад. Оттерев лапу о корпус компа, который кролик принес ему неделю назад на ремонт, ВП продолжил путь к столу. Мозг его лихорадочно работал. Дело в том, что звук модема он не слышал уже десять лет, с тех пор, как через лес был проложен магистральный кабель федерального значения, к которому он и подключился через местный филиал пчел-нета. Но модем орал, и это значит, что был задействован резервный канал связи. Значит был взлом, его голландский сервер взломали, хотя защита последней надежды сработала, и все что было в базах сейчас шифруется с новыми кодами, а через модем сливаются эти новые коды и логи. Но кто, как, и главное, что они успели там увидеть? Официально на сервере крутился сайт с форумом, но это было прикрытие. ВП ухватился за край стула попытался подняться, но стул перевернулся, задев горшок с окурками, который и упал на голову ВП, отправив его в короткий нокаут.

...

 

soomrack ()