Simple-Scada forum
Simple-Scada 2 => Ошибки => Тема начата: Genrosol от 05 Октября 2016, 10:36:31
-
Здравствуйте, уважаемы разработчики!
На данный момент тестируем демо-версию вашего продукта на стабильность работы с большим количеством переменных (6000 внутренних переменных, период записи в тренд - 1 секунда, присвоение переменной рандомного значения через скрипт каждую секунду).
Проект запустился (уже неплохо, не каждая SCADA готова производить столько операций в секунду), но возникла проблема при отображении трендов. При перемещении шкалы времени (и мышью, и кнопками) часть графика "срезается" (скриншоты во вложении). При дальнейшем перемещении по шкале времени "срезанная" часть графика корректно перерисовывается, но может появиться новый "срез" в другом месте.
Версия Simple-Scada - 2.1.0;
ОС - пробовали Winodws XP SP3 и Windows 7 SP1;
Версия MySQL - пробовали 5.7.15 (на Windows 7), 5.6.33 (на Windows XP), 5.6.20 (на Windows XP).
-
Genrosol, спасибо за подробное описание, эта проблема известна и связана с синхронизацией данных между клиентом и сервером. Сервер отправил данные на запись в БД и удалил их из своей памяти, а клиент читает данные от сервера и получает данные со "срезом", т.к. они ещё не записались в БД и уже удалены из памяти сервера. Эта проблема влияет только на отображение данных на клиентах, никакие данные при этом не теряются (поэтому вскоре они становятся видны). Постараемся решить этот вопрос как можно скорее.
-
никакие данные при этом не теряются
Отлично, это самое главное!
Еще при частом перемещении по шкале времени (или частом нажатии кнопки "автопрокрутки") один раз произошел кратковременный останов сервера БД (точный текст сообщения я не успел запомнить). Этот момент виден на скриншотах 10.18.26 (348).PNG и 10.20.21 (133).PNG. Возможно, дали о себе знать Windows 7 и 1Gb оперативки? Будет время, попробуем еще раз форсировать подобный останов сервера.
-
Genrosol, именно останов сервера БД? Сервер скады (Server.exe) при этом продолжил работу?
-
Второй раз не удалось вызвать нештатный останов, а в первый - сразу же не вникая закрыл всплывшее окно с сообщением (плохая привычка).
Но при дальнейших испытаниях было выявлено, что некоторые "срезы" на трендах не перерисовываются (скриншоты во вложении). Выходит, данные не записались в БД? На скриншотах два разных участка тренда, на которых произошла потеря данных.
-
Еще очень загадочно происходит импорт переменных из CSV-файла (файл прикрепил к сообщению). Из 6000 однотипных переменных импортировалось только 5460, при этом Editor не выдал ошибок и сообщил, что было пропущено 0 переменных. Пропуски переменных начинаются с переменной "TestVar3017". При попытке ввести переменную с именем TestVar3018, Editor ругается сообщением "Объект с таким именем уже существует".
-
было выявлено, что некоторые "срезы" на трендах не перерисовываются (скриншоты во вложении). Выходит, данные не записались в БД?
Да, это значит данные действительно не попали в БД. Можете повторить тест и посмотреть на сервере строку "Пропущено" (см. вложение)? Не увеличивается ли со временем число пропущенных вставок?
Из 6000 однотипных переменных импортировалось только 5460
Уже устранили. Обновленный редактор можно скачать здесь (https://drive.google.com/file/d/0B4cIa-JRmyDOYjVubnlvUjBlcTQ/view?usp=sharing).
-
Не увеличивается ли со временем число пропущенных вставок?
Увеличивается. За 1.5 часа непрерывной работы образовалось около 5 "срезов" в трендах, а в строке "Пропущено" накопилось 9 значений (скриншот прилагается).
Обновленный редактор можно скачать здесь.
Есть возможность прикрепить файл к письму? Мы несколько ограничены в использовании интернет ресурсов (в том числе Google-диск) и проносе информационных носителей.
-
SCADA отработала 3 часа, количество пропусков (в строке "Пропущено") увеличилось до 42, в журнале появилась сообщение об ошибке (скриншот прилагается).
-
Genrosol, теперь ситуация стала понятнее. СУБД не успевает с достаточной скоростью производить такое количество вставок данных в таблицу БД и поэтому очередь на вставку постепенно растет. Сервер Simple-Scada не позволяет этой очереди расти бесконечно (иначе очередь просто займет всю память) и начинает пропускать некоторые вставки. Сейчас у нас есть идеи как мы могли бы решить этот вопрос и существенно повысить количество вставок в БД даже на слабых компьютерах. Можем попробовать реализовать это в ближайшие два дня, если это Вас устроит.
Мы несколько ограничены в использовании интернет ресурсов (в том числе Google-диск) и проносе информационных носителей.
Обновили скаду на хостинге. Можете скачать Demo-версию (http://simple-scada.com/?download=Simple-Scada%202%20(demo)) снова и скинуть в неё свой проект (пересохранять не нужно).
-
Обновили скаду на хостинге.
Большое спасибо.
Можем попробовать реализовать это в ближайшие два дня, если это Вас устроит.
Ни в коем случае не работайте на выходных. :)
Еще немного новостей с места события. Спустя 4.5 часа работы сервера размер таблицы трендов достиг 4ГБ и в журнале стали появляться сообщения о переполнении таблицы трендов (скриншот прилагается), ну и, соответственно, данные перестали записываться в БД.
-
Спустя 4.5 часа работы сервера размер таблицы трендов достиг 4ГБ и в журнале стали появляться сообщения о переполнении
Ограничений по размеру таблицы быть не должно. Возможно у Вас жесткий диск компьютера использует файловую систему FAT32?
-
Возможно у Вас жесткий диск компьютера использует файловую систему FAT32?
На всех логических дисках используется файловая система NTFS. Свободного места на диске, куда происходит запись данных, 14 ГБ.
-
Сейчас можем только предположить, что MySQL по какой-то причине ограничила размер табличного пространства InnoDB и место в нём закончилось. Это можно проверить. Продолжим общение в личной переписке.
-
Файлы к личному сообщению.
-
Скриншот к личному сообщению.
-
После обновления с 2.1.2.0 до 2.2.0.6 в трендах если выбрать интервал времени более 12 часов - тренды не видны.
-
mepexa, выключите флажок "Использовать продвинутую систему архивации" в Options.exe (раздел Simple-Scada Server). После того, как старые данные трендов окончательно устареют и будут ненужны - флажок можно будет снова включить.