Восстановите равновесие CentOS / присвоение RHEL Ext4 LVM

Кратко,

  1. selectMethod=cursor
    • теоретически требует большего количества ресурсов серверной стороны, чем selectMethod=direct
    • только загрузки в большей части пакетного размера записывают в клиентскую память сразу, приводя к более предсказуемому клиентскому объему потребляемой памяти
  2. selectMethod=direct
    • теоретически требует меньшего количества ресурсов серверной стороны, чем selectMethod=cursor
    • считает весь набор результатов в клиентскую память (если драйвер исходно не поддерживает асинхронное извлечение набора результатов), прежде чем клиентское приложение сможет выполнить итерации по нему; это может уменьшить производительность двумя способами:
      1. уменьшенная производительность с большими наборами результатов, если клиентское приложение записано таким способом как, чтобы прекратить обрабатывать после пересечения только части набора результатов (с direct это уже оплатило стоимость получения данных, которые это по существу выбросит; с cursor отходы ограничены в большей части пакетного размера - 1 строке - раннее условие завершения должно, вероятно, быть повторно кодировано в SQL так или иначе, например, как SELECT TOP или функции окна)
      2. уменьшенная производительность с большими наборами результатов из-за потенциальной сборки "мусора" и/или проблем из памяти, связанных с увеличенным объемом потребляемой памяти

Таким образом,

  • Может использование selectMethod=cursor более низкая производительность приложения? - любой метод может понизить производительность по разным причинам. Мимо определенного размера набора результатов, cursor может все еще быть предпочтительным. Посмотрите ниже для того, когда использовать один или другой
  • selectMethod= прозрачная для приложения установка на соединении JDBC? - это прозрачно, но это может все еще повредить их приложение, если использование памяти выращивает достаточно значительно к пожирателю ресурсов их клиентскую систему (и, соответственно, Ваш сервер), или разрушьте клиент в целом
  • В более общем плане, когда должен Вы использовать cursor по сравнению с direct? - Я лично использую cursor при контакте с потенциально большими или в других отношениях неограниченными наборами результатов. Распространение в прямом и обратном направлениях наверху затем амортизируется, учитывая достаточно большой пакетный размер, и мой клиентский объем потребляемой памяти предсказуем. Я использую direct когда размер набора результатов, который я ожидаю, как будет известно, будет нижним к любому пакетному размеру, я использую с cursor, или связанный в некотором роде, или когда память не является проблемой.

С наилучшими пожеланиями, V.

3
задан 2 August 2013 в 02:19
2 ответа

Если мне нужно увеличить / до 257398 блоков размером 1 М и уменьшить / вернуться к 20000 блоков по 1 М, могу ли я сделать это без перезагрузки, и если да, то какова конкретная последовательность команд для этого?

У вас есть примерно 280 ГБ свободного места, из которых 50 ГБ выделено для '/', а 230 ГБ - для / home . Поскольку это представляет все ваше доступное пространство, вам сначала нужно что-то освободить. Вот несколько вариантов:

Если вы не разместили никаких данных в / home , проще всего просто отказаться от существующей файловой системы и воссоздать ее с соответствующим размером:

  • Размонтировать / home :

     # umount / home
    
  • Уменьшите размер логического тома (LV) до 20 ГБ:

     # lvreduce -L 20G / dev / vg_livecd / lv_home
    
  • Восстановите файловую систему / home :

     # mke2fs -j -m0 / dev / vg_livecd / lv_home
    
  • И перемонтируйте / home :

     # mount / home
    

Можно сжать / home , а не отбрасывать его, но это может быть немного сложнее:

  • Отключить / home :

     # umount / home
    
  • fsck файловая система. Вероятно, это потребуется на следующем шаге:

     # fsck / dev / vg_livecd / lv_home
    
  • Изменение размера файловой системы:

     # resize2fs / dev / vg_livecd / lv_home 19G
    
  • Уменьшите LV:

     # lvreduce -L 20G / dev / vg_livecd / lv_home
    

Вы заметите, что я уменьшил файловую систему немного больше, чем LV; это потому, что я никогда не могу вспомнить, считают ли они вещи одинаково, поэтому я стараюсь оставить немного места для маневра.

В любом случае, на данный момент у вас теперь есть примерно 210 ГБ свободного места в вашей группе томов. Теперь вы можете увеличить размер корневой файловой системы:

  • Увеличить размер корневого LV:

     # lvresize -L260G / dev / vg_livecd / lv_root
    
  • Увеличьте размер файловой системы:

     # resize2fs / dev / vg_livecd / lv_root
    

Обратите внимание, что вам может потребоваться число чуть меньше 260 ГБ из-за округления, которое я использую в этом ответе. Кроме того, в последних версиях утилит LVM есть возможность изменять размер файловой системы за вас, но я делал это еще до того, как эти параметры стали доступны ... поэтому я не могу утверждать, что знаю точно, как они работают.

Если я хочу добавить выделенный раздел / var, как мне это сделать без полной переустановки?

Во-первых, вы, вероятно, захотите сделать это в однопользовательском режиме, иначе запущенные процессы, вероятно, будут открывать файлы в / var , что затрудняет замену. Сказав это ...

Вам снова понадобится свободное место. Если вместо того, чтобы использовать все свободное пространство на предыдущем шаге, вы оставите несколько ГБ свободными, вы можете сделать это:

  • Создайте новый логический том:

  • Создайте новую файловую систему:

     # mke2fs -j -m0 / dev / vg_livecd / lv_var
    
  • Отредактируйте / etc / fstab , чтобы смонтировать новый LV на / var , добавив следующую строку:

     / dev / vg_livcde / lv_var / var ext4 defaults 1 2
    

    Но пока не монтируйте!

  • Смонтируйте новую файловую систему в удобном месте:

     # mount / dev / vg_livecd / lv_var / mnt
    
  • Скопируйте содержимое / var :

     # rsync -a / var / / mnt /
    
  • Переименуйте / var в /var.old и создайте новый каталог:

     # mv / var /var.old
    # mkdir / var
    
  • Установите новый LV на / var :

    # umount / mnt # mount / var

  • И продолжаем загрузку. Когда вы убедитесь, что все работает правильно, вы можете удалить /var.old .

5
ответ дан 3 December 2019 в 05:30

Принимая во внимание:

  • уродливое имя VG
  • неправильное выделение пространства для вашего варианта использования и бремя процедуры, подробно описанной larsks
  • тем фактом, что вам придется сделайте все это еще раз, на случай, если вам придется переустановить

AFAIC, я бы попробовал netinstall / kickstart, чтобы получить желаемую конфигурацию за один раз и воспроизводимым способом.

My 2cts

1
ответ дан 3 December 2019 в 05:30

Теги

Похожие вопросы