Минулої п’ятниці я оновив свій сервер Ubuntu до 11.10, який зараз працює з ядром сервера 3.0.0-12. Відтоді загальна ефективність різко впала. Перед оновленням система завантажувала близько 0,3, але зараз вона становить 22-30 в 8-ядерній системі процесора з 16 ГБ оперативної пам’яті (безкоштовно 10 ГБ, не використовується своп).
Я збирався звинувачувати у драйвері файлової системи BTRFS та нижньому масиві MD, оскільки [md1_raid1] та [btrfs-transacti] витрачали багато ресурсів. Але всі [kworker / *: *] споживають набагато більше.
sar
постійно випускає щось подібне до цього з п’ятниці:
11:25:01 CPU %user %nice %system %iowait %steal %idle
11:35:01 all 1,55 0,00 70,98 8,99 0,00 18,48
11:45:01 all 1,51 0,00 68,29 10,67 0,00 19,53
11:55:01 all 1,40 0,00 65,52 13,53 0,00 19,55
12:05:01 all 0,95 0,00 66,23 10,73 0,00 22,10
І iostat
підтверджує дуже низьку швидкість запису:
sda 129,26 3059,12 614,31 258226022 51855269
sdb 98,78 24,28 3495,05 2049471 295023077
md1 191,96 202,63 611,95 17104003 51656068
md0 0,01 0,02 0,00 1980 109
Питання: Як я можу відстежити, чому нитки kworker споживають стільки ресурсів (і який)? Або краще: це відома проблема з ядром 3.0, і чи можу я змінити його за допомогою параметрів ядра?
Редагувати:
Я оновив Kernel до абсолютно нової версії 3.1 відповідно до рекомендацій розробників BTRFS. Але, на жаль, це нічого не змінило.
pcie_ports=compat
або pcie_ports=native
. (Спробуйте спочатку "рідне". Менш шанси виправити цю проблему, але менше шансів викликати інші проблеми.)