диска и запустил dd с fdatasync
результат: немного подлагивает ввод
без dd: подлагиваний нет
вернул директорию на шифрованный раздел, запустил dd с fdatasync:
результат: зависания сильные, больше чем не на зашифрованном разделе
без dd: есть мелкие противные подлагивания, о которых я писал изначально
что еще сделал, что позволило (субъективно) уменьшить лаги:
1. вырубил конченный dmcrypt_write. оказывается там аж 4 треда трудятся над шифрованием (kworker) а потом все "сливают" одному треду под названием dmcrypt_write. он-то и выжирает все I/O. не смотрел в код, но поспекулирую, что проблема в этом подходе такая: с точки зрения I/O планировщика клиент у него всего один - dmcrypt_write, и он (планировщих) знать не знает про то, что на самом деле в системе 100500 потоков просят записать или вычитать данные. это нивелирует любое преимущество любого планирования, создает "бутылочное горлышко".
отключил его я с помощью --perf-submit_from_crypt_cpus в cryptsetup (подсмотрел в статье, которую раньше кидал: https://blog.cloudflare.com/speeding-up-linux-disk-encryption/). 2й предложенный флаг --perf-same_cpu_crypt сделал все только хуже, начала лагать не только телеге. отревертил его.
2. перевел мой диск с хомяком на bfq (приемник cfq, как я понял) i/o планировщик. хорошо описан тут: https://www.phoronix.com/scan.php?page=article&item=linux-50hdd-io&num=2 и еще можно почитать про опции планировщиков тут: https://cromwell-intl.com/open-source/performance-tuning/disks.html
не то, что бы все стало летать, но "воздуха" приложениям стало больше ИМХО. хром не так вис, когда vscode начинал свою безобразную индексацию сорцов, и телега чуть-чуть меньше начала лагать.
3. обозлился на хром, и запер его профили в tmpfs (с помощью https://wiki.archlinux.org/index.php/profile-sync-daemon ), и всю директорию ~/.cache туда же слил (https://wiki.archlinux.org/index.php/Chromium/Tips_and_tricks#Cache_in_tmpfs )
4. пользуюсь eatmydata с телегой и wine :)
итог: юзабельная система без надоедливых лагов. больше всего зарешала eatmydata, но это в случае с телегой. все остальные приложения спокойно работают после того как выключил тред dm_crypt, а в worst-case scenario, когда dd выжырает все I/O помогло включение bfq.
как-то так. надеюсь кому-то будет полезно :)
спасибо
Обсуждают сегодня