Mount невозможно выделить память

Обновлено: 04.07.2024

Единственный установленный параметр, связанный с памятью: MEMORY_TARGET = 1.2G

Oracle 11.2 x64 Standard Edition One Windows Server 2008 R2

Ваше приложение, вероятно, не использует переменные связывания, из-за чего SGA становится фрагментированным (оно заполняется несколькими копиями SQL, которые используют литералы вместо связывания).

Вы можете временно устранить проблему, сбросив общий пул с помощью:

Есть обходной путь, который вы можете попытаться остановить в будущем.

Включите совместное использование курсора, затем сбросьте базу данных:

"затем отсканируйте базу данных" ==? "выключение - запуск"? Как я уже сказал, если причиной проблемы является приложение, не использующее переменные связывания, единственный способ «решить» это переписать приложение, чтобы использовать их. Я попробую оба решения, если проблема возникнет снова. Но я не думаю, что это применимо к этому случаю, потому что это происходит, даже если это первый запрос после перезапуска.

Ответ выше немного стар.

Может решить проблему сразу, но не устранит первопричину. Параметр cursor_sharing теперь принимает 2 значения:

СИЛА или ТОЧНОСТЬ. С EXACT ваш запрос должен точно совпадать с курсором (sql с планом выполнения) для повторного использования, с «FORCE» все значения в ваших запросах изменяются на переменные связывания. Это действительно удобно, когда ваше приложение не использует переменные связывания. База данных сделает это за вас.

Если вы уже используете cursor_sharing = FORCE. Затем вам нужно начать рассматривать настройку распределения памяти, и в зависимости от параметров памяти, используемых вашей системой, вы можете получить представление о том, где вы должны установить это значение, с помощью следующих запросов:

Когда используются SGA_TARGET и SGA_MAX__SIZE / PGA_TARGET и PGA_MAX_SIZE (они должны совпадать): выберите * из v $ sga_target_advice; выберите * из v $ pga_target_advice;

Это выглядело бы так: в моем случае это система pre prod, она не будет хорошо выглядеть долго:

Строка, где SGA_SIZE_FACTOR равен 1, является текущей настройкой. В системе, где объем памяти меньше, увеличение SGA_SIZE и SGA_SIZE_FACTOR должно показать резкое уменьшение ESTD_DB_TIME и ESTD_DB_TIME_FACTOR. Увеличьте объем памяти до такой степени, что увеличение снова не будет таким большим изменением для времени estd_db_time.

В моем случае здесь, с моей текущей нагрузкой, я мог легко уменьшить размер SGA_TARGET до 80G, не получив большого успеха. Однако снижение его до 57G и менее вызовет все более серьезные проблемы с производительностью.


Я столкнулся с этой проблемой некоторое время назад при обновлении ядра, но отложил обновление до сих пор.

В моей системе я могу с удовольствием монтировать сетевые ресурсы, используя CIFS под управлением ядра 3.7.10, однако, когда я пробовал с новыми ядрами (в настоящее время пытаюсь с 3.13.1, но пытаюсь с 3.12.6), я получаю следующие ошибки, когда я попытаться установить их с /etc/init.d/netmount start (Я использую Gentoo):

Попытка смонтировать вручную приводит к той же ошибке .

Ошибка возникает трижды, так как я пытаюсь подключить три сетевых ресурса, вот мои /etc/fstab записи (которые полностью не меняются между версиями ядра):

Обыскивая, я нашел довольно старое решение этой проблемы, которое требует доступа к серверу Windows для внесения некоторых изменений, это подробно описано здесь.

К сожалению, это работает, и у меня нет доступа не только к серверу Windows, чтобы проверить, будут ли эти изменения иметь какое-либо значение, но и его только происходит с более новым ядром 3.12.6, я могу перезагрузиться в ядро ​​3.7.10, и сетевые ресурсы монтируются без каких-либо проблем.

Это наводит меня на мысль, что есть проблема с новым ядром, поэтому я рассмотрел параметры CIFS в конфигурации ядра 3.7.10:

. и в конфигурации 3.12.6:

. и они такие же (в этом нет ничего удивительного, ведь я ничего не менял!).

Я снова появился net-fs/cifs-utils на случай, если там что-то не так, но это не имело значения.

Есть ли способ обойти это, не имея доступа к общему ресурсу Windows, чтобы проверить предлагаемое решение (если это действительно основная причина) или есть что-то еще, что вызывает проблему?

Не уверен, есть ли обходной путь на стороне Linux, но исправление на стороне Windows определенно работает.

Поговорите со своим системным администратором Windows. Если вы можете заставить его / ее скопировать / вставить это в командную строку, это должно сработать:

  • Привет, спасибо, что очень похоже на работу, с которой я сталкивался каждый раз, когда искал решение. Я думаю, похоже, что нет решения на стороне клиента, поэтому придется вежливо спросить у системных администраторов (они хорошие, и мы обычно ладим, поэтому, надеюсь, не будет слишком большой проблемой). Ура
  • 1 Спасибо. Я не мог остановить LanmanServer с помощью sc ( [SC] ControlService FAILED 1051: A stop control has been sent to a service that other running services are dependent on. ) но PowerShell работал stop-service lanmanserver -force -PassThru
  • Да, но, как я уже писал, у меня нет контроля над сервером Windows, поскольку он работает. Я почти уверен, что система будет перезагружена один или два раза, так как у нас были сбои сети с тех пор, как я начал пробовать с ядрами> 3.7. *

Я, наконец, решил, что решение заключалось в том, чтобы добавить параметр sec = ntlm для mount.cifs, потому что поведение по умолчанию изменилось. Из

Итак, мои записи в / etc / fstab теперь выглядят так .

Комбинация использования sec = ntlm в fstab и изменения параметра Size службы LanmanServer в Windows решает эту проблему.


Гуглить-то я гуглил. Ничего внятного не нашёл



Вот я не понимаю зачем..


В следующий раз будешь умней и не будешь делать SWAP больше размера физически доступной памяти.

Очень странно это писать, но swap можно и нужно делать больше размера физической памяти, хотя бы для гибернации

своп не нужен вообще, кроме как для гибернации

ну это смотря кому, web-серверу нужно поставить swappiness повыше и большой своп, потому что для apache и прочих требуется много быстрой оперативной памяти, а все остальное можно в своп скинуть


Изень всё чаще пердит в лужу (

А гибернацию куда девать?


в специально созданный для этих целей файл


почисть да и всё, не фыркай
в цифры не смотрел, но tmpfs в статистике проходит как кэш
но поведение её отличается чуть более, чем полностью


swap можно и нужно делать больше размера физической памяти, хотя бы для гибернации

Это давно не так.

То есть уже полный дамп оперативки не делается?


предлагаешь свопить в файл на разделе?


Зависит от настроек, но в целом - да, только область данных приложений, плюс она сжимается.



То есть уже полный дамп оперативки не делается?

Какой в этом смысл? Она у тебя 100% постоянно и перелезает в SWAP, что последний нужно делать больше оперативки?

В следующий раз будешь умней и не будешь делать SWAP больше размера физически доступной памяти.

Редкостного идиотизма фраза.

Попробуй сначала буферы сбросить

echo 3 > /proc/sys/vm/drop_caches



Она у тебя 100% постоянно и перелезает в SWAP

нет, но мне нужно, чтоб она работала всегда, а не только когда не занята более, чем на 50%, например

К тому же какая разница, файл это или раздел. В любом случае куда-то надо всё дампить. А файл подразумевает всего лишь на порядок больше геморроя.

размер карты 1GB, объем оперативной 2GB, почему система не хочет смонтировать флешку?

rotax » 01 окт 2010, 00:08

решил проблему, оказалось что система не может выделить слишком много памяти, 300МБ получается а вот уже 350 нет

Vooon » 01 окт 2010, 12:16

Tsi329 » 17 окт 2010, 23:10

В зависимости от размера этого самого sdb2 раздела, сталкиваюсь с двумя вариантами:
1.

2Gb пишет mount: Невозможно выделить память
2. 300Mb намертво подвешивает линукс.
Пользуюсь Virtualbox. Память выделил максимум - 1,5Gb

Поэтому я пока сижу на ext3 на моей SD флешке.

Злосчастный параметр setenv . mini2440=3tbc
Какое он все-таки должен иметь значение? И на что он влияет? Кто-то пишет, что 0tb для 3.5 экрана, а 1tb для 7".
Для чего тогда значение 3tbc? Вообщем, у меня 3" экран, 128Mb NAND, а гружусь с SD ext3 второй раздел, какой у меня должна быть строка setenv ? Желательно привести полностью.

Едем дальше - DHCP? Как запустить? Что надо для этого. У меня роутер просто, а он назначает через DHCP, а выход в инет ой как хочется.

Заранее всем ответившим спасибо.

P.S. Практически созрел в написании хауту по первой программе обмена данными по асинхроннму уарту, а тут то вишня взошла, то свекла заколосилась (С) USB устройства под W7x64 так и не заставил работать в Gentoo через VirtualBox, плюнул - поставил на отдельном венике XP. То uboot подбирал чертисколько. То не стартует, то стартует, но криво. Потом jffs2. Теперь тач. Чувстую дело до программинга так и не дойдет. Неправильно это.

setar » 19 окт 2010, 22:59


после modprobe диагностируем так: cat /proc/mtd
у вас видимо что то пошло не так
Злосчастный параметр setenv . mini2440=3tbc
Какое он все-таки должен иметь значение? И на что он влияет? Кто-то пишет, что 0tb для 3.5 экрана, а 1tb для 7".
Для чего тогда значение 3tbc? Вообщем, у меня 3" экран, 128Mb NAND, а гружусь с SD ext3 второй раздел, какой у меня должна быть строка setenv ? Желательно привести полностью.
где то писал, точно помню.
3tbc: передаем ядру знания о параметрах миньки
3 - тип дисплея (значения не помню, 3 это 3" T35)
t - активировать тачскрин
b - backlight , активировать подсветку дисплея
с - в системе есть CMOS камера, инициализировать её
Еще один не решенный вопрос - модули ядра. Куда их кидать?

модули должны лечь так чтобы указаный файл алиасов был по пути:
/lib/modules/2.6.32.2-Roboforum/modules.alias
остальные папки относительно него сохраняя вложенность и взаимное расположение

остальные вопросы как нибудь потом - времени вообще нет

=DeaD= » 21 окт 2010, 22:03

setar писал(а): Эта статья предполагает что у Вас уже имеется mini2440 c установленным загрузчиком u-boot, скомпилированным и установленным ядром.
Возможно я задам глупый вопрос - а как проверить что оно у меня имеется?

Grem » 21 окт 2010, 23:01

=DeaD= » 21 окт 2010, 23:03

Тогда как загрузить?

Вообще надо где-то Quick Start Guide сделать - как быстро с нуля подключиться, а то я вот хочу, а с какой стороны подойти не очень понимаю.

Grem » 21 окт 2010, 23:29

Tsi329 » 22 окт 2010, 00:48

=DeaD= писал(а): Тогда как загрузить?

Вообще надо где-то Quick Start Guide сделать - как быстро с нуля подключиться, а то я вот хочу, а с какой стороны подойти не очень понимаю.

один или два раза в несколько месяцев эта база данных Oracle XE сообщает об ошибках ORA-4031. Это не указывает на какую-либо конкретную часть sga последовательно. Недавний пример:

ORA-04031: unable to allocate 8208 bytes of shared memory ("large pool","unknown object","sort subheap","sort key")

когда эта ошибка появляется, если пользователь продолжает обновлять, нажав на разные ссылки, они будут как правило, получить больше таких ошибок в разное время, то скоро они получат "404 не найдены" ошибки страницы.

перезапуск базы данных обычно решает проблему на некоторое время, затем через месяц или около того он появляется снова, но редко в том же месте в программе (т. е. он не кажется связанным с какой-либо конкретной частью кода) (приведенный выше пример ошибки был поднят со страницы Apex, которая сортировала 5000+ строк из таблицы).

Я пробовал увеличивать sga_max_size от 140M до 256M и надеюсь, что это поможет. Конечно, я не буду знать, помогло ли это, так как мне пришлось перезапустить базу данных, чтобы изменить настройку :)

Я запускаю Oracle XE 10.2.0.1.0 на коробке Oracle Enterprise Linux 5 с 512 МБ оперативной памяти. Сервер запускает только базу данных Oracle Apex (v3.1.2) и веб-сервер Apache. Я установил его почти со всеми параметрами по умолчанию, и он работает довольно хорошо в течение года или около того. Большинство проблем, которые я смог решить сам, настроив код приложения; он не интенсивно используется и не является критически важной для бизнеса системой.

вот некоторые текущие настройки, которые, я думаю, могут быть актуальными:

если это какая-либо помощь, вот текущие размеры SGA:

даже если вы используете ASMM, вы можете установить минимальный размер для большого пула (MMAN не будет сжимать его ниже этого значения). Вы также можете попробовать закрепить некоторые объекты и увеличить SGA_TARGET.

Не забывайте о фрагментации. Если у вас много трафика, ваши пулы могут быть фрагментированы, и даже если у вас есть несколько свободных МБ, не может быть блока больше 4 КБ. Проверьте размер самого большого свободного блока с запросом типа:

все текущие ответы касаются симптома (исчерпание пула общей памяти), а не проблемы, которая, вероятно, не использует переменные привязки в ваших запросах sql \ JDBC, даже если это не кажется необходимым. Передача запросов без переменных привязки заставляет Oracle каждый раз" жестко анализировать " запрос, определяя его план выполнения и т. д.

некоторые фрагменты из приведенной выше ссылки:

"Java поддерживает переменные bind, ваши разработчики должны начать использовать подготовленные операторы и связывать входы в него. Если вы хотите, чтобы ваша система в конечном итоге масштабировалась за пределами 3 или 4 пользователей - вы сделаете это прямо сейчас (исправьте код). Это не то, о чем нужно думать, это то, что вы должны делать. Побочный эффект это-ваши общие проблемы пула в значительной степени исчезнут. Это первопричина. "

"путь Оракула общий пул (очень важная структура данных общей памяти) operates основан на разработчиках, использующих переменные bind."

" переменные привязки настолько массово важны - я никоим образом не могу переоценивать их важность. "

следующие не нужны, поскольку они не исправляют ошибку:

  1. 1 PS-ef|grep oracle
  2. найти smon и убить pid для него
  3. среда SQL> запуск смонтировать в SQL>
  4. создать pfile из spfile;

перезапуск базы данных очистит ваш пул, и это решит проблему, а не проблему.

зафиксируйте свой large_pool, чтобы он не мог опуститься ниже определенной точки или добавить память и установить более высокий Макс память.

ошибка: ORA-04031: невозможно выделить 4064 байта общей памяти ("общий пул", " выберите increment$, minvalue, m. ", "SGA heap (3,0)", "kglsim heap")

запущен экземпляр ORACLE.

общая системная глобальная область 4831838208 байт Фиксированный размер 2027320 байт Переменный Размер 4764729544 байты Буферы базы данных 50331648 байт Повторить буферы 14749696 байт База данных подключена. SQL>

Это ошибка Oracle, утечка памяти в shared_pool, скорее всего, db, управляющая множеством разделов. Решение: на мой взгляд, патч не существует, проверьте с поддержкой oracle. Вы можете попробовать с помощью subpools или en (de)able AMM .

Читайте также: