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

Работа программы с двумя ядрами 64бит

Автор isian1, Лютий 21, 2015, 12:35:59

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

isian1

Уже давно замечал что при просчете например прибыли за месяц одно ядро на компьютере сильно грузится - при этом ничего делать в программе нельзя иначе вылетит!! И вот сейчас с актом инвентаризации куда входит около 2000 наименований также после "пересчитать" уходит в задумчивость на секунд 10-20 , потом все ок. но если что нибудь сделать лишнее например просто кликнуть или свернуть программу то вылетит однозначно.
  Если я понимаю то программа не видит многоядрового(многопотокового проца (лично использую Intel core i3) поэтому и грузит один .
С похожей проблемой сталкивался у "печатников" если они посылают на печать на боьшую махину баннер 3х4 м файл 50-60 мб то та же штука получается . - производитель сказал им что программа неподдерживает все многоядровые процессоры и порекомендовали поменять на Ксеон !!! но он денег немало стоит .
Кто что знает по этому поводу ???

weee

Как я заметил, делаю годовой отчет с одного компьютера, на сервере 1 одро грузится на 100%. Отчет не малый, 3-5 мин генерирует.
2 ядро не занято абсолютно ничем, в простое. А вот когда с третего компьютера, например продается товар, подгружается 2 ядро. Я так понимаю - на одно подключение на сервере выделяется 1 ядро.
И это правильно! :) Например, захотелось сделать немалый отчет, загрузил все ядра на макс. Остальные компьютеры работать шустро с програмой не будут.

Вопрос к разработчикам:
При подключении к серверу на 1 подключение выдается 1 ядро. Всего ядер 2 шт.
Что будет с програмой когда одновременно подключится 5-15 компьютеров и будут работать со стандартными функциями, выписка накладных, счетов и т.д. ?

isian1

 Один пользователь - одно ядро ??? получаестя бред , извиняюсь за выражение ...
Если винда серверная - то возможно нагрузка пропорционально и снимается ядрами а если через сеть то тут другое:
- одно ядро будет делать вычисление - а другой пользователь особенно если по сети подгружает - то второе ядро будет обрабатывать именно эту задачу , тоесть распределяются задачи .
И если я правильно понимаю то одна задача в 64бит тоже должна распределятся по ядрам а в 32 бит одна задача будет только на одном ядре , даже если она его грузит на 110%.

weee

#3
Насколько я понимаю, серверная винда не распределяет нагрузку сама по ядрам. Тут дело в приложении, способно ли оно так работать. Не знаю, утверждать не буду.
У меня на сервере стоит win 7 x32.  Подключение по терминалу. Скрин https://yadi.sk/i/1gYfM77fepGJZ

Запустил генерирование отчетов на 2 компьютерах, всеравно грузит только 1 ядро :(

isian1

#4
Вот я и о том же ! Тоесть как я понимаю не все программы поддерживают два и  более ядра или потока (хотя у меня два ядра по два потока то загружает как раз два потока )
P.S: а что скажут админы по этому вопросу???
Сегодня провел эсперемент если просто пользоваться программой то скачки нагрузки на всех четырех потоках одинаковые , но если отчет по Фифо за 1 мес. то один поток 100% а другие три по 0%  - программа неотвечает но считает (если нажать чего другого то вылетит)

crazyjonyster

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

isian1

ЧТо интересно пытаюсь сложить все акты инвинтаризации - около 6500 тоаров - програма грузится можно кофейка попить :D ,
Посоветовал знаклмый програму - турбобуст - говорит что делит нагрузку равномерно по процесорам , но пока не тестил скоро потестю - напишу.

admin

Цитата: 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-appx-architectures.html

isian1

#8
Вот - єто решение , по свободному времени поексперементируем так как используем SSD. Спасибо админу *flag1*
П.С:  поподробнее пожалуйста о "кеш Firebird".

weee

Как посмотреть какую версию БД использую? Классик, Супер классик...?
в папке bin сервера есть install_classic.bat, install_super.bat эти файлы переводят базу даных в другой режим?

weee

Поставил CpuAffinityMask = 15 для 4 ядер
Ставлю генерацию отчета, всеравно грузит первое ядро и все. Может нужно переключить сервер?

admin

Цитата: weee від Лютий 26, 2015, 19:01:30
Может нужно переключить сервер?

Если вы про перегрузить, то конечно да.

admin

Цитата: 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, все запускать от админа.

crazyjonyster

У мена как раз 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-appx-architectures.html

admin

Цитата: isian1 від Лютий 26, 2015, 18:35:06
П.С:  поподробнее пожалуйста о "кеш Firebird".

Чуть подкорректировали настройки 2.5, в следующей версии должно работать быстрее на больших базах, т.к. действительно иногда 2.5 была медленней чем 1.5.