LINUX.ORG.RU

Сообщения Nao

 

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
()

Провайдер блочит https или же просто тупит сервер?

Форум — General

Предыстория:

( читать дальше... )



Проблема в том что невозможно установить соединение с https://riotgamespatcher-a.akamaihd.net
Это какой-то контент провайдер, и там видимо используется GeoIP, т.к. со своего компа и с VPS в другой стране получаю разные ip для этого хоста.
Выбираю IP 88.221.144.146 для чистоты эксперимента.

Делаю:

openssl s_client -connect 88.221.144.146:443

Вывод:
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 308 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1463088856
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

Вывод tcpdump:
01:53:12.535528 IP 192.168.1.2.51349 > 88.221.144.146.443: Flags [S], seq 1174005864, win 29200, options [mss 1460,sackOK,TS val 148474721 ecr 0,nop,wscale 7], length 0
01:53:12.617011 IP 88.221.144.146.443 > 192.168.1.2.51349: Flags [S.], seq 3327165184, ack 1174005865, win 28960, options [mss 1460,sackOK,TS val 1808023594 ecr 148474721,nop,wscale 5], length 0
01:53:12.617045 IP 192.168.1.2.51349 > 88.221.144.146.443: Flags [.], ack 1, win 229, options [nop,nop,TS val 148474802 ecr 1808023594], length 0
01:53:12.617614 IP 192.168.1.2.51349 > 88.221.144.146.443: Flags [P.], seq 1:309, ack 1, win 229, options [nop,nop,TS val 148474803 ecr 1808023594], length 308
01:53:12.699505 IP 88.221.144.146.443 > 192.168.1.2.51349: Flags [.], ack 309, win 939, options [nop,nop,TS val 1808023676 ecr 148474803], length 0
01:53:12.701212 IP 88.221.144.146.443 > 192.168.1.2.51349: Flags [R], seq 3327165185, win 0, length 0
01:53:12.701365 IP 88.221.144.146.443 > 192.168.1.2.51349: Flags [R], seq 3327166625, win 0, length 0
01:53:12.701425 IP 88.221.144.146.443 > 192.168.1.2.51349: Flags [R], seq 3327168065, win 0, length 0

В конце три подозрительных RST пакета.
Такое бывает при нормальном закрытии соединения?

Тоже самое с VPS проходит без ошибок.
Это меня провайдер фильтрует как-то криво или может просто akamaihd.net тупит?
Провайдер - Башинформсвязь, он вроде под Ростелекомом.

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

 , , ,

Nao
()

Посоветуйте ситему для автоматизации сборки проекта на 1С

Форум — General

Хочу найти замену gnu make для проекта. Проект, внезапно, написан на 1С, так что интеграция системы сборки с языком/компилятором отпадает.

Надо:
Запускать бинарь 1С с кучей разных параметров, на входе будут файлы/каталоги, на выходе файлы/каталоги. Запускать много раз с разными параметрами.
Должно работать на linux и windows. Причём на оффтопике желательно без костылей вроде cygwin.
Уметь в зависимости вида «файл» и «каталог».
Уметь в параллельность.
На выходе может быть каталог, а не файл.
Уметь удалять выходные файлы/каталоги в случае ошибки.
Уметь простые, os-независимые файловые операции, типо скопировать файл и т.д.
Чуть более вменяемый синтаксис чем у gnu make.

Еще есть такая особенность: у меня 5 таких однотипных проектов, правила сборки которых почти одинаковые.
Сейчас для них есть 5 мейкфайлов плюс 1 общий, который подключается через include.
Выглядит всё это не очень красиво.
Возможно нужна какая-то шаблонизация(?). Не придумал ещё как это лучше сделать.

 , build automation,

Nao
()

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

Форум — Talks

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

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


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

 ,

Nao
()

Как безопасно разместить много баз 1С:Предприятия на одном сервере?

Форум — General

Дано.

Много организаций (клиентов) с небольшим кол-вом сотрудников (пользователей). Клиентов например 50-100, пользователей 1-3 штуки на клиента. Конфигурация основанная на БП 3.0, платформа 8.3. Один клиент - одна отдельная база.

Нужно.

Максимально дёшево разместить их на одной виртуальной машине.

Что я пытаюсь сделать.

По причине экономии отметается клиент-серверный вариант и 1cfresh. Используем файловый вариант, для каждого клиента создаём по базе и публикуем их через веб-сервер. 1С работает только с веб-сервером Apache 2.0, 2.2 (2.4 не поддерживается). Используем 2.2.

К сожалению такой сетап очень несекьюрен. Если клиент каким-то образом получит возможность выполнять произвольный код в рамках конфигурации, то он спокойно сможет гулять по файловой системе и смотреть/портить чужие базы. В принципе, если не давать административные права в базе, то загрузка всяких внешних обработок ДОЛЖНА быть ограничена. Но зная какое решето БП3.0 и сама платформа, у меня на это надежды нет.

Работа 1С:Предприятия через веб-сервер выглядит вкратце так. В конфиг апача добавляется:

LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap22.so"

Alias "/demo" "/var/www/html/demo/"
<Directory "/var/www/html/demo/">
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/html/demo/default.vrd"
</Directory>

В default.vrd прописываются настройки для 1с, в частности расположение каталога с базой, например /srv/1c/demo/

В итоге 1С:Предприятие работает внутри одного процесса httpd, который читает/пишет в каталог с базой /srv/1c/demo/ .

Разделение через apache2-mpm-itk

Пробовал использовать apache2-mpm-itk. Для каждого клиента создал отдельного unix-пользователя и виртуальный хост. Далее с помощью параметра AssignUserID в апаче, назначил каждому виртуальном хосту своего пользователя. Каждому пользователю дал права 700 на директорию со своей базой. В итоге разделение прав получилось сделать, но к великому сожалению платформа стала работать крайне нестабильно. Процессы httpd начали падать с ошибкой «child died with signal 11». От этого варианта пришлось отказаться.

Другие варианты с апачем - mpm-peruser мёртв, остальные mpm не позволяют запускать процессы httpd от разных пользователей, suexec не подходит, т.к. он работает только с cgi.

LXC или OpenVZ

Другой вариант, посадить каждого клиента в свой контейнер, со своей базой и своим апачем. Пока опыта работы с этими технологиями у меня нет, буду курить.
Какой тип контейнеров выбрать?
Какой дистрибутив выбрать в качестве хоста?
В качестве «гостя» нужен дистрибутив с apache 2.2 и с пакетным менеджером умеющим rpm/deb, сейчас использую Ubuntu 12.04 LTS.

Может есть другие варианты решения?

 , ,

Nao
()

Посоветуйте android приложение для удалённого управления

Форум — Mobile

Есть телефон с android и домашний сервак с линуксом которые находятся в одной локалке.

Нужно что бы можно было нажать на телефоне одну кнопку и на серваке выполнилось бы какое-то, заранее заданное действие.
(ну к примеру пусть будет выключение, т.е. команда poweroff)

Протокол взаимодействия может быть каким-угодно, подойдёт хоть SYN пакет на определённые порты или HTTP запрос.

Может уже есть какое приложение под android, которое выводит к примеру виджет с кнопками на рабочий стол и позволяет задать для них какие-то действия типо HTTP GET.

 

Nao
()

Помогите выбрать телефон

Форум — Talks

Решил отправить на пенсию свой древний Motorola C650 и купить себе что-нибудь по-современнее.

Пока выбор между следующими моделями:
Motorola Milestone, Motorola Milestone 2, Nokia N900 (б/у).

Стоит ли брать старичка N900? Я так понимаю Maemo трупик, а как насчёт MeeGoo? как он в сравнении с Андроидом?
Стоит ли брать б/у N900 за 10 килорублей? На вид вроде выглядит свеже, не потёрто.

Обязательно наличие GPS и какого-нибудь более-менее вменяемого ПО для навигации по этому бренному миру, ибо у меня географический кретинизм.
Руссификация интерфейса и клавы не принципиальна (однако возможность набирать киррилицу хотелось бы иметь).
Хочу взять именно с клавиатуркой. Может посоветуете ещё что-нибудь?

Nao
()

Исчезло сообщение

Форум — Linux-org-ru

В теме http://www.linux.org.ru/news/opensource/6421713 было сообщение:

>Я думал в сторону замены торрентов. Если файло тонким слоем размазано по сети, то бороться с пиратством станет крайне затруднительно))

PerfectDark
tommy *** (25.06.2011 10:57:39)

Я нажал на ответить, потом отвлёкся на пару минут, затем написал сообщение и отправил его. Сообщение не появилось и сабжевое сообщение из топика тоже исчезло.

В удалённых его нет.

URL при ответе был такой: http://www.linux.org.ru/add_comment.jsp?topic=6421713&replyto=6423945 Если пройти по этой ссылке то сообщение как бы есть.

Nao
()

Временный номер для получения sms-ки?

Форум — Talks

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

Вводить свой реальный номер нет желания.

Есть ли какие-нибудь сервисы которые бы мне дали телефонный номер (временный или постоянный) с возожностью форвардинга входящих смс? Сервис желательно халявный.

Нашёл junksms.com - но он похоже не рабочий.
Всякие voip которые предоставляют телефонный номер - непонятно будут ли форвардится смс.
Купить левую симку - впринципе вариант, но хотелось бы послушать другие.

Nao
()

[специалистам по всему][ихтиологам]Что за рыба?

Форум — Talks

Вот купили рыбку, да забыли название. Не подскажете что это за зверь? Скорее всего что-то банальное.
http://ompldr.org/vNjVwdg/P1020954.JPG

 

Nao
()

[hal] Как добавить опции автомонтирования в Ubuntu?

Форум — Desktop

Ubuntu 10.10
Хочется сделать umask=000 на все подключаемые хотплугом партиции.

После гугления добавил вот такую штуку в /etc/hal/fdi/policy/20-foo.fdi:

<device>
  <match key="block.is_volume" bool="true">
    <match key="@block.storage_device:storage.hotpluggable" bool="true">
      <merge key="volume.policy.mount_option.umask" type="string">000</merge>
    </match>
    <match key="@block.storage_device:storage.removable" bool="true">
      <merge key="volume.policy.mount_option.umask" type="string">000</merge>
    </match>
  </match>
</device>

И судя по lshw они послушно появляются на нужных партициях:

  volume.policy.mount_option.umask = '000'  (string)

Но на самом деле опция не применяется и в выводе mount этих опций нет:

/dev/sdb1 on /media/foo type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

Может быть то что я нашёл устарело и сейчас нужно использовать другие ключи или может вообще это настраивается не через hal?

fstab, pmount и прочее не предлагать

 

Nao
()

Бессмысленный спам

Форум — Talks

В последнее время зачастил всякого рода спам в котором нет ни ссылок ни телефонов, ни вообще чего-то внятного:

Subject: That's me
Date: Mon, 6 Sep 2010 20:52:57 +0300
X-Sender: bounce@m2.newproduct06.in
Errors-To: bounce@m2.newproduct06.in
From: John Smith <JohnSmith635241@yahoo.fr>
Reply-to: John Smith <JohnSmith635241@yahoo.fr>
Message-ID: <898d5be03af1e8548cc8ff8af4ba5b74@m2.newproduct06.in>
X-Priority: 3
X-Mailer: oemPro
X-Mailer-MsgId: bmFvLm5ha2FzaGltYUBnbWFpbC5jb20=
X-Mailer-CSID: NV80
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"

Hi, my name is John Smith and I am happy !

В чём смысл такого спама? Или уже спам ради спама? :)

Nao
()

[фичреквест] А как централизированно управлять избранными топиками?

Форум — Linux-org-ru

Собственно сабж. Хотелось бы видеть список этих топиков и возможность оттуда их убирать.

 

Nao
()

Предложение: Раздел для *BSD и iZENа туда посадить

Форум — Linux-org-ru

Наверное ни для кого не секрет что товарищь iZEN любит писать бред про Линукс.
Нет, ну ладно человек не знает, но зачем отвечать на технические вопросы если сам в теме нифига не разбираешься? Более того, он совершенно не учится на своих ошибках и нёс, несёт и будет нести такую же пургу всегда.

BSD? Отлично, в этом он хорошо разбирается (объективно оценить сам не могу). Так вот, было бы гораздо больше пользы от человека если бы он сидел там у себя в этом разделе и там помогал/обсуждал/спрашивал и другим не мешал.
Раз уж так сложилось что мы тут и BSD системы обсуждаем.

Предлагаю:

  • Создать раздел BSD.
  • Сделать iZEN`у ридолнли на все технические разделы кроме собственно BSD и Development. (ну может чего-то ещё, но general, admin и install закрыть точно)

Насколько я понимаю что в движке ЛОРа нет такой возможности, но ведь реализовать это не так сложно, да?

Конечно он может писать под анонимусом, но мы же все тут честные люди и постим только под своим аккаунтом :)

Nao
()

[BSD] FreeBSD STABLE-6.2: Обновить или поставить с нуля?

Форум — General

Есть 6.2-STABLE, её уже несколько лет никто не трогал/обновлял. С одной стороны конечно «работает - не трогай», но с другой стороны както ссыкотно то что система стоит без секьюрити апдейтов.
Всё осложняется ещё тем, что имеется в основном удалённый доступ к системе.
На месте конечно есть человек, но он соображает слабо и может действовать только по чётко заданному алгоритму.

Возникает вопрос: какой путь мне лучше выбрать?
1) Обновить систему до 8.0. Насколько я понимаю что обновлять мне придётся в несколько этапов.
Сложность в том, что я навыков работы (и тем более обновления) FreeBSD имею мало, по этому будет довольно трудно исправлять какие-то косяки если удалённого доступа не будет.
2) Забекапить существующее и поставить систему (8.0) с нуля. Думаю смогу объяснять удалённому человеку пошагово что и как делать (паралельно ставя тот же релиз у себя) и довести его до поднятия инета и ssh.
Заодно смогу перевести всё на хвалёный ZFS.
3) Забить и не трогать
4) ??? другие варианты?

Сервер является шлюзом в инет (+сквид), почтовиком, и днс-сервером.

Вариант «Поставить Линукс» просьба не предлагать.

 

Nao
()

GoogleCL - CLI утилита для работы с сервисами Google

Новости — Интернет
Группа Интернет

Google в своём блоге анонсировала утилиту для работы с сервисами Google через командную строку под названием GoogleCL

Она позволяет автоматизировать такие задачи как постинг в Blogger, добавление событий в Calendar или редактирование документов в Google Docs.

Например закачать директорию с фотографиями в Picasa теперь можно так:

$ google picasa create --title "My album" ~/Photos/vacation/*.jpg

Ещё примеры использования:

$ google blogger post --blog "My blog" --tags "python, googlecl, development" my_post.html
$ google calendar add "Lunch with Jason tomorrow at noon"
$ google docs edit --title "Shopping list" --editor vim

GoogleCl написана на языке Python и использует библиотеку gdata для работы с Google Data API.
Утилита опубликована под лицензией Apache v2.0.

Скачать:

Домашняя страница GoogleCL

>>> Оригинальный анонс в блоге Google (на английском языке)

 , ,

Nao
()

Посоветуйте сервис для [техно]блога

Форум — Talks

Решил тут завести блог. Тематика думаю в основном будет айтишная, ЖЖ (про жизнь, етц) писать нет желания. Язык думаю будет в основном русский (но возможно буду писать и на инглише немного).

Соответственно сабж. Щупал Blogger, wordpress... что ещё посоветуете? Интересует конечно не софт, а именно готовый сервис.

Nao
()

[Qt][нуб] как переопределить paintEvent у виджета

Форум — Development

Начал изучать qt и почти в самом начале наткнулся на фигню которую никак не могу понять.

Выбрал qdevelop в качестве IDE. Сделал формочку с помощью qt designer. на формочке - один виджет (Graph).

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

class Ui_MainWindow
{
public:
    ...
    QWidget *Graph;
    ...

    void setupUi(QMainWindow *MainWindow)
    {
        ...
        centralwidget = new QWidget(MainWindow);
        ...
        Graph = new QWidget(centralwidget);
        ...
        QMetaObject::connectSlotsByName(MainWindow);
    }
};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

Этот код сгенерен и менять его я как-бы не могу.

Теперь я хочу переопределить paintEvent() у Graph чтобы что-нибудь там нарисовать.
Но беда в том, что мне получается доступен для изменения только экземпляр класса QWidget, которого зовут *Graph.

Как мне переопределить paintEvent у *Graph?
Переписывать весь setupUi заново? (при любой модификации формы придётся заниматься каждый раз копипастингом)
Или qt designer годится только для того чтобы сделать формочку, взять нагенеренный код и менять его? (думаю всё не так всё же)

 ,

Nao
()

[предложение] smart-questions на форму создания нового топика

Форум — Linux-org-ru

В свете тем подобных этой: http://www.linux.org.ru/forum/general/4902395 предлагаю добавить на страницу создания новой темы (add.jsp) ссылку на этот хауту: http://segfault.kiev.ua/smart-questions-ru.html

Конечно вероятность того, что целевая аудитория этого хауту пройдёт по этой ссылке и прочитает его крайне мала, но может всё-таки поможет хотя бы чуть-чуть?..

 

Nao
()

[lorgoogle] А посоветуйте музыку, чтобы со скрипкой

Форум — Talks

Слушаю тут OST из Kara no Kyoukai и вот понравилась эта композиция: http://omploader.org/vM281dw/16%20M22.ogg

Для Ъ: там скрипка.

Посоветуйте что-нибудь эдакое со скрипкой. Но чтобы не совсем размеренно-грустное, а что-то по-живее. Наличие фортепиано приветствуется, наличие вокала который орёт громче самой музыки не приветствуется.

З.Ы. С линуксом вопрос связан... ну хотя-бы потому что я буду заливать музыку на плеер через комп с Линуксом :)

 

Nao
()

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