Страница 1 из 1

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 4:22
Nibirjanin
Здравствуйте!
Столкнулся со странной, для меня, проблемой. Программа нормально работает на внешних дисках подключенных через USB, а на внутреннем сильно тормозит. Пробовал на разных компьютерах с WIN 10 и WIN 7. Тормозит, как я понимаю, при записи в файл TPS, цепляется в диск и, практически, не отпускает.. Даже на старой флэшке программа работает в 3 раза быстрее чем на внутреннем диске. А скорость работы на внутренних и внешних дисках отличается более чем на порядок. Внутренние диски компьютеров сконфигурированы в RAID1, Один из внешних дисков тоже RAID1, на нём работает нормально. Программа написана на CW8. С таким столкнулся впервые. Поможите, кто чем может! :)

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 10:17
kreator
У Вас разные компы и везде raid?
В принципе, информации мало. Можете поймать момент торможения? Ну, например, в момент записи блоба или что там. Попробуйте без рейда для начала.

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 10:57
Nibirjanin
На обоих десктопах RAID 1, и есть медленный ноут с win 10 ,без RAID
Вот такой простенький код выполняется на внутренних дисках десктопов и в конце выдаёт такие числа 34 18 18
На внешних дисках подключённых к этим десктопам выдаёт 1 1 1, один из внешних дисков на одном десктопе тоже RAID 1
На внешнем диске подключённом к ноуту выдаёт 5 2 2, на внутреннем диске ноута выдаёт 25 13 13

r:MaxID = 2865
t1# = CLOCK()
CREATE(SCBridgeQueue)
OPEN(SCBridgeQueue, 42H)
STREAM(SCBridgeQueue)
SET(SCBridgeQueue)
r:r1 = 1
r:r2 = 0
t2#= CLOCK()
LOOP WHILE r:r1 <= r:MaxID ! 753 цикла
r:r2 = r:r1 + 4
SCBrQ:Value1 = r:r1
SCBrQ:Value2 = r:r2
ADD(SCBridgeQueue)
r:r1 += 5
r:r2 = r:r1 + 4
.
t3# = CLOCK()
CLOSE(SCBridgeQueue)
t4# = clock()
stop(t4#-T1# &' '& t4#-T2# &' '&t4#-T3#)

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 11:43
kreator
Моё мнение такое. Время на внутренних дисках реальное. А на внешних - это время посылки в некий буфер. Винда с usb так работает. Т.е. Вам кажется, что запись прошла, а реально ещё нет. Есть где-то в Винде настройка работы с usb-накопителями. Можно наверно выставить параметры так, что будет сравнимо со внутренними накопителями. Но врать не буду, хотите, ищите сами.
А реальная проблема есть? Или просто кажется, что добавление 753 записей в tps за 35 миллисекунд это непозволительно долго?

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 11:57
Nibirjanin
Это просто поиск проблемы. В реальности на внешних накопителях программа считает 30 сек, а на внутреннем - это десяток минут. Есть разница

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 12:08
kreator
Считает - это означает запись? Я вот как сторонний наблюдатель. В секунду пишется 753*30=20000 записей. Если что-то у Вас расчёт идёт десять минут, то пишется 20000*600=12 млн записей!!! На мой взгляд, не там ищем.

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 12:53
Nibirjanin
Нет, программа в основном считает и иногда пишет результаты расчёта в базу. Проблема в том, что на внешних дисках, и даже запущенная на старой медленной флешке, программа считает в несколько раз быстрее чем на внутреннем RAID 1 диске. (На системных SSD дисках считает быстро.) Если бы это было на одном компьютере, то можно было бы грешить на компьютер. Но такое происходит на разных компьютерах, с разными системами.

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 13:48
kreator
Ищите кусок, где тормозит. Может это как раз и озвученный мной случай. Вам просто кажется, что запись на флешку прошла, а реально она в буфере. Хотя цифры, которые Вы приводите (десяток минут), для меня дичь какая-то. Я бы начал с проверки записи. Чтение tps кажется не должно вызывать вопросов.

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 15:11
Nibirjanin
У меня задача многопоточная, параллельные, можно сказать, вычисления. При полной загрузке 6 ядерного процессора будет делать один расчёт часа два. Приходится искать узкие места, и вот наткнулся на такое.

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 15:24
kreator
Не знаю, не знаю. Расскажите что за расчёт. И при чём здесь БД?

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 15:30
Yufil
Когда у меня такое - ищу, не включена ли где-то случайно трассировка базы данных ...

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 15:35
Nibirjanin
Грубо говоря - расчёт фактора вероятности затопления судна в повреждённом состоянии. А БД при том, что туда пишем промежуточные, да и конечные, результаты. БД - это сильно громко для моего случая, но хранить как-то надо :)

Программа тормозит на внутреннем диске.

Добавлено: 29 Июнь 2020, 15:38
Nibirjanin
Два часа на 6 ядрах для такого расчёта - это вполне приемлемо. Самые крутые конкуренты считают не принципиально быстрее.