[
https://issues.apache.org/jira/browse/CASSANDRA-19569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Norbert Schultz updated CASSANDRA-19569:
Platform: Java11,Linux (was: All)
Description:
We are in the process of migrating cassandra from 3.11.x to 4.1.4 and upgrading
the sstables using sstableupgrade from Cassandra V4.1.4, from `me-` to `nb-`
Format
Unfortunately, the process is very very slow (less than 0.5 MB/s).
Some observations:
- The process is only slow on (fast) SSDs, but not on ram disks.
- The sstables consist of many partitions (this may be unrelated)
- The upgrade process is fast, if we use `automatic_sstable_upgrade` instead of
the sstableupgradetool.
- We give enough RAM (export MAX_HEAP_SIZE=8g)
On profiling, we found out, that sstableupgrade is burning most CPU time on
{{posix_fadvise}} (see flamegraph_sstableupgrade.png ).
My naive interpretation of the whole {{maybeReopenEarly}} to {{posix_fadvise}}
chain is, that the process just informs the linux kernel, that the written data
should not be cached. If we comment out the call to
{{NativeLibrary.trySkipCache}}, the conversion is running at expected 10MB/s
(see flamegraph_ok.png )
was:
We are in the process of migrating cassandra from 3.11.x to 4.1.4 and upgrading
the sstables using sstableupgrade from Cassandra V4.1.4, from `me-` to `nb-`
Format
Unfortunately, the process is very very slow (less than 0.5 MB/s).
Some observations:
- The process is only slow on (fast) SSDs, but not on ram disks.
- The sstables consist of many partitions (this may be unrelated)
- The upgrade process is fast, if we use `automatic_sstable_upgrade` instead of
the sstableupgradetool.
- We give enough RAM (export MAX_HEAP_SIZE=8g)
On profiling, we found out, that sstableupgrade is burning most CPU time on
{{posix_fadvise}} (see attached !flamegraph_sstableupgrade.png! ).
My naive interpretation of the whole {{maybeReopenEarly}} to {{posix_fadvise}}
chain is, that the process just informs the linux kernel, that the written data
should not be cached. If we comment out the call to
{{NativeLibrary.trySkipCache}}, the conversion is running at expected 10MB/s
(see !flamegraph_ok.png! )
> sstableupgrade is very slow
> ---
>
> Key: CASSANDRA-19569
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19569
> Project: Cassandra
> Issue Type: Bug
>Reporter: Norbert Schultz
>Priority: Normal
> Attachments: flamegraph_ok.png, flamegraph_sstableupgrade.png
>
>
> We are in the process of migrating cassandra from 3.11.x to 4.1.4 and
> upgrading the sstables using sstableupgrade from Cassandra V4.1.4, from `me-`
> to `nb-` Format
> Unfortunately, the process is very very slow (less than 0.5 MB/s).
> Some observations:
> - The process is only slow on (fast) SSDs, but not on ram disks.
> - The sstables consist of many partitions (this may be unrelated)
> - The upgrade process is fast, if we use `automatic_sstable_upgrade` instead
> of the sstableupgradetool.
> - We give enough RAM (export MAX_HEAP_SIZE=8g)
> On profiling, we found out, that sstableupgrade is burning most CPU time on
> {{posix_fadvise}} (see flamegraph_sstableupgrade.png ).
> My naive interpretation of the whole {{maybeReopenEarly}} to
> {{posix_fadvise}} chain is, that the process just informs the linux kernel,
> that the written data should not be cached. If we comment out the call to
> {{NativeLibrary.trySkipCache}}, the conversion is running at expected 10MB/s
> (see flamegraph_ok.png )
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org