Chrome зависает Ubuntu при открытии вкладки или перезапуске
Это только начало происходить вчера. Я сознательно ничего не менял, хотя в Ubuntu включено автообновление.
Я могу запустить Chrome нормально, он будет работать некоторое время, но затем я открою вкладку, и она замерзнет все, кроме мыши, которую я все еще могу перемещать. Я ничего не могу сделать (включая переключение на ctrl-alt-fX), поэтому единственный вариант - это REISUB (или полная перезагрузка). Перезапуск Chrome через некоторое время обычно имеет тот же эффект, что и открытие вкладки.
Я попытался полностью очистить Chrome и удалить папку настроек перед переустановкой последней версии, но это не помогло. Отключение всех расширений не помогло.
У меня установлена последняя стабильная версия Ubuntu 14. 15 ГБ RAM, Intel i7
Еще одна странность - маленькие окна уведомлений, которые я получаю из chrome, которые обычно отображают информацию о новом письме или любом из уведомлений плагина, теперь это просто черный блок, без содержимого.
Есть ли журнал, в котором я могу найти информацию о сбое? Я проверил dmesg, но это ничего не значит для меня:
dmesg | grep chrome
[ 132.889813] nouveau E[chrome[2606]] multiple instances of buffer 125 on validation list
[ 132.889818] nouveau E[chrome[2606]] validate_init
[ 132.889819] nouveau E[chrome[2606]] validate: -22
[ 422.162086] nouveau E[chrome[2606]] multiple instances of buffer 121 on validation list
[ 422.162092] nouveau E[chrome[2606]] validate_init
[ 422.162094] nouveau E[chrome[2606]] validate: -22
[ 422.178322] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.201707] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.202702] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.220245] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.236486] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.269815] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.302031] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.334962] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.336436] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.351666] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[ 422.368438] nouveau E[ PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
Я не проверял хром, я читал, что подобное происходит в этом. Другие темы, которые я прочитал, предлагают перейти на Firefox или хром, но это не решает проблему. Мне нужен chrome по многим причинам работы, и так как он отлично работает дома на той же версии Ubuntu, так что логика подсказывает, что это поправимо.
Я думаю, что это больше связано с продолжительностью работы Chrome, а не с Ubuntu. Если я сразу же запускаю Ubuntu и запускаю Chrome, через несколько минут он вылетит на новой вкладке. Если я не запускаю chrome после загрузки и запускаю его только позже, он нормально запускается, а затем вылетает после того, как он работал в течение тех же нескольких минут.
Большое спасибо
11 ответов
Проблема с Google Chrome v44. Вы можете продолжать работать, запустив Chrome без ускорения GPU:
google-chrome --disable-gpu
Или удалив Chrome и установив версию прямо перед ней:
sudo apt-get remove google-chrome-stable
wget http://mirror.pcbeta.com/google/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_43.0.2357.81-1_amd64.deb
sudo dpkg -i google-chrome-stable_43.0.2357.81-1_amd64.deb
Это позволит вам использовать Chrome, пока не выйдет исправление.
Примечание: вы не можете отключить ускорение gpu в настройках URL-адреса, так как это немедленно остановит вашу систему:
# DON'T go to (this might crash the system):
chrome://gpu
# or (this will definitely crash the system)
chrome://flags
У меня была такая же проблема с Ubuntu 14.04 и Chrome. У меня есть видеокарта NVIDIA GeForce GTX 650. Похоже, что проблема действительно в драйвере видеокарты Ubuntu nouveau. Для меня исправлением было перейти в Настройки системы -> Программное обеспечение и обновления -> Дополнительные драйверы и выбрать проприетарный драйвер nvidia (или какую карту у вас когда-либо) вместо nouveau. Это изменение также, похоже, устранило проблему, возникшую у меня с медиаплеером YouTube (может относиться или не относиться к другим медиапроигрывателям). Быстро движущееся видеоизображение, в частности, используется для обновления в разделах с горизонтальными "линиями разломов". Кажется, тоже нет.
Я удалил Chrome, а затем удалил все мои файлы конфигурации, и ничего, получил ту же проблему. Это работает для меня в Ubuntu 14.04 64 бит
google-chrome --disable-gpu
Я опубликовал патч для LKML, чтобы обойти эту ошибку, и мне сказали, что проблема была идентифицирована как ошибка libdrm (не Chrome).
https://bugs.freedesktop.org/show_bug.cgi?id=89842
Эта проблема связана с libdrm 2.40.6
только и по ссылке выше есть другие приложения нет, только Chrome, который может столкнуться с этой же ошибкой в nouveau.
Возможно понижение до предыдущей версии libdrm
,
sudo apt-get install libdrm2=2.4.56-1~ubuntu2
Если вы хотите "заблокировать", т.е. остановить автоматическое обновление системы до 2.6.40, снова выполните
sudo echo "package libdrm2" | sudo dpkg –set-selections
Я успешно опустил версию до 2.4.56 и могу убедиться, что Chrome работает как положено, с включенным ускорением GPU.
Я решил это, заменив видеодрайвер nouveau на драйверы nvidia, как описано здесь.
нет google-chrome --disable-gpu
требуется.
Убедитесь, что у вас хороший статус с Graphics Feature Status
в браузере. Перейдите по этой ссылке, чтобы проверить:
chrome://gpu/
Вы должны увидеть все зеленые варианты Hardware accelerated
, Если нет, перейдите к
chrome://flags/
1-я строка - ваш флаг, чтобы включить Override software rendering list
# ignore-gpu-blacklist.
Перезапустите браузер и проверьте еще раз Hardware accelerated
статус.
Также убедитесь, что у вас достаточно свободной памяти во время работы браузера
$ free
Я видел это некоторое время назад на моей полностью не-Ubuntu самосовершенствующейся системе LFS (все что угодно) (я извращенец без жизни, я признаю это). В журнале dmesg есть много криков о поврежденных BOS и т. Д.
Для меня еще одним решением, которое позволило мне сохранить аппаратно-ускоренный рендеринг в большинстве ситуаций, был экспорт LIBGL_DRI3_DISABLE=1
в среде до запуска хрома. Похоже, DRI3 еще не совсем готов к прайм-тайм...
Для меня проблема была решена путем очистки из диспетчера паролей Chrome всех паролей, которые были дубликатами, истекли, долго преувеличивали, не использовались и так далее. Кажется, что выбор очень сложных паролей, как правило, приводит к сбою или зависанию всей операционной системы, что также происходит в ОС Windows. Еще одна вещь, которую я сделал, я установил свой swappiness до 0.
Я столкнулся с той же проблемой на моем Ubuntu 14.10, решение состоит в том, чтобы просто убивать Chrome каждый раз, когда он съедает процессор, вот мой сценарий, чтобы сделать это, он работал на моем случае.
#!/bin/sh
#ps aux | awk 'BEGIN { sum = 0 } { sum += $3 }; END { print sum }'
# DON VI PHAN TRAM
MAX_ALLOWED_CPULOAD=50
MAX_ALLOWED_MEMLOAD=50
core_num=$(nproc)
MAX_ALLOWED_CPULOAD=$(expr $MAX_ALLOWED_CPULOAD \* $core_num)
counter=0
continue_high_cpuload_count=0
max_continue_alowed=10
print_cpu_load_with_pid(){
cpuload=$(ps aux | awk 'BEGIN { sum = 0 } { sum += $3 }; END { print sum }')
cpuloadpercent=$(echo "100 * $cpuload / $MAX_ALLOWED_CPULOAD" | bc)
echo "checked at $counter times, cpuload = $cpuloadpercent %"
counter=$((counter+1))
#$(echo 12.45 10.35 | awk '{if ($1 < $2) print $1; else print $2}')
decide=$(echo $cpuload $MAX_ALLOWED_CPULOAD | awk '{if ($1 > $2) print "true"; else print "false"}')
if [ "true" = "$decide" ] ; then
continue_high_cpuload_count=$((continue_high_cpuload_count+1))
echo "High cpuload detected, continue_counter = $continue_high_cpuload_count"
elif [$continue_high_cpuload_count -gt 0 ]; then
continue_high_cpuload_count=0
echo "No longer detect hight cpu, reseting continue_counter..."
fi
if [ "$continue_high_cpuload_count" = "$max_continue_alowed" ] ; then
echo "Killing chrome..."
kill -9 `ps -aux|grep chrome|awk '{print$2}'`
fi
}
while [ : ];do
print_cpu_load_with_pid
sleep 2
done
Обычно я люблю использовать Chrome, но это единственное программное обеспечение в моей Ubuntu, которое гарантированно замораживает всю ОС, если ему достаточно времени для работы. И в некоторых случаях я буквально не могу ничего с этим поделать, кроме холодной перезагрузки. Если у меня уже был открыт другой TTY (Alt + Ctrl + Fn), я могу или не могу переключиться на него для выдачи killall chrome
, который исправит ОС мгновенно. То же самое, если у меня уже было ожидающее соединение SSH. Иногда курсор мыши перемещается по экрану, но больше ничего не будет реагировать. Иногда даже не курсор мыши.
Во всяком случае, я обнаружил экспериментально, что ОЗУ заканчивается, когда хром только используется; Некоторые ужасные утечки памяти. Так что то, что я сделал, чтобы избежать полной заморозки моей ОС, было чем-то вроде DIY. Я создал простой скрипт bash и установил его под crontab моего пользователя. Я запускаю это каждую минуту. Он проверяет объем свободной оперативной памяти, и если он выходит за пределы моего установленного лимита (я использую 200 МБ), то он killall chrome
3 раза подряд (на всякий случай). После этого с экрана уходит Chrome, но появляется диалоговое окно с сообщением о том, что произошло, сколько памяти у вас осталось и сколько у вас осталось после восстановления из Chrome. Сценарий выглядит следующим образом:
#!/bin/sh
#SETTINGS:
MIN_RAM_BEFORE_KILLING_CHROME_MB=200
#DATA COLLECTION:
FREE_RAM=$(free -mo | tr -s ' ' | cut -d ' ' -f 4 | awk '$0 == "free" {i=1;next};i && i++ <= 1')
echo "Free RAM: $FREE_RAM"
#ACTION:
if [ $FREE_RAM -lt $MIN_RAM_BEFORE_KILLING_CHROME_MB ]; then
echo "time to kill chrome...";
killall chrome &
sleep 1
killall chrome &
sleep 1
killall chrome &
FREE_RAM2=$(free -mo | tr -s ' ' | cut -d ' ' -f 4 | awk '$0 == "free" {i=1;next};i && i++ <= 1')
DISPLAY=:0 nohup zenity --info --text="Chrome was killed, because your RAM had only $FREE_RAM MB free.\nNow you have $FREE_RAM2 MB free." 2>/dev/null &
else
echo "Not yet. Will kill chrome when RAM goes under $MIN_RAM_BEFORE_KILLING_CHROME_MB.";
fi;
#INSTALLATION:
# crontab -u <username> -e
# then add this script
Поэтому, когда я достигаю критического низкого уровня в моей оперативной памяти, мой хром убит, и я вижу это:
Удалить и установить предыдущую версию помогло с помощью следующих команд. Я заменил i386 вместо amd64 и установка прошла нормально. Спасибо за помощь.
sudo apt-get remove google-chrome-stable
wget http://mirror.pcbeta.com/google/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_43.0.2357.81-1_amd64.deb
sudo dpkg -i google-chrome-stable_43.0.2357.81-1_amd64.deb