Курилка Как повысить производительность файловой базы? (перенесено)

Discussion in 'Курилка' started by Список, Mar 15, 2013.

  1. TopicStarter Overlay
    Список
    Offline

    Список

    Joined:
    Mar 15, 2013
    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    1
    Нет, вы говорите неправду, это было сказано про другое, разговор шел про сервер... процитировать написанное? Так я и так цитировал - на что отвечаю.

    А это был ответ другому человеку, причем я опять же цитировал - на что отвечаю. У вас какая-то патология со зрением.

    Кстати, это было продолжение разговора о тех глупостях, о которых вы сказали и со мной спорили.
    а это было к чему? :) Явно не к моим словам. Я писал (в цитате): "за счет локальности базы 1С будет все работать действительно в 2-3 раза быстрее, чем если про сто Ф-С с запуском программ на станциях". Это так из-за различной скорости доступа к файлам по сети или локально, по сети всегда будет дольше в 2-3 раза.
    Совместность доступа тут не при чем - это отдельный фактор, это будет и в терминалке и при сетевом ф-с.

    Ну все зависит от базы и от версии 1с. Работает - хорошо.
    Разговор был несколько не об этом
  2. TopicStarter Overlay
    Список
    Offline

    Список

    Joined:
    Mar 15, 2013
    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    1
    Нет, это не так. Процесс 1С может обрабатывать данные, которые уже загружены. Как раз примерно 10% времени требуется на запись - чтение объектов из базы. Но это я гадаю. Как и вы.
    Это не так, потому что написал выше.


    В общем, не будем спорить о % простоя, вы мне пытаетесь доказать, что я и написал в посте 17. Что просто ОДИН процесс на терминалке будет выполняться уже гораздо быстрее, чем один процесс на на рабочей станции с сетевым ф-с. Я это и так писал.

    Я лишьо говорил, что чистая работа процесса 1С на рабочей станции будет занимать столько же, сколько и на терминалке, по утилизации процессора на ед. мощности, и в памяти, а при нескольких процессах на терм-сервере ресурсы будут суммироваться.

    А в 23 я писал:
    Так вот "простой" или работа других программ или работа операционной системы - это все, что "не посвящено процессу 1С".

    Я в самом начале писал, что если заменить набор рабочих станций терминалкой примерно суммарной мощности, то "будет летать". Это и означает то, что не будет простоев. И автоматом логически это и означает, что если сделать наоборот так, что терминалка с N-процессами 1C будет работать с той же производительностью, как N рабочих станций по сети, то мощность терм. сервера будет нужна гораздо меньше, чем суммарная мощность станций.
    Только из этого не следует, что написанные мной выше слова неправильны.

    Автор вообще поставил вначале вопрос - почему по сети ф-с гораздо медленнее, чем локально, можно ли исправить на уровне ф-с. Я ответил, что в любом случае будет в 2-3 раза медленнее, чем локально, что сделать - написано в 17-18.

    А терминалку ставят не для того, чтобы работало с той же скоростью, как и набор рабочих станций, а чтобы увеличить скорость. Ну или сэкономить деньги, не покупая набор мощных станций, а один терминальный с.

    Да, 4х ядерного хватит для 5-12 с лишним работающих одновременно рабочих мест.

    Это ни о чем не говорит без объема баз, количества оперативных объектов и т.п.... какие еще критерии могут быть?
  3. TopicStarter Overlay
    Список
    Offline

    Список

    Joined:
    Mar 15, 2013
    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    1
    У меня на начальной по сути базе (1С 8.2 УТ 11) на рабочей станции(сейчас ф-с) тратится уже уровня полгига и больше, если сложные процессы с базой.
    А вот память на терминалке по любому будет суммировать линейно, как она использовалась на рабочих станциях, тут никакие "простои" роли не сыграют.

    Так что 512 маловато на сеанс в моем случае, если учитывать рост базы. И что на каждого пользователя - надо умножать на терминалке тупо на их количество одновременно. По гигу возможно хватит.
  4. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    холиварчик продолжается :duel:
    восстановлю ниточку, чтобы понятнее было
    вот на этом моменте вы сказали практически то же, что и я :).
    я вам просто предложил проследовать сюда _http://www.microsoft.com/en-us/download/details.aspx?id=17190
    это всего лишь документ производителя ОС о том, как планировать нагрузку на сервера rdp, там много интересных и правильных мыслей.
    если вы его глянули хотя бы краем глаза, то поняли бы о чем я, а заодно поняли, что я по этому документу проходил уже не один раз

    про сервер. только не 1с, а rdp


    это было к тому, что по сети не всегда дольше, а совместность еще как причем :)
    почему nas даже на гигабитном канале жужжит быстрее обычного файлового сервера на винде при совместной работе нескольких пользователей с одним файлом? только домашние nas не вспоминайте :)
  5. TopicStarter Overlay
    Список
    Offline

    Список

    Joined:
    Mar 15, 2013
    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    1
    И здесь он написал глупость, которую вы повторяете, которую я объяснил в посте 20, цитирую "Несколько ядер нужны не только для многопоточности, а для многопроцессности, что при нескольких сеансах 1с как раз будет, потому и несколько ядер нужны."

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


    Нет, не так.
    Вы мне сначала объясните, вы выкидываете потребности ОС и драйверов или нет? А то у вас вас сразу и "т.е. выкидываем собственные потребности ОС", и "представим что половину забрала ОС"
    Оставьте в покое ОС.
    Процесс 1С на рабочей станции будет есть памяти ровно столько же, сколько КАЖДЫЙ процесс 1С на терминальном сервере, если не считать издержек на терминальную сессию.
    Вы иное не обосновали.
  6. TopicStarter Overlay
    Список
    Offline

    Список

    Joined:
    Mar 15, 2013
    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    1
    Не надо зубы заговаривать, с начала и до конца шла речсь про терм. сервер
    Не всегда дольше чем как? Чем локально - всегда ПРИ ПРОЧИХ РАВНЫХ.
    Вы читали, что я написал?
    Еще раз - совместный доступ будет при терминале и при ф-с.
  7. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    да, про него.

    это к тому, что в таких маленьких конторках если угнать 1с в терминал, то туда же обычно переползают и офис и еще куча всякой хрени вплоть до автокада
    дальнейших холивар начался отсюда:
    да я не против, что терминал быстрее живет с файловой базой 1с :)
    я просто не согласился с "Терминальный сервер для 4 станций должен быть по проиводительности равен их суммарной производительности."
    и где тут "нужно несколько голов, но не нужна многоядерность"? несколько голов как раз относятся к планированию сервера терминала, а многоядерность - к клиенту 1с, который ни разу не многопоточный, соответственно в одиночку не может нагрузить многоядерный проц/многопроцессорную машинку. именно поэтому 4-голового процессора хватит на десяток пользователей

    именно что при прочих равных. это я, в общем, к тому, что
    проблема не только в скорости сети (которая имеет весьма разную скорость, у нас к полке было 50ГБит, которые засирались полностью. такую скорость не всякий локальный хард даст при таком количестве обращений), но и именно в том, как ос на файловом сервере отрабатывает совместный доступ к файлу. поэтому nas будет шустрее windows server.

    конечно, см. выше
    да я не против. просто по ходу дискуссии у вас мнение как-то меняется в правильную сторону :)
    начинали то с
    да, предупредили перед этим, что через сеть медленнее. но уж если такое рекомендуете, то предупреждайте, что windows в такой ситуации - это убийство производительности на втором пользователе.
  8. shurikvz
    Online

    shurikvz Модераторы Staff Member Модератор

    Joined:
    Oct 1, 2009
    Messages:
    7,733
    Likes Received:
    205
    Trophy Points:
    104
    Перечитайте мою фразу еще раз. В скобки заключено пояснение к первой части фразы, это не самостоятельное предложение.

    Не понял. А что мне надо было обосновать? С процитированным утверждением я согласен. Я что где то написал, что количество памяти потребляемое процессом 1С зависит от того на рабочей станции он запущен или в терминальной сессии? Где?

    Список, похоже спор уже идет ради спора. Жаль не пятница. Снова повторю - весь сыр-бор по-моему пошел из за фразы:
    nickpugachev уже сам объяснил что он имел ввиду, однако вы все равно настаиваете на своем понимании этой фразы.

    Ок. давайте попробуем так:
    Утверждение 1:
    Утверждение 2:
    С каким из этих утверждений по отдельности вы несогласны?


    Да без проблем. Не имею абсолютно никаких намерений цепляться к словам и разводить флейм.


    Не понял, какую глупость я повторил? Еще раз объясните кто и где спорит (спорил) с утверждением, что на терминальном сервере нужны несколько ядер?
  9. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    ну если есть желание, могу обосновать, почему каждый процесс 1с на терминальном сервере будет откусывать меньше памяти, чем на локальной машине с базой по сети :)

    а про память под ос на терминале никто не забывает. кто-то определяет интуитивно, кто-то на основании опыта и рекомендаций производителей, но планируют ее все.
  10. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    ну что, пойдемка-покуримка :)

    итак, про то, что процессы 1с занимают в памяти меньше места, чем на локальной машине с доступом к базе по сети.

    тут все очень просто. начиная со второго процесса в память не грузятся dll, а это около 100Mb :D
    ну дополнительные плюшки, связанные с отсутствием передачи данных по сети и прелестями протокола smb, если используется он (а это 99,9% файловых баз по сети)
  11. shurikvz
    Online

    shurikvz Модераторы Staff Member Модератор

    Joined:
    Oct 1, 2009
    Messages:
    7,733
    Likes Received:
    205
    Trophy Points:
    104
    Вот думаю, устроить дискуссию по этому поводу сейчас или таки дотянуть до пятницы.. :D
  12. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    лучше до пятницы :D
    я до пятницы скорее всего в г....но занят, вешку проекта закрыть надо
  13. shurikvz
    Online

    shurikvz Модераторы Staff Member Модератор

    Joined:
    Oct 1, 2009
    Messages:
    7,733
    Likes Received:
    205
    Trophy Points:
    104
    Ну и вот, собственно что хотел сказать то:
    В частном случае - оно так и есть. Но есть также один нюанс, поскольку если бы все было так просто, то у нас и сам модуль 1Cv8.exe занимал бы на терминальном сервере 500 мб на всех. На терминальном сервере действительно при запуске программы фактически в память подгружается один ее экземпляр, все последующие экземпляры просто работают с ссылкой на первый (хотя при этом каждый из них работает в собственном адресном пространстве, и думает что работает со своей копией). Но это справедливо до тех пор, пока процессу не потребуется произвести запись в ту область памяти, которую он занимает. И вот как только он это делает, для него уже сразу подгружается в память отдельный его экземпляр. Таким образом предсказать то, что мы сэкономим на запуске каждого процесса постоянный размер памяти - думаю невозможно.
    Как то так.. :)
  14. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    так я про exe и не говорю - только dll - они используют адресное пространство процесса, в который их замапила система, а не свое собственное.
  15. shurikvz
    Online

    shurikvz Модераторы Staff Member Модератор

    Joined:
    Oct 1, 2009
    Messages:
    7,733
    Likes Received:
    205
    Trophy Points:
    104
    Ну я про exe сказал к слову, для уточнения своей мысли. Но чет так подумал, дальше не возьмусь развивать мысль, поскольку, чего уж скрывать, знаний у меня недостаточно. И dll и exe исполняемые файлы. Насколько понимаю, одно из отличий dll это то что он не порождает собственного процесса, и кроме того, использует память вызывающего его приложения (exe). Но ведь сути это не меняет, насколько я представляю. Как только один из процессов (exe) попробует писать в занимаемую область памяти, для него будет создана отдельная копия в том числе и копия dll. Или я не прав?
  16. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    неа, у каждого процесса всегда свое собственное адресное пространство, не пересекающееся с другими. в это адресное пространства просто отображаются страницы с исполняемым кодом и данными dll. причем запись в эти страницы приводит к тем самым падениям программ с сообщением memory cannot be write и предложением послать кляузу в микрософт.
    любые данные на страницах dll - read only
    раньше был злобный хак, позволяющий запустить код на страницах, помеченных как данные, но теперь для этого придется полезть в настройки системы и вырубить DEP, потому как раньше этим хаком активно пользовалась всякая мутирующая малварь
  17. AntonB
    Offline

    AntonB Опытный в 1С

    Joined:
    Nov 25, 2011
    Messages:
    143
    Likes Received:
    0
    Trophy Points:
    26
    Объем всех exe-шников в папке 1С (вместе взятых) составляет 3 МБ...
    и, очевидно, пренебрежим по сравнению с объемом памяти,
    который 1С обычно занимает в памяти под данные при работе....

    Объем всей папки с dll и ресурсами ~270 МБ,
    но вряд ли они все грузятся в память одновременно...

    так что стОит ли об это копья ломать...
  18. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Staff Member

    Joined:
    May 28, 2012
    Messages:
    3,074
    Likes Received:
    107
    Trophy Points:
    104
    когда пользователей 200 - стоит начинать думать :)
    особенно учитывая, что больше 2Gb процесс 1с употребить не в состоянии (клиент)

Share This Page