Philip Schwartz
08/27/2026, 2:13 AMPhilip Schwartz
08/27/2026, 2:15 AMevenyag
08/27/2026, 2:40 AMPhilip Schwartz
08/27/2026, 3:10 AMevenyag
08/27/2026, 3:15 AMOfficial Docker images enable heap profiling by default.Yes, it should work by default.
Philip Schwartz
08/27/2026, 3:18 AMPhilip Schwartz
08/27/2026, 4:10 AMevenyag
08/27/2026, 4:18 AMgreptimedb-performance-diagnosis
• greptimedb-performance-tuning
• greptimedb-table-design
github.com/GreptimeTeam/docs/…/skillsPhilip Schwartz
08/27/2026, 4:41 AMPhilip Schwartz
08/27/2026, 4:41 AMevenyag
08/27/2026, 5:37 AMevenyag
08/27/2026, 5:46 AMPhilip Schwartz
08/27/2026, 6:11 AMPhilip Schwartz
08/27/2026, 6:12 AMPhilip Schwartz
08/27/2026, 6:14 AMevenyag
08/27/2026, 6:35 AMI added via the otel collector a transform doing an FNV of the IP addr and a mod 256 on it giving us 256 possible values. I was planning on building partitions using this and was going to most likely start with blocks of 16 numbers per partition.Looks good. I think we can collect a memory flamegraph for the memory issue. If you have enabled our self-monitor compotent, you can also share the memory usage panel with us. docs.greptime.com/user-guide/deployments-administration/monitoring/cluster-monitoring-deployment We also have a
self-monitoring-export skill to help export metrics/logs. You may try that.Philip Schwartz
08/27/2026, 5:48 PMPhilip Schwartz
08/27/2026, 5:49 PMPhilip Schwartz
08/27/2026, 5:49 PMPhilip Schwartz
08/27/2026, 5:50 PMPhilip Schwartz
08/27/2026, 5:50 PMPhilip Schwartz
08/27/2026, 5:51 PMPhilip Schwartz
08/27/2026, 6:10 PMPhilip Schwartz
08/27/2026, 6:14 PMevenyag
08/28/2026, 2:40 AMQuestion, Do number of partitions need to match number of datanodes? or can we have more partitions then datanodes?You can have more partitions then datanodes. We use 2c4g or 2c2g pods for meta. Usually 2 meta pods are sufficient.
evenyag
08/28/2026, 2:46 AMPhilip Schwartz
08/28/2026, 4:23 AMPhilip Schwartz
08/28/2026, 5:16 AMPhilip Schwartz
08/28/2026, 5:16 AMPhilip Schwartz
08/28/2026, 5:17 AMPhilip Schwartz
08/28/2026, 5:17 AMPhilip Schwartz
08/28/2026, 5:17 AMevenyag
08/28/2026, 6:16 AMPhilip Schwartz
08/28/2026, 6:17 AMmax_concurrent_scan_files passing the default 384 files.Philip Schwartz
08/28/2026, 6:18 AMPhilip Schwartz
08/28/2026, 6:19 AMPhilip Schwartz
08/28/2026, 6:19 AMevenyag
08/28/2026, 6:20 AMmax_concurrent_scan_file shoudn’t cause restart.
Do you mean datanode-8 is in a restart loop now?Philip Schwartz
08/28/2026, 6:23 AMPhilip Schwartz
08/28/2026, 6:23 AMtoo many files to read concurrently: 763, max allowed: 384Philip Schwartz
08/28/2026, 6:23 AMPhilip Schwartz
08/28/2026, 6:24 AMevenyag
08/28/2026, 6:28 AMPhilip Schwartz
08/28/2026, 6:30 AMIncident B — 04:10:00–04:24:59 UTC 08-28, unresolved. Queries against greptime-cluster-datanode-8 fail with Too many files to read concurrently: N, max allowed: 384 from mito2 scan paths. The datanode exited code 1 at 04:23:42 and restarted at 04:24:05. That stopped the log flood but not the cause — reported file count was 512 during the flood and 698–960 after, i.e. the backlog grew across the restart. Frontends were still failing queries at 05:39. Compaction on that node isn't keeping pace with ingest.Philip Schwartz
08/28/2026, 6:34 AMPhilip Schwartz
08/28/2026, 6:34 AMPhilip Schwartz
08/28/2026, 6:35 AMevenyag
08/28/2026, 6:37 AMevenyag
08/28/2026, 6:40 AMPhilip Schwartz
08/28/2026, 6:41 AMevenyag
08/28/2026, 6:41 AMPhilip Schwartz
08/28/2026, 6:41 AMPhilip Schwartz
08/28/2026, 6:42 AMevenyag
08/28/2026, 6:47 AM04:23:42 and restarted at 04:24:05Philip Schwartz
08/28/2026, 6:47 AMPhilip Schwartz
08/28/2026, 6:48 AMevenyag
08/28/2026, 6:48 AMevenyag
08/28/2026, 6:49 AMPhilip Schwartz
08/28/2026, 6:49 AMevenyag
08/28/2026, 6:52 AMkubectl logs <pod-name> --previousPhilip Schwartz
08/28/2026, 6:53 AMPhilip Schwartz
08/28/2026, 6:58 AMevenyag
08/28/2026, 6:59 AMevenyag
08/28/2026, 7:03 AMPhilip Schwartz
08/28/2026, 7:14 AMPhilip Schwartz
08/28/2026, 7:14 AMPhilip Schwartz
08/28/2026, 7:15 AMPhilip Schwartz
08/28/2026, 7:15 AMGreptimeDB error: 400 - {"code":3000,"error":"Failed to plan SQL: No field named info. Valid fields are _gt_logs.pod_ip, _gt_logs.namespace, _gt_logs.cluster, _gt_logs.file, _gt_logs.module_path, _gt_logs.level, _gt_logs.target, _gt_logs.role, _gt_logs.pod, _gt_logs.message, _gt_logs.err, _gt_logs.timestamp.","execution_time_ms":1}evenyag
08/28/2026, 7:17 AMinfo in our sql.
Could you check the json of the perses dashboard?Philip Schwartz
08/28/2026, 7:20 AMPhilip Schwartz
08/28/2026, 7:20 AMSELECT `timestamp`,
CONCAT('[', `level`, ']', ' ', '<', `target`, '>', ' ', `message`) AS `line`,
`role`,
`pod`,
`pod_ip`,
`namespace`,
`cluster`,
`err`,
`file`,
`module_path`
FROM `_gt_logs`
WHERE
('$level' = '$__all' OR `level` IN ($level))
AND ('$role' = '$__all' OR `role` IN ($role))
AND ('$pod' = '' OR `pod` = '$pod')
AND ('$target' = '' OR `target` = '$target')
AND ('$search' = '' OR matches_term(`message`, '$search'))
AND ('$exclude' = '' OR NOT matches_term(`message`, '$exclude'))
AND `timestamp` BETWEEN to_timestamp_millis($__from) AND to_timestamp_millis($__to)
ORDER BY `timestamp` DESC
LIMIT $limitevenyag
08/28/2026, 7:25 AMPhilip Schwartz
08/28/2026, 7:26 AMPhilip Schwartz
08/28/2026, 7:26 AM$level is being translated and it thinks it is doing a where info = ...Philip Schwartz
08/28/2026, 7:28 AMPhilip Schwartz
08/28/2026, 7:36 AMPhilip Schwartz
08/28/2026, 7:47 AMPhilip Schwartz
08/28/2026, 8:05 AMPhilip Schwartz
08/28/2026, 8:05 AMPhilip Schwartz
08/28/2026, 8:06 AMPhilip Schwartz
08/28/2026, 8:06 AMPhilip Schwartz
08/28/2026, 8:06 AMevenyag
08/28/2026, 8:08 AMPhilip Schwartz
08/28/2026, 8:08 AMevenyag
08/28/2026, 8:13 AMGreptimeDB version when it restarts so you can get the logs before that.
You can also grep the error logs of the node and share them.evenyag
08/28/2026, 8:16 AMPhilip Schwartz
08/28/2026, 8:18 AM