По какой-то причине обычные браузеры (Chromium особенно плох, но Firefox не намного лучше) генерируют постоянную загрузку ввода-вывода, особенно записи, в моей системе Debian. Это имеет место даже тогда, когда браузер не имеет никакой работы (например, я просто читаю статическую веб-страницу или она сворачивается в фоновом режиме). Для хрома один только подпроцесс chromium [BrowserBlocking] генерирует почти 300 КБ записи на диск пару секунд, ничего не делая. Я запускаю журнализированную файловую систему, поэтому эффект от этих записей усиливается.
Это очень раздражает, особенно на моем ноутбуке; Samsung 960 Pro поддерживает APST (спящий режим), но на самом деле он никогда не может достичь глубокого сна, потому что он постоянно просыпается процессом браузера. ЦПУ также не может эффективно использовать свои состояния простоя. Время автономной работы моего браузера заметно хуже, чем без него. Кроме того, хотя это не проблема современных твердотельных накопителей, я также предпочел бы избежать постоянной и бесполезной деградации подложки флэш-памяти, вызванной этими ненужными операциями.
Браузер не работает с данными, которые имеют какое-либо значение, поэтому целостность данных здесь не имеет значения. В идеале я хотел бы попросить ядро игнорировать любые запросы на синхронный ввод-вывод из хрома и кэшировать все запросы на запись в памяти до тех пор, пока файловая система не будет отключена или система не начнет испытывать давление памяти.
Пример из "pidstat -d 1 -C chromium" во время простоя:
05:05:09 1000 30539 0,00 300,00 0,00 0 хрома 05:05:13 PM UID PID kB_rd / s kB_wr / s kB_ccwr / s Команда iodelay 05:05:14 1000 30539 0,00 28,00 0,00 0 хром
05:05:14 UID PID kB_rd / s kB_wr / s kB_ccwr / s Команда iodelay 05:05:15 PM 1000 30539 0,00 4,00 0,00 0 хром
17:05:22 1000 30539 0,00 212,00 0,00 0 хром
Так как это проблема, разделяемая несколькими браузерами, я хочу избежать необходимости взламывать код любого конкретного браузера. Как я могу сделать это?