Никакого "размышления" там не вижу - вижу только сугубо технический узко-узкоспециализированный междусобойчик скромный на тему какого-то курсового-лабораторного замера, ни коем образом не имеющего отношения к скорости работы/взаимообмена по разным "пайпам-сокетам" в 1С-SQL.
Вижу только слова похожие в названиях переменных.
Товарищ что-то написал для себя, задействовал неизвестные механизмы неизвестного происхождения на неком "скрываемом" им языке:
это у него "работа через Socket":
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
это - якобы через "Pipes":
NamedPipeServerStream server = new NamedPipeServerStream("TestPipe", PipeDirection.InOut, 1,
PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 1024 * 1024, 1024 * 1024);
,
передал им самим придуманные "пакеты данных", что-то там замерил (видимо, скорость выполнения своего кода в среде, которая предоставляет какие-то "new Socket" и "new NamedPipeServerStream") - и вот, опа! - получил разницу в 7 раз в пользу своих "трубок".
Я бы на его месте счетчик-то умножил сразу на 1000 - чтоб безповоротно и безоговорочно в обмене победили "pipes".
Какая разница, как и какие "результаты" получать - главное, че-то получить!
Первое правило студентов.
Да и умные люди там нисколько не воспринимают предоставленную статью как "скорость обмена технологиии Pipes против Sokets" ибо прекрасно понимают цель и тему статьи, и их ни коим образом не обмануло громкое название "IPC: сокеты против именованных каналов", в отличие от 1сников.
И только 1сники думают, и дуреют при этом от собственных дум :), что именно так и таким образом, и именно этим кодом образуются "pipes" и "sockets" при обмене 1С с БД в Windows, с задействованием того или другого.
Кстати, и статья "И снова о скорости работы 1с 8.х + тест от Гилева", и приводимые везде им самим в качестве доказательств "тесты скорости" Sanfoto - тоже из этого же ряда: померяно неизвестно что, неизвестно чем, вовсю густо используется терминология "Shared Memory" и "TCP" (обозначающие в статье все, что угодно, но никак не сетевые/обмена технологии - да это и не требуется, ведь цель их постоянного использования - дать "факт-базу" и "обоснование" цифирям) получен некий непонятый получившим его результат, но зато - цифирь - вот она, 1С рулит, а в pipes - так и вовсе в космос улетает.
примерно - чтобы 1С начала использовать SQL как СУБД хотя бы процентов на 80, нужно полностью переписать всю 1С с кардинальной сменой концепции и ориентации.
Вот и считайте, во сколько эжто обойдется.
два раза перечитал, но так и не понял о чем сей опус. Автор хотел похвастаться знанием словечек pipes, sockets и т.д.?
Так для большинства 1С-ников это бессмысленный набор букв.
(3) demarine,
вы про что? если про открытие этой темы - то прочтите первоначальную, хотя бы комментарии конца 2 - всю 3-ю страницы.
Там начало обсуждения.
для меня такие люди всего лишь Новички)) и СПЕЦИАЛИСТАМИ их назвать никак нельзя))
вот, здрасьте, пожалуйста
1снег - это прослойка между юзерами и "компьютер артс"
"лицо компьютер артс", если угодно
признак специалиста для него - это умение ткнуть кувалдой в скрипт 1с, чтобы юзеры буратинили дальше свои циферки
определить, что затык происходит откуда-то из "райрсов и сокетов" и корректно передать пинки админам - это уже опциональный виртуоз
(30) tango,
просто еще одно доказательство - насколько непродумана/обрезана 1С в своих функциях, и какое вследствии этого непаханное поле для совершенствования у 1с-ника... :)
(7) sanfoto, А всё таки, расскажите пожалуйста, как вы прицепили 1с сервер к mssql по named pipes. Вас же не затруднит привести скриншот подключенного к sql 1с сервера при отключенном на sql сервере протоколе tcp/ip?
но народ скидывал скрины с моим SQL запросом и там был Shared Memory для 1с 8.3
Так в выборе есть, а работать - не работает, о чем официально заявлено Микрософт.
И проверить нельзя, ровно как и Pipes :)
Ну, "включено" pipes - а что и как и где? Прирост "в разы" только "тест Гилева ни о чем" показывает, а на реальной базе при работе - никакого заметного эффекта, не то, что, в разы (и на локальном сервера два-в-одном тоже! В любом случае, даже если "че-то у вас в консерватории..", там картина существенно не меняется).
На чем и настаиваю - все приведенные якобы "тесты" PN или SM не отражают состояния дел (одно то, что якобы SM "включено", и тесты "взлетают", а разработчик заявляет, что все давно "поломано" - дает повод не то, что усомнится в тестах, а однозначно отвергнуть их; да и, собственно, и так ясно, что меряют непонятно что и непонятно, где).
у меня сейчас нет таких возможностей, да и мне и так все ясно, но спрошу, у кого есть.
Потом выводите свои теории о замерах
даже ваш любимый! Гилев пишет (хотя все его "статьи" - это перепост и солянка из абзацев исследований более умных людей, потому как Гилев не понимает, что он "настраивает", и зачем напихал все подряд без каких либо объяснений, что можно, и что нельзя, в свои "статьи" настроек серверов):
Оставьте для работы только протоколы TCP/IP и SHARED MEMORY
В версии Express ... по умолчанию выключен протокол TCP/IP, нужный для работы с 1С:Предприятие 8 (осуществялется передача данных - A.).
Протокол именнованных каналов выключите совсем (и для "клиента" тоже на сервере приложений) (потому что проблем от них несравнимо больше, чем какого-то эфемерного прироста скорости, даже Гилев! это понимает (хотя и это тоже списал), хотя и не может объяснить - видимо, ждет, когда ему объяснят, и перепостит себе в статейки).
(20) AlexO,
да хто Вам сказал что он мну таки Любимый Авторитет? ))
я его на мисте подколол уже по поводу Shared Memory на 1с 8.2
просто его Тест взял за основу т.к. БД маленькая и легко раскидать желающим потестить и проверить самим))
Сам же делал тесты на реальных копиях баз в районе 66 ГБ объемом))
(24) sanfoto,
все бы ничего, но 1с уже давно, еще на заре появления 8.0 все "определила" простым и ненапряжным спсособом: "А как будет работать? - Да все ок!"
Не верите? почитайте офстатью на users "Выбор сервера".
но у меня не видно ничего... :(
ага.
Надо не РАДИКАЛ давать ссылки, в сообщении нажать "Прикрепить файл" и выбрать рисунки.
А радикал MS сейчас рубит почем зря...
(28) sanfoto,
и что он замерил? Что внутри компа инфа двигается быстрее (причем обезличенная и тестовая), чем по физической сети? А если сеть fiber? :)
Попробуйте.
(29) AlexO,
и что он замерил? Что внутри компа инфа двигается быстрее (причем обезличенная и тестовая), чем по физической сети?
причем обезличенная и тестовая - да тестовая в сообщении (28), но тоже самое подтверждается и на рабочих базах.
Вывод то один:
Скорость работы любой ИС зависит от различного вида ЗАДЕРЖЕК, приведу некоторые:
1)задержки на обработке процессором
2)задержки в коммуникационной среде
3)задержки в работе с накопителями информации (диск,оперативная память...)
PS:
А если сеть fiber? :) - вообще-то она используется для работы например с дисковыми полками,
но если вы предложите способ соденить Два компа по TCP/IP посредством fiber - я с удовольствием проверю))
Скорость работы любой ИС зависит от различного вида ЗАДЕРЖЕК
вы забыли самую главную "задержку", которая в 1С самая критичная - это обработка данных, чтобы их потом передавать по сети куда-то.
1С-сервер бросает запрос к SQL (пусть и по SM - но это же такая мелочь - управляющий текст запроса), SQL вытягивает данные из "себя" (все, что есть по данной теме, широким охватом), передает их 1С, тот обрабатывает, крутит-вертит как ему надо, дозасылает еще что-то получить из SQL (согласно прохождению по коду выполнения из конфы), опять руктит вертит, и потом, окончательно - выдает пользователю сформированные данные (в отчет, etc).
Проведение документов, которые вы мне предлагали сделать с NP - это пакетное чтение соответствующих наборов записей, их редактирование, и отсылка обратно.
Вот это замерили? нет.
Поэтому и нет прироста никакого от использования SM и NP, что:
1) не настолько они и быстры на самом деле (а SM вообще не поддерживается при передаче данных в SQL)
2) сама по себе передача данных по сети - пшик по сравнению со временем обсчета/верчения на 1С сервере (выборке данных в SQL).
вообще-то она используется для работы например с дисковыми полками
а мы не о передаче данных и среде передачи разве говорим? :)
Сеть Ethenet - всего лишь среда/протокол передачи данных, одна из многих. А не основа "сети" а-ля база.
забыли самую главную "задержку", которая в 1С самая критичная - это обработка данных, ..
не забыл таки)) за это ответственны:
1)задержки на обработке процессором (фактически частота CPU)
2)задержки в коммуникационной среде
3)задержки в работе с накопителями информации (диск,оперативная память...)
сама по себе передача данных по сети - пшик по сравнению со временем обсчета/верчения на 1С сервере
вашей же цитатой отвечу))
1С-сервер бросает запрос к SQL (пусть и по SM - но это же такая мелочь - управляющий текст запроса), SQL вытягивает данные из "себя" (все, что есть по данной теме, широким охватом), передает их 1С, тот обрабатывает, крутит-вертит как ему надо, дозасылает еще что-то получить из SQL (согласно прохождению по коду выполнения из конфы), опять руктит вертит
Именно дозасылает еще что-то получить из SQL - даже в 1с запросах как правило на SQL уходит не ОДИН В ОДИН запрос, а еще + различная мелочевка - НАПРИМЕР в 1С запросе написали что-нибудь через ДВЕ-ТРИ ТОЧКИ))
Т.е. например разделили ДВА сервера по Gigabit Ethernet:
1)видим картину нет загрузки сети больше 20% ))) - и системный администратор делает вывод что сети вполне хватает
НО ОН ОШИБАЕТСЯ))
т.к. на самом мелкие пакеты и реальная скорость обмена 250 Мегабит/с то в принципе фиг загрузим сеть под 100%
А если весь обмен идет по ОДНОМУ ПОРТУ то ВСЕ становится в очередь и будь у вас хоть одновременно СОТНЯ ПОЛЬЗОВАТЕЛЕЙ все они будут внутри этих 250 Мегабит и в очереди.
2)т.к. возникает ЗАДЕРЖКА из пункта 1) то возникают ситуации когда
1С сервер ожидает пока придут данные Основные, притом подкидывая новые запросы на SQL уточняя Основные данные(Объекты внутри Объектов и т.п)
3) т.к. возникают ожидания как следствия из пунктов 1) и 2) - то СИСТЕМНЫЙ АДМИНИСТРАТОР видит:
- нет нагрузки на CPU
- нет нагрузки на диски
и делает вывод - система отлично сбалансирована и имеет значительный запас производительности
но почему-то тормозит 1С - значит корень в самой 1с ибо она Абсолютно кривая и порочная (есть конечно часть правды...в этом...но лишь часть правды))
В ИТОГЕ ОН ОШИБАЕТСЯ т.к. 1С и SQL как получилось имеют медленный канал для обмена ОНИ ПРОСТО ОЖИДАЮТ ДРУГ ДРУГА и НЕ ГРУЗЯТ CPU и Диски
(36) sanfoto,
частично сэмулировать данную проблему можно следующим образом
1)берем Файловую 1С с объемом базы побольше
2)берем скоростной комп - но с Объемом оперативки небольшим (чтобы Кэшировалось поменьше)
3)берем какой-нибудь накопитель со скоростью Чтениние/Запись не больше 30 Мегабайт/с (250 Мегабит/с)
ставим замеры скорости проведения документов))
потом
4)берем какой-нибудь накопитель со скоростью Чтениние/Запись 500 Мегабайт/с
ставим замеры скорости проведения документов))
Есть Иной способ решения Связки "1С" с "MS-SQL" это перенести ВСЮ ЛОГИКУ на сам MS SQL,
т.е. практически не использовать программирование на языке 1С,
а писать встроенные процедуры в SQL и Использовать от 1с только внешний вид на клиентах)).
Таки этот путь ОЧЧЧЕНЬ сложен в реализации и это уже будет не 1С)).
И только такой путь может СНЯТЬ СИЛЬНУЮ зависимость от коммуникационной среды передачи данных. ИМХО вся бизнес логика будет крутится внутри самого SQL.
Но это не мой путь, затраты+время на разработку + поддержка = "не стоит игра свеч".
туда в принципе пишется некий темп-кэш.
Без разделения на временные таблицы или еще что.
А конкретно по временным - скорей всего, некая эмуляция механизма SQL с созданием доптаблиц в самом файле 1CD.
А уж что они там между собой кидают в темп, а что - остается в 1CD, никто никогда не узнает :)