Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата

Наши программы => УкрСклад => Тема розпочата: isian1 від Лютий 21, 2015, 12:35:59

Назва: Работа программы с двумя ядрами 64бит
Відправлено: isian1 від Лютий 21, 2015, 12:35:59
Уже давно замечал что при просчете например прибыли за месяц одно ядро на компьютере сильно грузится - при этом ничего делать в программе нельзя иначе вылетит!! И вот сейчас с актом инвентаризации куда входит около 2000 наименований также после "пересчитать" уходит в задумчивость на секунд 10-20 , потом все ок. но если что нибудь сделать лишнее например просто кликнуть или свернуть программу то вылетит однозначно.
  Если я понимаю то программа не видит многоядрового(многопотокового проца (лично использую Intel core i3) поэтому и грузит один .
С похожей проблемой сталкивался у "печатников" если они посылают на печать на боьшую махину баннер 3х4 м файл 50-60 мб то та же штука получается . - производитель сказал им что программа неподдерживает все многоядровые процессоры и порекомендовали поменять на Ксеон !!! но он денег немало стоит .
Кто что знает по этому поводу ???
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: weee від Лютий 21, 2015, 13:47:51
Как я заметил, делаю годовой отчет с одного компьютера, на сервере 1 одро грузится на 100%. Отчет не малый, 3-5 мин генерирует.
2 ядро не занято абсолютно ничем, в простое. А вот когда с третего компьютера, например продается товар, подгружается 2 ядро. Я так понимаю - на одно подключение на сервере выделяется 1 ядро.
И это правильно! :) Например, захотелось сделать немалый отчет, загрузил все ядра на макс. Остальные компьютеры работать шустро с програмой не будут.

Вопрос к разработчикам:
При подключении к серверу на 1 подключение выдается 1 ядро. Всего ядер 2 шт.
Что будет с програмой когда одновременно подключится 5-15 компьютеров и будут работать со стандартными функциями, выписка накладных, счетов и т.д. ?
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: isian1 від Лютий 21, 2015, 14:41:13
 Один пользователь - одно ядро ??? получаестя бред , извиняюсь за выражение ...
Если винда серверная - то возможно нагрузка пропорционально и снимается ядрами а если через сеть то тут другое:
- одно ядро будет делать вычисление - а другой пользователь особенно если по сети подгружает - то второе ядро будет обрабатывать именно эту задачу , тоесть распределяются задачи .
И если я правильно понимаю то одна задача в 64бит тоже должна распределятся по ядрам а в 32 бит одна задача будет только на одном ядре , даже если она его грузит на 110%.
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: weee від Лютий 21, 2015, 15:49:47
Насколько я понимаю, серверная винда не распределяет нагрузку сама по ядрам. Тут дело в приложении, способно ли оно так работать. Не знаю, утверждать не буду.
У меня на сервере стоит win 7 x32.  Подключение по терминалу. Скрин https://yadi.sk/i/1gYfM77fepGJZ

Запустил генерирование отчетов на 2 компьютерах, всеравно грузит только 1 ядро :(
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: isian1 від Лютий 22, 2015, 15:22:19
Вот я и о том же ! Тоесть как я понимаю не все программы поддерживают два и  более ядра или потока (хотя у меня два ядра по два потока то загружает как раз два потока )
P.S: а что скажут админы по этому вопросу???
Сегодня провел эсперемент если просто пользоваться программой то скачки нагрузки на всех четырех потоках одинаковые , но если отчет по Фифо за 1 мес. то один поток 100% а другие три по 0%  - программа неотвечает но считает (если нажать чего другого то вылетит)
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: crazyjonyster від Лютий 25, 2015, 18:12:29
У меня аналогичная ситуация Intel Core i7 4790 @ 4.00GHz ( 4 ядря - 8 потоков), Но к сожалению FireBird грузит только 1 ядро (общая нагрузка пишет 12,5% это 1 и 8 потоков). Посмотрел в диспетчере задач, так у fbserver.exe *32 в меню "Задать соответствие" было указанно только одно ядро. Включил все, но эффекта никакого. все ровно при любых вариантах грузит только 12,5% процессора но уже распределяя нагрузку на все ядра. Вот только они не на полную работают... То есть как не крути, но только 12,5% может осилить fbserver.exe....
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: isian1 від Лютий 25, 2015, 19:37:24
ЧТо интересно пытаюсь сложить все акты инвинтаризации - около 6500 тоаров - програма грузится можно кофейка попить :D ,
Посоветовал знаклмый програму - турбобуст - говорит что делит нагрузку равномерно по процесорам , но пока не тестил скоро потестю - напишу.
Назва: Re: Некоректная работа программы с двумя ядрами 64бит
Відправлено: admin від Лютий 26, 2015, 16:36:42
Цитата: crazyjonyster від Лютий 25, 2015, 18:12:29
У меня аналогичная ситуация Intel Core i7 4790 @ 4.00GHz ( 4 ядря - 8 потоков), Но к сожалению FireBird грузит только 1 ядро (общая нагрузка пишет 12,5% это 1 и 8 потоков). Посмотрел в диспетчере задач, так у fbserver.exe *32 в меню "Задать соответствие" было указанно только одно ядро. Включил все, но эффекта никакого. все ровно при любых вариантах грузит только 12,5% процессора но уже распределяя нагрузку на все ядра. Вот только они не на полную работают... То есть как не крути, но только 12,5% может осилить fbserver.exe....

Нельзя  сказать что только "12.5% может осилить fbserver.exe", грубо говоря у вас же диск не имеет 8 потоков. Тут слабое звено диск, т.к. собирает данные сервак с диска, а если все 8 потоков будут обращаться к диску, начнется хаотичное считывание что только многократно увеличит выборку данных в худшую сторону ведь он будет больше времени тратить не на считывание нужных данных, а не переброс головки для считывания. Спасет только SSD и кеш Firebird.

В Firebird мы используем архитектуру Superserver, он действительно использует только одно ядро, кому надо поэкспериментировать с несколькими, правьте параметр CpuAffinityMask в firebird.conf: 3 для 2 CPUs/cores; 15 для 4 CPUs/cores; 255 для 8 CPUs/cores.
http://www.firebirdsql.org/manual/qsg25-classic-or-super.html (http://www.firebirdsql.org/manual/qsg25-classic-or-super.html)
http://www.firebirdsql.org/manual/qsg25-appx-architectures.html (http://www.firebirdsql.org/manual/qsg25-appx-architectures.html)
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: isian1 від Лютий 26, 2015, 18:35:06
Вот - єто решение , по свободному времени поексперементируем так как используем SSD. Спасибо админу *flag1*
П.С:  поподробнее пожалуйста о "кеш Firebird".
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: weee від Лютий 26, 2015, 18:46:17
Как посмотреть какую версию БД использую? Классик, Супер классик...?
в папке bin сервера есть install_classic.bat, install_super.bat эти файлы переводят базу даных в другой режим?
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: weee від Лютий 26, 2015, 19:01:30
Поставил CpuAffinityMask = 15 для 4 ядер
Ставлю генерацию отчета, всеравно грузит первое ядро и все. Может нужно переключить сервер?
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: admin від Лютий 27, 2015, 10:44:14
Цитата: weee від Лютий 26, 2015, 19:01:30
Может нужно переключить сервер?

Если вы про перегрузить, то конечно да.
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: admin від Лютий 27, 2015, 10:50:38
Цитата: weee від Лютий 26, 2015, 18:46:17
Как посмотреть какую версию БД использую? Классик, Супер классик...?

Цитата: admin від Лютий 26, 2015, 16:36:42
В Firebird мы используем архитектуру Superserver

Цитата: weee від Лютий 26, 2015, 18:46:17
в папке bin сервера есть install_classic.bat, install_super.bat эти файлы переводят базу даных в другой режим?

Не базу, а работу Firebird сервера в определенный режим, режимы описаны выше по ссылке. Это батники для установки сервера на систему, если Firebird уже установлен, до запуска этих файлов надо сделать uninstall.bat, все запускать от админа.
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: crazyjonyster від Березень 03, 2015, 16:02:52
У мена как раз SSD! 16Gb оперативки, Intel Core i7 4790 @ 4.00GHz (4 ядра - 8 потоков) и SSD работает через AHCI, то есть на полной скорости SATA 6Gb/s и с очередью команд и все такое...

Буду пробовать эксперементировать с конфигом.

Цитата: admin від Лютий 26, 2015, 16:36:42
Цитата: crazyjonyster від Лютий 25, 2015, 18:12:29
У меня аналогичная ситуация Intel Core i7 4790 @ 4.00GHz ( 4 ядря - 8 потоков), Но к сожалению FireBird грузит только 1 ядро (общая нагрузка пишет 12,5% это 1 и 8 потоков). Посмотрел в диспетчере задач, так у fbserver.exe *32 в меню "Задать соответствие" было указанно только одно ядро. Включил все, но эффекта никакого. все ровно при любых вариантах грузит только 12,5% процессора но уже распределяя нагрузку на все ядра. Вот только они не на полную работают... То есть как не крути, но только 12,5% может осилить fbserver.exe....

Нельзя  сказать что только "12.5% может осилить fbserver.exe", грубо говоря у вас же диск не имеет 8 потоков. Тут слабое звено диск, т.к. собирает данные сервак с диска, а если все 8 потоков будут обращаться к диску, начнется хаотичное считывание что только многократно увеличит выборку данных в худшую сторону ведь он будет больше времени тратить не на считывание нужных данных, а не переброс головки для считывания. Спасет только SSD и кеш Firebird.

В Firebird мы используем архитектуру Superserver, он действительно использует только одно ядро, кому надо поэкспериментировать с несколькими, правьте параметр CpuAffinityMask в firebird.conf: 3 для 2 CPUs/cores; 15 для 4 CPUs/cores; 255 для 8 CPUs/cores.
http://www.firebirdsql.org/manual/qsg25-classic-or-super.html (http://www.firebirdsql.org/manual/qsg25-classic-or-super.html)
http://www.firebirdsql.org/manual/qsg25-appx-architectures.html (http://www.firebirdsql.org/manual/qsg25-appx-architectures.html)
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: admin від Березень 12, 2015, 17:39:03
Цитата: isian1 від Лютий 26, 2015, 18:35:06
П.С:  поподробнее пожалуйста о "кеш Firebird".

Чуть подкорректировали настройки 2.5, в следующей версии должно работать быстрее на больших базах, т.к. действительно иногда 2.5 была медленней чем 1.5.
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: weee від Березень 13, 2015, 17:35:54
У когото вышло загрузить все ядра процессора?
Что только не делал, одно ядро грузит и все.
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: admin від Березень 16, 2015, 11:41:03
Цитата: weee від Березень 13, 2015, 17:35:54
У когото вышло загрузить все ядра процессора?
Что только не делал, одно ядро грузит и все.

Уверены что именно тот firebird.conf меняете? Если хотите можете попробовать работу Classic, тогда на каждое соединение будет новый процесс, главное чтобы оперативки хватило.
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: crazyjonyster від Вересень 08, 2015, 12:11:28
Я заметил, что в диспетчере задач процесс fbserver.exe *32, а не 64... Если установить 64 битную версию сервера будет ли лучше работать? А то изменение параметра CpuAffinityMask особо не поменяло ситуации и даже при нескольких запущенных клиентах процессор все ровно не удается сильно загрузить. При запуске сложного отчета, сейчас грузится.

И еще вопрос что нужно сделать что бы попробовать архитектуру Classic? Это можно сделать поменяв какие-то настройки?

Конфигурация нашего сервера:
CPU - Core i7 4790k @ 4Ghz
RAM - 16 Gb (Есть возможность добавить еще столько же)
SSD - Kingston 128Gb

По идее такой конфигурации должно хватить?...
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: admin від Вересень 09, 2015, 15:08:58
Цитата: crazyjonyster від Вересень 08, 2015, 12:11:28
Я заметил, что в диспетчере задач процесс fbserver.exe *32, а не 64... Если установить 64 битную версию сервера будет ли лучше работать?

Нет.

Цитата: crazyjonyster від Вересень 08, 2015, 12:11:28
А то изменение параметра CpuAffinityMask особо не поменяло ситуации и даже при нескольких запущенных клиентах процессор все ровно не удается сильно загрузить. При запуске сложного отчета, сейчас грузится.

Что значит "не удается сильно загрузить"? Запустите сложный отчет на каждом клиенте и посмотрите как грузиться ваш Сервер, все указанные ядра или нет?

Цитата: crazyjonyster від Вересень 08, 2015, 12:11:28
И еще вопрос что нужно сделать что бы попробовать архитектуру Classic? Это можно сделать поменяв какие-то настройки?


Как установить Classic написано выше в этой теме:
http://www.softbalance.com.ua/forum/index.php/topic,3392.msg20988.html#msg20988 (http://www.softbalance.com.ua/forum/index.php/topic,3392.msg20988.html#msg20988)
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: Marvel від Вересень 18, 2017, 12:46:21
Цитата: weee від Березень 13, 2015, 17:35:54
У когото вышло загрузить все ядра процессора?
Что только не делал, одно ядро грузит и все.
У меня получилось распределить нагрузку на 4 ядра. Возможно вы забыли удалить значек # перед параметром CpuAffinityMask, в файле firebird.conf. Ну и разумеется после перезагрузить сервак. Единственное не уверен что это что-то ускорило, процесс формирования отчета или скрипта занимает все теже 25% CPU как на одном ядре, только теперь они распределились на 4 ядра.
Назва: Re: Работа программы с двумя ядрами 64бит
Відправлено: weee від Грудень 02, 2017, 12:31:26
Для себя выбрал установку сервера Classic. Тогда на каждый запущеный клиент равномерно распределяется часть рессурсов. На 100% загрузить 4 ядра процессора у меня выйшло запустив на 4 клиентах большие отчеты(каждый клиент занимал 25% процессорного времени). Загрузка диска (не SSD) не превышает 1%, считывание 0,2 мБ/сек с склиента. База маленька, ~15 мБ.