Долгая синхронизации FireFox, жор CPU+HDD

Категория: / DEV Блог / Разное
Пользую Firefox с первых версий. Браузер запускается с портативного usb диска.
С недавних пор появилась проблема - при синхронизации закладок фф стал отъедать 25%CPU (т.е. одно ядро моего i2500). При этом усиленными темпами пытался записать что-то на диск (30Мб/c). Процедура продолжалась порядка 15 минут, далее - ошибка синхронизации. Все повторялось с интервалом в 10 минут. На это время можно забыть про FF - его UI становился не юзабельным (тупо лагал).

CPU:



HDD:



Надо что-то делать.

Закладки фф хранит в файле places.sqlite (база данных sqlite)

Посмотрим статистику

DIR palces*
83886080 places.sqlite                        
1507328 places.sqlite-shm                    
2787352 places.sqlite-wal                    
 
SELECT count(*) FROM moz_bookmarks --44409
SELECT count(*) FROM moz_places --104765


В наличии 100К закладок. Файл базы 80Мб.
При синхронизации журнал places.sqlite-wal разростался до десятков гигабайт (~13Gb), при том что изменилось с десяток закладок?!

В логах profile/weave/logs/failed

1449473825324   Sync.Store.Bookmarks    DEBUG   Record ElKt6E6Pumpe is not an orphan.
1449473827324   Sync.Status     DEBUG   Status for engine bookmarks: error.engine.reason.unknown_fail
1449473827324   Sync.Status     DEBUG   Status.service: success.status_ok => error.sync.failed_partial
1449473827324   Sync.ErrorHandler       DEBUG   bookmarks failed: Error: NS_ERROR_NET_PARTIAL_TRANSFER


Исправляем
1. Копируем ff с флэшки на локальный диск
2. Запускаем синхронизацию, ждем завершения
3. Ставим плагин Bookmark maintenance, запускаем его
Если все прошло нормально
4. Переносим назад файл places.sqlite, prefs.js и папку weave

Багрепорт: https://bugzilla.mozilla.org/show_bug.cgi?id=1230892