Awal bulan ini saya mencatat perubahan penjadwal Linux yang diantrekan ke sched/core sebelum siklus Linux 5.18 yaitu diharapkan dapat membantu prosesor AMD EPYC dan prosesor Zen pilihan lainnya dalam berbagai beban kerja. Perubahan telah berjalan selama beberapa bulan dan tentang menyesuaikan ketidakseimbangan NUMA yang diizinkan saat menjangkau beberapa LLC. Saya sekarang telah melakukan beberapa tolok ukur saya sendiri pada perangkat keras EPYC dan memang meningkatkan kinerja kernel Linux lebih jauh.
Tambalan ini membicarakan peningkatan kinerja yang bagus… Sekarang pengujian di pihak saya.
Perubahan ini dimasukkan ke dalam”sched/core”sebelum jendela penggabungan Linux 5.18 bulan depan bukanlah perubahan khusus AMD tetapi perubahan yang menguntungkan prosesor Zen karena tata letak cache mereka. Mel Gorman yang menulis tambalan menjelaskan,”[Perubahan penjadwal kernel dari 2020] memungkinkan ketidakseimbangan antara node NUMA sehingga tugas komunikasi tidak akan dipisahkan oleh penyeimbang beban. Ini berfungsi dengan baik ketika ada hubungan 1:1 antara LLC dan node tetapi dapat menjadi suboptimal untuk beberapa LLC jika tugas independen menggunakan cache berbagi CPU secara prematur. Zen* memiliki beberapa LLC per node dengan saluran memori lokal dan karena ketidakseimbangan yang diizinkan, jauh lebih sulit untuk menyetel beberapa beban kerja agar berjalan secara optimal daripada saat ini perangkat keras yang memiliki 1 LLC per node. Patch ini memungkinkan ketidakseimbangan yang ada hingga titik di mana LLC harus seimbang antar node.”
Dapat mengonfirmasi peningkatan kinerja yang hebat pada seri EPYC 7003 di berbagai beban kerja dengan perubahan sched/inti TIP terbaru.
Tolok ukur Mel sendiri saat mengerjakan patch ini menunjukkan peningkatan hingga 272% untuk benchmark memori Stream dan juga kemenangan besar lainnya seperti 10% performa yang lebih baik di Coremark dan maksimal maksimum hingga 17%, kinerja SPECjbb Java naik sebanyak 18%, benchmark paralel NPB yang memalukan sekitar 17% lebih cepat, dan kemenangan penting lainnya. Mengingat hasil yang sangat menjanjikan yang dilaporkan, saya telah melakukan beberapa pengujian saya sendiri secara lokal dan angka yang saya lihat sama menariknya–terutama untuk perubahan penjadwal kernel Linux ini hanya sekitar 50 baris kode baru!
Pertama adalah beberapa tolok ukur yang dijalankan dengan server AMD EPYC 75F3 2P yang dibangun di sekitar motherboard ASRockRack ROME2D16-2T dan menjalankan Ubuntu 21.10. Performanya dibandingkan antara Linux 5.17 Git dan kemudian sched/core Git yang memiliki patch”sched/fair: Sesuaikan ketidakseimbangan NUMA yang diizinkan ketika SD_NUMA mencakup beberapa LLC”yang dimaksud. Kernel Kconfig yang sama antara kedua kernel digunakan.