To avoid node resource contention between Dremio deployments and other deployments in the cluster complete the following steps.

Dremio requires nodes with a minimum of 32 GB of RAM. For optimal query performance, allow 128 GB of RAM and at least 16 CPU cores for Dremio nodes.
  1. Apply a taint named dremio with a value of true and a NoSchedule effect.
    kubectl: kubectl taint nodes <your-node-name> dremio=true:NoSchedule
  2. Apply a label named dremio with a value of true.
    kubectl: kubectl label nodes <your-node-name> dremio=true
  3. To clear pods that Kubernetes already scheduled to this node, manually drain the node.
    kubectl: kubectl drain --ignore-daemonsets <your-node-name>
  4. Open systemlink-values.yaml.
  5. Configure dataframeservice.sldremio.zookeeper.count to the number of nodes with the dremio label.
  6. Configure dataframeservice.sldremio.nodeSelector to dremio: "true".
  7. Adjust the following parameters as-needed so that the tainted nodes can accommodate the pods.
    • dataframeservice.sldremio.coordinator.cpu
    • dataframeservice.sldremio.coordinator.memory
    • dataframeservice.sldremio.executor.cpu
    • dataframeservice.sldremio.executor.memory
    • dataframeservice.sldremio.executor.count
    Note Reducing resource requests and executor counts substantially from the defaults might diminish DataFrame Service query performance.
Next, configure how SystemLink Enterprise stores your Dremio files.