We recently migrated our company file system to run on Azure Files. Performance generally seems very good, no difference to the data center we were previously using.
One large difference is the KNIME GUI is much slower than before. It takes along time to read the workflows from the file system and the GUI regularly freezes when running workflows. Opening and closing workflows also takes longer.
My temporary files are saved to the local disk so I don’t see why it should freeze so much. Any ideas how I might debug this to see the reason?
Example form the Error log:
eclipse.buildId=unknown
java.version=17.0.5
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64
org.eclipse.ui.monitoring
Info
Tue Jun 20 08:34:03 CEST 2023
Sample at 08:33:59.692 (+5,320s)
Thread 'main' tid=1 (WAITING)
Stack Trace
at java.base@17.0.5/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@17.0.5/java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Unknown Source)
at java.base@17.0.5/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Unknown Source)
at java.base@17.0.5/java.util.concurrent.locks.ReentrantLock$Sync.lock(Unknown Source)
at java.base@17.0.5/java.util.concurrent.locks.ReentrantLock.lock(Unknown Source)
at org.knime.core.node.workflow.WorkflowLock.lock(WorkflowLock.java:122)
at org.knime.core.node.workflow.WorkflowManager.lock(WorkflowManager.java:651)
at org.knime.core.node.workflow.WorkflowManager.getIncomingConnectionsFor(WorkflowManager.java:1719)
at org.knime.core.ui.wrapper.WorkflowManagerWrapper.getIncomingConnectionsFor(WorkflowManagerWrapper.java:247)
at org.knime.workbench.editor2.commands.DeleteCommand.<init>(DeleteCommand.java:165)
at org.knime.workbench.editor2.actions.NodeConnectionContainerDeleteAction.createDeleteCommand(NodeConnectionContainerDeleteAction.java:110)
at org.eclipse.gef.ui.actions.DeleteAction.calculateEnabled(DeleteAction.java:78)
at org.eclipse.gef.ui.actions.WorkbenchPartAction.refresh(WorkbenchPartAction.java:131)
at org.eclipse.gef.ui.actions.SelectionAction.handleSelectionChanged(SelectionAction.java:89)
at org.eclipse.gef.ui.actions.SelectionAction.setSelection(SelectionAction.java:101)
at org.eclipse.gef.ui.actions.SelectionAction.update(SelectionAction.java:124)
at org.eclipse.gef.ui.parts.GraphicalEditor.updateActions(GraphicalEditor.java:458)
at org.knime.workbench.editor2.WorkflowEditor.updateActions(WorkflowEditor.java:1698)
at org.knime.workbench.editor2.WorkflowEditor.selectionChanged(WorkflowEditor.java:2847)
at org.eclipse.ui.internal.e4.compatibility.SelectionService.notifyListeners(SelectionService.java:266)
at org.eclipse.ui.internal.e4.compatibility.SelectionService.handleSelectionChanged(SelectionService.java:98)
at org.eclipse.ui.internal.e4.compatibility.SelectionService.lambda$0(SelectionService.java:72)
at org.eclipse.ui.internal.e4.compatibility.SelectionService$$Lambda$501/0x0000000801328428.selectionChanged(Unknown Source)
at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$1.run(SelectionAggregator.java:123)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.notifyListeners(SelectionAggregator.java:120)
at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$5.lambda$0(SelectionAggregator.java:220)
at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$5$$Lambda$1539/0x00000008012f1608.run(Unknown Source)
at org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(RunAndTrack.java:59)
at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$5.changed(SelectionAggregator.java:220)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:105)
at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:356)
at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:372)
at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.setSelection(SelectionServiceImpl.java:34)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.selectionChanged(CompatibilityPart.java:471)
at org.eclipse.gef.ui.parts.AbstractEditPartViewer.fireSelectionChanged(AbstractEditPartViewer.java:247)
at org.eclipse.gef.ui.parts.AbstractEditPartViewer$1.run(AbstractEditPartViewer.java:131)
at org.eclipse.gef.SelectionManager.fireSelectionChanged(SelectionManager.java:156)
at org.eclipse.gef.SelectionManager.setSelection(SelectionManager.java:314)
at org.eclipse.gef.ui.parts.AbstractEditPartViewer.setSelection(AbstractEditPartViewer.java:751)
at org.knime.workbench.editor2.actions.delegates.AbstractEditorAction$SelectionRunnable.run(AbstractEditorAction.java:178)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4043)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3648)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
at org.eclipse.ui.internal.Workbench$$Lambda$259/0x0000000800ee6720.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
at org.knime.product.rcp.KNIMEApplication.start(KNIMEApplication.java:191)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base@17.0.5/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@17.0.5/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base@17.0.5/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base@17.0.5/java.lang.reflect.Method.invoke(Unknown Source)
at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at app//org.eclipse.equinox.launcher.Main.run(Main.java:1467)