So I’m running the Centre’s rAM3 experiment (u-by395/ram3_flagship) and I’ve been asked to add some extra STASH outputs for another experiment.
The UM now fails with
????????????????????????????????????????????????????????????????????????????????
???!!!???!!!???!!!???!!!???!!! ERROR ???!!!???!!!???!!!???!!!???!!!
? Error code: 99
? Error from routine: IOS_CONSUME_CLIENT_MEM
? Error message: IOS Client memory cap ( 104857600) is too small for payload ( 1024000000)
? Error from processor: 0
? Error number: 63
????????????????????????????????????????????????????????????????????????????????
I’ve had a guess this is related to the IO server, so I’ve updated the size of ios_buffer_size=50000
to ios_buffer_size=100000
in the app/um/rose-app.conf namelist section that controls the IO server, but that hasn’t fixed it.
Increase the memory cap in your rose configuration or namelist by setting IOS_concurrency_max_mem to a larger value (in MB). For a 1 GB payload, you’d need at least 1024 MB.
Reduce the payload size by splitting large writes into multiple operations or by using different packing/compression settings.
Check if the data being written is unexpectedly large — verify that your output configuration isn’t writing more fields/levels than intended.
I also just had this issue, but solved it in a slightly different way.
Increasing the ios_concurrency_max_mem is valid, but I got around it by reducing the STASH stream reinit_step from the default 6 (output every 6 hours) to 1 (output every hour). Paul only just pointed me to this thread, so I’d thought I’d add an alternative solution.
Essentially the I/O was getting overloaded with the amount of data in the stream when saving out the file, so either increasing the memory or reducing the amount of data work.