Hey folks,
Ignition 8.1 gateway here with KEPServerEX 6.14 on its own VM, nine devices, mostly ControlLogix over the Allen-Bradley ControlLogix Ethernet driver plus two Modbus meters. Tag count in KEP is just over 46,000, because whoever set the Logix devices up had them generate the whole controller database on startup.
Any OPC browse, from the gateway, from the OPC Quick Client or from UaExpert, takes around ten minutes and one core on the VM sits at 100% the whole time. Once the browse is done, reads and subscriptions are fine. It's only the browse that hurts.
I gave the VM two more cores and there's no change, still one core pegged, and I restarted the runtime after that for good measure.
Is there a browse cache setting I'm missing, or is this just what 46k tags costs? Or should I be cutting those Logix devices back so they stop generating the whole controller database at startup?
> generate the whole controller database on startup
How many of the 46k does the gateway actually subscribe to? On ours it was under 2,000 of 30k. And are those Logix tags flat, or does it expand every UDT member and array element? Pretty sure that's where the count explodes.
Subscribed is 1,800 give or take. The rest is every array element of every UDT on four controllers. Nobody asked for them, the integrator ticked generate on startup and left.
Then the browse is walking 44,000 nodes nobody wants, and KEP builds that tree per request, so you pay for it every time a client opens it. Not a cache problem, a tag count problem. More RAM or a second server just spreads the same walk.
Two things. Device properties, Tag Generation, set On Startup to Do Not Generate, or they come back on the next restart. Then right click each device, Export CSV, delete the rows you do not read, Import CSV. Tag names stay the same so the gateway's OPC item paths still match. Ours dropped from minutes to a few seconds after the same cut.
Someone did a decent article on the OPC side of this: https://plctr.com/introduction-to-opc-open-platform-communications-for-plc-integration/
Did one controller as a test on 6.14, 14k down to 600. Browse on that device is instant now. The other three still crawl and that core's still at 100%, so the export and prune is real work, a spreadsheet with 30k rows.
Filter the CSV on the Address column, anything ending in an array index you don't read, delete the block. Twenty minutes a device, not a day.