- [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Re: [XFS][карма] «Структуру необходимо почистить»
- Восстановите данные из тома ext4 (очистка структуры и т. Д.)
- Как освободить память Linux
- Как освободить кэш память в Linux
- Виды кэша в Linux
- Нужно ли очищать кэш вообще?
- Автоматическая очистка кэша
- Настройка размера кэша памяти
- Как очистить память подкачки
- Как освободить память занимаемую процессами
- Выводы
[XFS][карма] «Структуру необходимо почистить»
# du -hs balancer/downloads
du: невозможно получить доступ к `balancer/downloads/rtorrent/South Park/Season 1 (MTV)/111 Tom\’s Rhinoplasty (Goblin, MTV, Eng).avi’: Структуру необходимо почистить
xfs_check ничего такого не находит. Куда копать?
Re: [XFS][карма] «Структуру необходимо почистить»
уже смириться и перейти или на ntfs-3g или на iphone-3g.. т.е. hfs+
Re: [XFS][карма] «Структуру необходимо почистить»
Ничего не поделаешь, это карма 🙂
По теме: попробуй запустить du с английской локалью, авось и поймёшь, что оно хотело сказать.
Re: [XFS][карма] «Структуру необходимо почистить»
Может хватит уже жрать кактус «XFS»
Re: [XFS][карма] «Структуру необходимо почистить»
Re: [XFS][карма] «Структуру необходимо почистить»
>авось и поймёшь, что оно хотело сказать.
Совершенно то же самое 🙂
du: cannot access `/home/balancer/downloads/rtorrent/South Park/Season 1 (MTV)/111 Tom\’s Rhinoplasty (Goblin, MTV, Eng).avi’: Structure needs cleaning
Re: [XFS][карма] «Структуру необходимо почистить»
> The cause can be pretty much anything, unfortunately — filesystem, virtual memory manager, volume manager, device driver, or hardware.
Может, стоит железо проверить?
> There should be a detailed console message when this initially happens. The messages have important information giving hints to developers as to the earliest point that a problem was detected. It is there to protect your data.
Говорят — там еще должно было быть много умных букв, которые полагается тут же отослать разработчикам.
Re: [XFS][карма] «Структуру необходимо почистить»
>Может, стоит железо проверить?
На одном и том же месте было. После перезагрузки машины xfs_check выдал огромную серию
block 2/9540300 type unknown not expected
и после xfs_repair всё прошло 🙂
Re: [XFS][карма] «Структуру необходимо почистить»
> и после xfs_repair всё прошло 🙂
Винты проверь на бэды. Не самсунг случаем?
Re: [XFS][карма] «Структуру необходимо почистить»
>Винты проверь на бэды.
>Не самсунг случаем?
Как ни печально для нелюбителей данной модели, downloads у меня на WD6400AAKS лежит 🙂 Хотя Самсунги тоже есть в массиве.
Re: [XFS][карма] «Структуру необходимо почистить»
Источник
Восстановите данные из тома ext4 (очистка структуры и т. Д.)
tl; dr: Как мне восстановить данные с тома ext4, который выдает ошибки типа «Очистка структуры требует»?«Я перепробовал много вещей, как описано ниже, но все равно безуспешно.
РЕДАКТИРОВАТЬ: Пожалуйста, смотрите ниже оригинальный пост для вывода e2fsck и dumpe2fs в соответствии с запросом комментатора. Оригинальный пост следует.
При попытке смонтировать том Truecrypt 7.1, который я часто использую, сегодня я получил эту прекрасную ошибку:
Ошибка: монтирование: монтирование /dev /mapper /truecrypt1 в /media /truecrypt1 не удалось: требуется очистить структуру
Затем я попытался смонтировать это с помощью командной строки truecrypt 7.1a в другой системе и получил эту ошибку:
Ошибка: mount: неверный тип fs, неверный параметр, неверный суперблок в /dev /mapper /truecrypt1,
Вот шаги, которые я предпринял до сих пор:
1 — расшифрован, но не монтируется с Truecrypt, используя:
truecrypt —filesystem = нет /dev /xxx.
Это, кажется, дает мне незашифрованный, но не смонтированный раздел. Затем я сделал резервную копию, используя dd, и пытаюсь сделать все остальное в резервных копиях.
2 — Итак, я пытаюсь смонтировать его:
. и я не удивляюсь
mount: mount /dev /loop0 on /mnt /tmp не удалось: структура нуждается в очистке
3 — Итак, я пытаюсь:
[1283.815816] EXT4-fs (loop0): ext4_check_descriptors: Битовая карта блока для группы 64, не входящей в группу (блок 1312711560940789246)!
[1283.815825] EXT4-fs (loop0): дескрипторы группы повреждены!
Должен отметить, что я не уверен, что это был том ext4. Честно говоря, я не помню, было ли это 2, 3 или 4. Но из вышеприведенного сообщения я предполагаю, что это ext4. Просто подумал, что это важно упомянуть.
4 — Теперь я пробую fsck.ext4, и все идет плохо. Если я запускаю его автоматически, я получаю:
sda3.1: Примечание: если несколько блоков растровых изображений inode или block или часть таблицы inode требуют перемещения, вы можете сначала попробовать запустить e2fsck с опцией ‘-b 32768’. Проблема может заключаться только в дескрипторах группы первичных блоков, а дескрипторы группы резервных блоков могут быть в порядке.
sda3.1: Битовая карта блока для группы 64 не входит в группу. (блок 1312711560940789246)
sda3.1: НЕОЖИДАННАЯ НЕПРЕРЫВНОСТЬ; ЗАПУСТИТЬ fsck ВРУЧНУЮ. (т.е. без параметров -a или -p)
5 — Итак, теперь я думаю, может быть, мне стоит попробовать запустить fsck вручную. Я так и делаю. Проблема в том, что происходит одна из двух вещей:
я) я выбираю «у» для всего, и в результате я могу смонтировать том, но он полностью пуст или
II) Я должен решить, что сказать «у» и «п», и я не имею ни малейшего понятия, как распознать. Я немного читал о файловых системах, но это все еще догадки. Кроме того, возникают сотни вопросов (первый из которых действительно о группе 64 . а затем 65, 66 и т.д.), Так что даже если бы я знал, что делать, это заняло бы у меня много часов — и я не могу сделать ни единой ошибки, или я могу потерять данные, верно?
6 — Я прочитал эту ветку: Как восстановить файловую систему ext4, и я также «попробовал монтировать с альтернативными расположениями суперблока», как в:
mount -t ext4 -o sb = 131072, ro sda3.1 /mnt /data_c
Как он это сделал: «Я сделал выше, с опцией sb, равной кратным 4 из всех следующих чисел: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000». Каждый раз я получаю одну и ту же ошибку:
mount: неверный тип fs, неверный параметр, неверный суперблок в /dev /loop0, отсутствующая кодовая страница или вспомогательная программа или другая ошибка
В некоторых случаях полезная информация находится в системном журнале — попробуйте dmesg | хвост или около того. 7 — Я запустил тестдиск, и вариантов много, но выбор таблицы разделов Intel /PC в файле sda3.1 дает мне:
Сектор раздела не имеет конечной метки 0xAA55
. и testdisk не видит разделов.
Так вот где я сейчас. Если вы можете помочь, я был бы признателен. Очевидно, что если бы эти данные не имели значения, мне было бы все равно. Это не опасно для жизни, но это чрезвычайно полезно для меня. Вы можете спросить, почему я не подкрепил это Потому что иногда вы не понимаете, как важно что-то, пока не потеряете это. И потому что я иногда идиот.
РЕДАКТИРОВАТЬ: я добавляю результаты к моему оригинальному сообщению согласно запросу от комментатора:
Вывод для этого слишком длинный для публикации. Итак, вот ссылка: вывод e2fsck
Конечный продукт монтируется, но не восстанавливается. Существует один файл потерян и найден, и этот файл очень большой. Я могу предоставить детали, если хотите.
Спасибо за помощь. Я с нетерпением жду вашего взгляда на вышесказанное.
Источник
Как освободить память Linux
Как и любая другая операционная система, Linux очень эффективно работает с оперативной памятью. Доступная память свободно распространяется между процессами, неиспользуемые страницы сбрасываются в раздел подкачки на диске, а в случае переполнения памяти, срабатывает специальный механизм, встроенный в ядро, который анализирует все процессы и уничтожает виновника.
Когда любой процесс пишет данные на диск, они сохраняются ядром в отдельном кэше. Очень часто этот кэш занимает достаточно много места. В этой статье мы рассмотрим как освободить память в Linux, а точнее, как очистить созданный программами кэш, а также как вычислить и завершить процессы, которые потребляют больше всего памяти.
Как освободить кэш память в Linux
В каждом дистрибутиве Linux можно использовать три команды чтобы очистить кэш памяти linux. Причем вам не придется завершать никаких процессов. Сначала войдите в консоль от имени суперпользователя:
Затем выполните одну из команд. Очистка кэша PageCache:
sync; echo 1 > /proc/sys/vm/drop_caches
Очистка inode и dentrie:
sync; echo 2 > /proc/sys/vm/drop_caches
Очистка inode и dentrie и PageCache:
sync; echo 3 > /proc/sys/vm/drop_caches
А теперь давайте рассмотрим что происходит при выполнении этих команд.
Утилита sync заставляет систему записать все кэшированные, но еще не записанные данные на диск. Это нужно чтобы освободить как можно больше памяти. По умолчанию данные после записи на диск не удаляются из кэша, это нужно для того, чтобы программа могла быстрее их считать при необходимости.
Если не выполнить команду sync мы тоже освободим немного места, но после ее выполнения результат будет лучше.
Символ разделения ; дает знать оболочке, что перед тем как выполнить другую команду, нужно дождаться завершения работы первой. Последняя команда echo 1 > /proc/sys/vm/drop_caches записывает значение 1 в файл /proc/sys/vm/drop_caches. Это дает сигнал ядру, что нужно очистить выбранный нами вид кэша.
Виды кэша в Linux
А теперь давайте рассмотрим виды кэша, которые позволяют очищать эти команды, а также как все это работает.
PageCache или страничный кэш — это место, куда ядро складывает все данные, которые вы записывали или читали из диска. Это очень сильно ускоряет работу системы, так как если программе во второй раз понадобятся те же данные, они просто будут взяты из оперативной памяти. Но по этой причине этот кэш занимает больше всего места.
Посмотреть размер страничного кэша можно с помощью утилиты free. Здесь он показан в последней колонке — cached:
Такой кэш чистить эффективнее и безопаснее всего.
Кэш inode и dentrie тоже относится к файловой системе. Только в него записываются не сами данные, а структура файловой системы, расположение файлов и папок. При запросе расположения файла или содержимого папки ядро формирует специальные структуры, в которых есть вся эта информация. При следующем запросе структуры будут уже сохранены в памяти. Для каждой файловой системы существует свой кэш inode и общий кэш dentrie.
Этот кэш занимает очень мало памяти. Данные представлены в байтах, и как видите, это очень мало. Посмотреть его можно командой:
cat /proc/slabinfo | egrep dentry\|inode
Очищать его чтобы освободить память linux не рекомендуется, так как памяти потребляется немного, а на новое сканирование файловой системы идет относительно много времени.
Нужно ли очищать кэш вообще?
Во-первых, если занято очень много памяти, вы можете очистить страничный кэш, особенно если это он занимает много памяти. Во-вторых, очистить кэш памяти linux может понадобиться, если вы изменяли какие-либо настройки файловой системы или ядра, а теперь хотите проверить как это отразилось на скорости операций чтения/записи. В таком случае можно очистить все кэши и сделать это без перезагрузки, что очень удобно.
Операционная система Linux разработана таким образом, что перед тем как обратиться к диску, будет просмотрен кэш диска, и если там есть нужные данные, к диску обращений не будет. Если очистить кэш Linux то операционная система будет работать немного медленнее, поскольку ей придется искать данные на диске.
Автоматическая очистка кэша
Давайте рассмотрим как автоматически очистить кэш памяти ежедневно в два часа ночи с помощью планировщика заданий cron.
Сначала создадим bash скрипт со следующим содержимым:
sudo vi /usr/local/bin/clearcache.sh
!/bin/bash
sync ; echo 1 > /proc/sys/vm/drop_caches
Очищать будем только страничный кэш, так как он занимает больше всего. Другие виды трогать не будем, чтобы зря не понижать производительность системы.
Дальше сделайте скрипт исполняемым:
sudo chmod 755 /usr/local/bin/clearcache.sh
Осталось добавить задание в планировщик cron. Для этого выполните команду:
И в открывшемся редакторе добавьте строчку:
0 2 * * * /usr/local/bin/clearcache.sh
Теперь этот скрипт будет выполняться каждую ночь и выполнять очистку памяти, чтобы сервер мог работать нормально.
Настройка размера кэша памяти
Куда удобнее не очищать кэш каждый раз, а настроить ограничение, при превышении которого система сама будет удалять лишние страницы. Вы не можете явно ограничить сколько мегабайт может система использовать под кэш. Будет использоваться вся доступная память по мере необходимости, но можно настроить скорость удаления просроченных страниц из кэша.
За это отвечает файл /proc/sys/vm/vfs_cache_pressure. Он содержит относительный показатель, насколько агрессивно нужно удалять страницы из кэша. По умолчанию установлен параметр 100. Если его уменьшить ядро будет реже удалять страницы и это приведет к очень быстрому увеличению кэша. При нуле страницы вообще не будут удаляться. Если значение больше 100, размер кэша будет увеличиваться медленнее и неиспользуемые страницы будут сразу удаляться.
Например, сделаем минимальный размер кэша:
echo 1000 > /proc/sys/vm/vfs_cache_pressure
Не забудьте, что это очень сильно снизит производительность вашей системы, потому что вместо кэша данные будут читаться из диска.
Как очистить память подкачки
Пространство подкачки очистить очень просто. Для этого выполните:
swapoff -a && swapon -a
Имейте в виду, что при очистке swap, все данные будут перенесены обратно в оперативную память.
Как освободить память занимаемую процессами
Если в вашей системе нет памяти и кэш здесь ни при чём, следует завершить несколько процессов, потребляющих больше всего памяти. Для этого сначала надо вычислить такие процессы. Чтобы это сделать можно воспользоваться утилитой ps:
ps -e -o pid,user,%mem,command —sort %mem
Как видите, больше всего здесь памяти занимает chromium. Теперь вам надо его завершить. Идентификатор процесса, по которому его можно завершить отображается в первой колонке. Поэтому:
Более подробно о том как завершить процесс читайте в этой статье. Таким образом, вы можете освободить память от процессов, которые занимают больше всего памяти, а потом уже настроить zram или swap для того, чтобы память не переполнялась.
Выводы
Вот и все. Вы уже знаете очистить кэш linux и освободить память. Не забудьте, что все команды, приведенные в этой статье нужно выполнять от имени суперпользователя, иначе ничего работать не будет. Если остались вопросы, спрашивайте в комментариях!
Источник