Вопрос: Изменение размера раздела debian / tmp


Мой раздел / tmp не работает на очень большом SQL-запросе. Как увеличить размер раздела / tmp?

благодаря Том

РЕДАКТИРОВАТЬ:

Вот выходы из запрошенных команд

blkid
/dev/sda1: UUID="e8604436-53ea-4a05-9459-6c498cf19a1a" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda5: UUID="21bd6739-89c8-4196-986d-bec9474a4b1a" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda6: UUID="1a80f7c6-d524-4974-82ee-c5bd734802b9" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda7: TYPE="swap" 
/dev/sda8: UUID="edee40d5-9337-4705-b152-7bc2b9b35336" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda9: UUID="5c586547-8d78-4dd1-86c9-92f83b4d8fb5" SEC_TYPE="ext2" TYPE="ext3"

fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000504d7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1           18663       19201     4329517+  83  Linux
/dev/sda2              35       18662   149629410    5  Extended
/dev/sda5              35         642     4883728+  83  Linux
/dev/sda6             643        1007     2931831   83  Linux
/dev/sda7            1008        1337     2650693+  82  Linux swap / Solaris
/dev/sda8            1338        1386      393561   83  Linux
/dev/sda9            1387       18662   138769438+  83  Linux

Partition table entries are not in disk order

cat /etc/mtab
/dev/sda1 / ext3 rw,errors=remount-ro 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0
procbususb /proc/bus/usb usbfs rw 0 0
udev /dev tmpfs rw,mode=0755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,size=1000m 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0
/dev/sda9 /home ext3 rw 0 0
/dev/sda5 /usr ext3 rw 0 0
/dev/sda6 /var ext3 rw 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
//192.168.254.12/SHARE1 /mnt/archive cifs rw,mand 0 0
/dev/sda8 /tmp ext3 rw 0 0


pvs
-su: pvs: command not found
pvs
-su: pvs: command not found
lvs
-su: lvs: command not found

6
2017-09-16 11:28


Источник


Какова ваша текущая конфигурация раздела? Опубликовать вывод из 'sudo blkid' - LukeR
Вы используете LVM в этом поле? - wzzrd


Ответы:


Может быть проще заменить / tmp простым файлом.

dd if=/dev/zero of=/var/mytmp bs=1024 count=<desired size in K>

mkfs -t ext3 /var/mytmp

umount /tmp

mount -o loop /var/mytmp /tmp

Затем создайте соответствующую строку монтирования в файле / etc / fstab.


6
2017-09-16 11:57



Это должно работать хорошо и быть более быстрым + безопасным для реализации (поскольку для выполнения сложных операций перегруппировки файловой системы не выполняется), чем мое предложение gparted, хотя помните, что использование устройства loopback, подобного этому, будет менее эффективным, чем отдельный раздел. Кроме того, вы должны убедиться, что во время процесса загрузки раздел, который вы помещаете в файл для циклического использования, устанавливается ранее в процессе, чем попытка монтировать /tmp используя файл. - David Spillett
Вы также можете использовать разные блоки для bs параметр: dd if=/dev/zero of=/var/mytmp bs=1GB count=<desired size in gigabytes>, Просто заметите, что dd попытается выделить значение, которое вы положили bs в начале программы. Во-вторых, в большинстве современных дистрибутивов linux systemd будет пытаться автоматически заказывать автоматы, чтобы избежать проблемы, описанной @David Spillett - Marcelo Lacerda


Почему не просто рассказать MySQL, чтобы он выполнял свою работу в другом месте? Любой набор TMPDIR в среде MySQL или установить tmpdir = /some/non/tmp/path в my.cnf.


3
2017-09-17 01:06





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

fdisk -l
cat /etc/mtab
pvs
vgs
lvs

(последние три команды могут отсутствовать, если вы не используете LVM)

В качестве альтернативы вы можете попытаться переместить местоположение, которое ваш SQL-сервер использует для своего временного пространства для царапин. Вам нужно будет предоставить нам более подробную информацию о настройке базы данных (например, какой сервер базы данных вы используете? MySQL / Postgres / ...?) Для получения справки об этом.

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

Также может быть целесообразно отправить запрос SQL (и информацию о структурах, которые он запрашивает) поверх StackOverflow, чтобы увидеть, может ли проходящий SQL-эксперт увидеть какие-либо очевидные части, которые кричат ​​для легкой оптимизации.

Изменить (после публикации информации раздела

Поскольку вы не используете LVM вообще, и это изменение не повлияет на ваш / или /boot, если вы можете позволить себе сократить время простоя во время выполнения операций, я бы предложил gparted «live CD». Загрузите с этим, скажите:

  1. сокращаться sda9 (ваш /home) немного
  2. переместите его на диск, чтобы сделать промежуток между ним и /sda8 (ваш /tmp)
  3. расти sda8 заполнить новое пространство после него

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

  1. сокращаться /home так как вы хотите, чтобы новый /tmp быть
  2. создать новый раздел в пространстве после /home
  3. вы можете установить это как /tmp
  4. вы фактически не теряете пространство sda8 использует, поскольку вы можете монтировать его как что-то еще, но это может быть не совсем удобно.

Еще одним вариантом было бы сократить пространство подкачки, которое живет впереди sda8, и перемещение, а не изменение размера sda8 в дополнительное пространство. Насколько хорошо эта идея зависит от объема оперативной памяти и того, что вы используете на машине. Эта опция будет быстрее, поскольку вы не перемещаетесь или не изменяете размер /home, Это будет действительно безопаснее, так как вы не трогаете /home - gparted wiil просто действует /tmp и пространство подкачки, поэтому ничего, что имеет значение, если операция изменения размера идет не так, и все содержимое поврежденных разделов заканчивается поврежденным.

Я несколько раз сталкивался с такими разделами, gpartedи не имеет абсолютно никаких проблем, но само собой разумеется, что перед его использованием вы должны взять полную резервную копию всех важных файлов и вашей текущей таблицы разделов. Я слышал сообщения о проблемах, если вы позволите gparted беспорядок с вашим разделом, содержащим /boot но я всегда держал /boot в своем собственном разделе в начале диска, поэтому никогда не приходилось рисковать самим.


2
2017-09-16 12:37



Я добавил выходы из запрошенных вами команд. Спасибо за помощь


В этом случае, вероятно, проще всего просто umount / tmp, удалить / dev / sda8 с помощью fdisk, создать новый sda8, который больше, mkfs на нем и смонтировать его снова. Мог бы стоить вам хотя бы время простоя (приложения).

В следующий раз, постройте свои файловые системы на LVM, что делает это в kazillion раз легче.


0
2017-09-16 13:30





В зависимости от того, как ваш ящик, вы можете установить / tmp в ram, google it. Solaris делает это по умолчанию, и я сделал это в Linux (и OS / 2, на самом деле), если у вас есть RAM, он действительно может ускорить работу. Разумеется, это приведет к обмену. Скорее всего, это исправить для вас, так как ваш обмен - 2.6GB против 400mb для / tmp, правильно?

Черт, вот как смонтировать его на лету поверх существующего / tmp! http://www.funtoo.org/en/articles/linux/ffg/3/

Это был быстрый google, обычно это были проблемы при загрузке (нужны вещи в initrd, чтобы они работали).

Вероятно, необходимо перезагрузить, чтобы отключить его, так как вы, вероятно, откроете файлы на диске / tmp на диске и / tmp на swap (хотя вы можете использовать lsof, чтобы найти их и убить процессы, которые открывают их, чтобы вы могли размонтировать их ).

Просто используйте это для строки в вашем / etc / fstab

tmpfs / tmp tmpfs defaults, noatime, mode = 1777 0 0

Я бы сказал, что вы можете удалить noatime или заменить его на relatime


0
2017-09-17 00:37