2
« : 21 Май 2017, 18:24:57 »
Добрый день Егор!
Большое спасибо что уделили мне время.
Немного о системе. Это MIPS 24KEc Mediatek MT7688AN . 1 ядро 32 бита 580мгц 128 рам.
Лдап сервер я беру с репозитория OpenWRT где он собирается автоматически. И к сожалению без функции дебага.
В дебрях конференции родного сайта opеnldap.org я раскопал похожий случай 10 летней давности. Там товарищ вообще на 32мб рама в OpenWRT запускал. Но для этого он выставлял threads 1 . Что я и сделал. Но не помогло :-(.
Тогда я первую базу, перевел на ldif а вторую оставил mdb - так как именно вторая массивная будет. И все заработало. Но при этом maxsize не более 1,9гб смог выставить, если ставлю больше, не загружается. Хотя с опцией -Tt -n1 - показывает что все ок. Думал еще maxreaders порезать до 10 - так как запросы в базу делает всего 1 программа. Но это никак не влияет. Хуже того, если направляю в базу обновления значения переменной, после 60 обновлений - база вылетает, причем молча. При повторном запуске, все работает, пока не запишу 60 раз.
По поводу накопителя где располагается mdb. Вы правы - это флешка 4гб. Я тоже думал в ней дело, я перевел ее на f2fs - это специальная файловая система для флешек, очень быстрая. Не помогло. Тогда я вообще в памяти смонтировал диск, и туда направил mdb. Без результативно :-(
В итоге, если первую базу сделать ldif а вторую mdb, то работает. Но при этом maxsize не больше 1,9Гб (а надо хотя бы 4), и после 60 записей mdb вылетает. Про первую я молчу, так как эта база вообще смонтирована в памяти, и ее размер не более 500кб в принципе.
Как Вы думаете, может это потому что база криво собирается в репозитории? Или может какой урезанный вариант? Все запросы в базу направляет специальная программа, написана он на C. Есть такая вероятность что именно она вешает базу?
На всякий случай прилагаю schema - может там не так что то?
# Схема для LinkIt
objectIdentifier litOID 1.1
objectIdentifier litLDAP litOID:2
objectIdentifier litAttrType litLDAP:1
objectIdentifier litObjClass litLDAP:2
# Time format - ггммддччммсс
attributetype ( litAttrType:1
NAME 'modifyTime'
DESC 'Contains the time of the last modification of the directory entry.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SINGLE-VALUE )
attributetype ( litAttrType:2
NAME 'wr'
DESC 'Признак доступа на запись'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE )
attributetype ( litAttrType:3
NAME 'stat'
DESC 'Признак статистического параметра - сохранить некоторые'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE )
attributetype ( litAttrType:4
NAME 'parameterName'
DESC 'Значение переменной'
SUP name )
attributetype ( litAttrType:5
NAME 'value'
DESC 'Значение переменной'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( litAttrType:6
NAME 'prevValue'
DESC 'Предыдущее значение переменной'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( litAttrType:7
NAME 'power'
DESC 'Порядок числа значения'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( litAttrType:8
NAME 'recverAdd'
DESC 'Допустимо ли добавлять получателя параметра'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE )
attributetype ( litAttrType:9
NAME 'recverName'
DESC 'Имя получателя значения параметра'
SUP name )
attributetype ( litAttrType:10
NAME 'iface'
DESC 'Имя интерфейса Аппаратного Модуля'
SUP name
SINGLE-VALUE )
attributetype ( litAttrType:11
NAME 'dest'
DESC 'Destination of communication message'
SUP name
SINGLE-VALUE )
attributetype ( litAttrType:12
NAME 'source'
DESC 'Source of communication message'
SUP name )
attributetype ( litAttrType:13
NAME 'commMsg'
DESC 'Communication message'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
ORDERING caseIgnoreOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( litAttrType:14
NAME 'errorMsg'
DESC 'Error Message'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
ORDERING caseIgnoreOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( litAttrType:15
NAME 'errNumMsg'
DESC 'The Error Number Message'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
ORDERING caseIgnoreOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( litAttrType:21
NAME 'attr1'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:22
NAME 'attr2'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:23
NAME 'attr3'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:24
NAME 'attr4'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:25
NAME 'attr5'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:26
NAME 'attr6'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:27
NAME 'attr7'
DESC 'Атрибут на будущее'
SUP value )
attributetype ( litAttrType:28
NAME 'attr8'
DESC 'Атрибут на будущее'
SUP value )
objectclass ( litObjClass:1
NAME 'pmam'
DESC 'SoftModule or HardModule'
SUP organizationalUnit STRUCTURAL
MUST ( ou $ wr $ stat $ iface)
MAY ( description $ attr1 $ attr2 $ attr3 $ attr4 $ attr5 $ attr6 $ attr7 $ attr8 )
)
objectClass ( litObjClass:3
NAME 'statDeviceModule'
DESC 'статистика Аппаратный Модуль'
SUP organizationalUnit STRUCTURAL
MUST ( ou )
)
objectClass ( litObjClass:4
NAME 'parameter'
DESC 'Класс Параметры'
SUP top STRUCTURAL
MUST ( parameterName $ value $ prevValue $ power $ wr $ stat $ recverAdd )
MAY ( description $ recverName $ modifyTime )
)
objectClass ( litObjClass:5
NAME 'statParameter'
DESC 'статистика Параметры'
SUP top STRUCTURAL
MUST ( parameterName )
MAY ( description )
)
objectClass ( litObjClass:6
NAME 'statRecord'
DESC 'статистическая запись'
SUP top
MUST ( value $ modifyTime )
MAY ( description )
)
objectClass ( litObjClass:8
NAME 'statComm'
DESC 'статистика Коммуникация'
SUP top STRUCTURAL
MUST ( modifyTime $ commMsg )
MAY ( description )
)
objectClass ( litObjClass:9
NAME 'statError'
DESC 'статистика Ошибок'
SUP top
MUST ( modifyTime $ ou $ errNumMsg)
MAY ( description $ errorMsg )
)
С Уважением Михаил