Performance Issues with Linux on IBM Z (s390x) – Seeking Optimization Tips

Hi everyone,

I have been running Linux (RHEL 9) on an IBM Z system (s390x architecture) and have noticed some performance bottlenecks…, particularly with I/O operations and memory management.
While CPU utilization remains relatively stable, disk I/O appears to be a limiting factor, causing slow response times in high-load scenarios.

I am looking for insights into the best practices for optimizing Linux performance on s390x. Specifically :-

Are there recommended kernel tuning parameters for better I/O throughput: ??
Would switching to specific file systems improve performance: ??
Any known best practices for memory management and paging on IBM Z: ??

I would appreciate any guidance from those with hands-on workday experience tuning Linux for s390x.

Thanks in advance !!

With Regards,
Derek Theler

disk I/O appears to be a limiting factor

I would recommend to investigate the cause for the performance issues futher before taking action. Typical thing I normally look at are:

  • top : especially wait and steal times, but also look at high system times
  • free : it is ok to have some swap in use, but it should not be a lot of swap in use. You also should have reasonable high numbers of cache and buffers
  • iostat -mxz 2 : look for the utilization of your disks

A little more advanced, and more like searching for issues could be:

  • check the alignment of your disk setup. Typically you will need to have partitions, volume manager and filesystems all alinged to 4k; misalignment instantly doubles the pressure on the hardware.
  • something that has caused trouble for some workloads was the availability of entropy: cat /proc/sys/kerel/random/entropy_avail
  • if you are using FibreChannel and multipath, you might want to look at your multipath configuration – this should match the used storage

Although people sometimes think that a different filesystem makes a big difference, this is only true if you put effort in tuning the filesystem beforehand to your specific needs. The manual page for mount(8) contains filesystem specific mount options that you might want to have a look at.

Berthold