Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Ubuntu 12.04, утечка памяти в rsync  (Прочитано 1157 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lzv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Ubuntu 12.04, утечка памяти в rsync
« : 12 Декабря 2012, 15:20:12 »
Здравствуйте.

Использую ubuntu 12.04, 64 бит. rsync version 3.0.9  protocol version 30.
Недавно сделал скрипт для ежечасного запуска через крон. Вскоре заметил, что объем занятой ОП слишком большой. Оказалось, что он увеличивается после каждого запуска скрипта. Как через крон, так и вручную.

#! /bin/bash

date=`date "+%Y-%m-%d_%H.%M.%S"`
src=/
dst=/patch/backups
# dst - путь к другому разделу диска
lat=latest

rsync -axH --link-dest=$dst/$lat/ $src $dst/$date/ > /dev/null
cd $dst
rm -f $lat
ln -s $date $lat
Скрипт запускается через sudo (вручную) либо от root (через крон).

Сразу после запуска объем занятой ОП растет на 120 мб. После завершения 40 мб освобождаются, но 60 где-то теряются. В списке процессов нет процесса, который занимал бы лишний объем, так же нет подвисших процессов rsync. Вообще, если судить по списку процессов и суммировать размер занятой памяти каждым процессом, то получится гораздо меньше, чем на самом деле занято. Часть ОП где-то теряется.

Это на самом деле баг, или я то то не так делаю? Может есть репозиторий с более новой версией rsync?

PS. Я бы запостил баг у разработчиков, но там все на английском, с ним у меня сложно :(
« Последнее редактирование: 12 Декабря 2012, 16:08:56 от lzv »

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #1 : 12 Декабря 2012, 16:15:50 »
100500 файлов синхронизируете? Сравните /proc/meminfo и смотрите в slabtop при вызове.
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн lzv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #2 : 12 Декабря 2012, 17:39:22 »
Больше 100500, около 254000 :) Делаю снимок всей корневой файловой системы, а файлы, которые не менялись, делаются жесткими ссылками к предыдущему снимку. Параметр --link-dest.

Сейчас как раз накопилось лишней памяти, обычно занято раза в два меньше.
Содержимое /proc/meminfo
(Нажмите, чтобы показать/скрыть)

В slabtop вроде есть пару строк с большим размером, но что делать дельше, не понял. Прикреплю скриншот.

Руководство по добавлению изображений на форум

--andrew_bye
« Последнее редактирование: 12 Декабря 2012, 18:42:20 от andrew_bye »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #3 : 12 Декабря 2012, 18:10:05 »

Оффлайн lzv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #4 : 12 Декабря 2012, 18:54:45 »
Цитировать
http://www.linuxatemyram.com/
Оно?
Нет, это именно занятая память. Не кэш или буфер.

Скриншот по правилам, спасибо andrew_bye:

« Последнее редактирование: 12 Декабря 2012, 19:01:14 от lzv »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #5 : 12 Декабря 2012, 19:17:42 »
lzv, какие файловые системы (локальные и сетевые) задействованы в процессе синхронизации?

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #6 : 12 Декабря 2012, 22:42:38 »
arcfi, а вы из скриншота slabtop не видите, что ext4?

lzv, ничего вам не надо делать по этому поводу, всё ОК. Память съедают структуры драйвера файловой системы и, видимо, подсистемы VFS. Это отлично видно у вас в выводе slabtop. Всё это попадает в графу SReclaimable, т.е. эти Slab могут быть выкинуты из памяти при её нехватке, т.е. фактически тоже кеш. Не путать с page cache, куда попадает содержимое читаемых файлов, это кеш информации о файлах.
« Последнее редактирование: 13 Декабря 2012, 00:49:13 от Self-Perfection »
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #7 : 12 Декабря 2012, 23:13:43 »
ext4
Ага, вижу.
Интересно, как оно нагружается при сетевых операциях, а также при синхронизации в смонтированную сетевую ФС.
Надо будет потестить.
Помню, что как-то раз запустил синхронизацию примерно 10^6 файлов в каталог, прицепленный то ли  по gvfs, то ли по smbfs, дык съело около гига памяти.
« Последнее редактирование: 12 Декабря 2012, 23:58:07 от arcfi »

Оффлайн lzv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Ubuntu 12.04, утечка памяти в rsync
« Ответ #8 : 13 Декабря 2012, 04:21:43 »
Self-Perfection, спасибо за разъяснение.
Тоже думал о таком, но меня смущало, что память пропадает при каждом запуске, даже если он следует сразу за другим. Ведь если это кэш, то информация о файлах в нем уже есть, и память больше не должна пропадать. Но понаблюдал за памятью сегодня, и размер занятой колебался от 1 гига до 1.6 примерно. То есть ядро эту память как-то освобождает. Так что скорей всего все в порядке.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.