ceph - crimson - 2024-11-04

Timestamp (UTC)Message
2024-11-04T07:52:17.257Z
<Yingxin Cheng> @Matan Breizman @Jose J Palacios-Perez Sorry about the late reply, I think starting with disabling hyperthreading might be **simpler** to control Crimson workloads from the physical core perspective. Running two (non-block) seastar reactor threads using the same physical core might not be ideal, and redpanda (based on seastar) disables it by default: <https://www.redpanda.com/blog/rpk-command-line-interface-developer-productivity> .
2024-11-04T07:58:33.019Z
<Yingxin Cheng> However, bluestore threads might benefit from hyperthreading -- there is no pinning requirements -- same with classic OSD.
2024-11-04T12:04:39.371Z
<Jose J Palacios-Perez> My understanding is that the following threads are bluestore (aka non-seastar reactors):
`alien-store-tp, bstore_aio, rocksdb, bstore_kv_sync, bstore_mempool, bstore_kv_final`
2024-11-04T12:05:55.528Z
<Jose J Palacios-Perez> Any idea how to tune the value for /proc/sys/fs/aio-max-nr? I'm getting the following warning  persistently, and fails to completely setup the OSD process:
```WARN  2024-11-04 11:52:25,859 seastar - Requested AIO slots too large, please increase request capacity in /proc/sys/fs/aio-max-nr. configured:655360 available:655360 requested:1058496
WARN  2024-11-04 11:52:25,859 seastar - max-networking-io-control-blocks adjusted from 10000 to 5800, since AIO slots are unavailable
INFO  2024-11-04 11:52:25,859 seastar - Reactor backend: linux-aio```
2024-11-04T13:57:41.892Z
<Matan Breizman> You should be able to edit them in /proc/sys/fs/aio-max-nr
2024-11-04T14:32:48.235Z
<Jose J Palacios-Perez> Precisely, I've been  setting the value by hear, sort to speak, every time I hit the issue I use a higher value. For example, in my .dockerfile I have the following initial value configured:
```RUN echo $(( 65536 * 9 )) > /proc/sys/fs/aio-max-nr```
later, when trying to deploy say 8 OSDs, I hit the err/warn above. Just recently, I've hit some Seastar asserts 😢
(probably related) that's why I was wondering if there was a way to calculate the precise value needed before hand.
2024-11-04T16:43:21.031Z
<Matan Breizman> Looks like run_make_check has a similar logic:
```    local aiomax="$((65536 * procs))"
    if [ "$(/sbin/sysctl -n fs.aio-max-nr )" -lt "${aiomax}" ]; then
        $DRY_RUN sudo /sbin/sysctl -q -w fs.aio-max-nr="${aiomax}"
    fi```
I've just pushed <https://github.com/ceph/ceph/pull/60611> to discuss to it further

Any issue? please create an issue here and use the infra label.