_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 04 Aug 99 22:07:36
Subj : Tune Up HD in Linux
________________________________________________________________________________
Привет All...
1999.07.19 - Увеличение скорости IDE Harddisk
Двукратное увеличение скорости было замечено на массивных дисковых операциях
ввода/вывода (таких как клонирование диска) при установках для IDE устройства -
использовать DMA и 32-bit передачу данных.
Ядро кажеться по умолчанию использует более консервативные установки.
Комманда:
# /sbin/hdparm -c 1 /dev/hda (или hdb, hdc и т.д.)
Для испоьзования 32-bit I/O на PCI шине. ( В hdparm(8) manpage говориться что
вам может потребоваться использовать опцию "-c 3" для некоторых чипсетов
материнских плат. )
Команда:
# /sbin/hdparm -d 1 /dev/hda (или hdb, hdc и т.д.)
Использование DMA. Это может зависить от поддержки вашего чипсета на
материнской плате которая встроено в ядро.
Вы можете протестировать свои изменения запустив hdparm в режиме теста
скорости.
# /sbin/hdparm -t /dev/hda (или hdb, hdc т.д.)
Когда вы найдете оптимальные установки для себя , вы должны сделать:
# /sbin/hdparm -k 1 /dev/hda (или hdb, hdc т.д.)
для сохранения этих параметров до сброса IDE контроллера.
Я заметил, что ядро иногда ресетит IDE контроллер и если вы не
установите "-k 1", то установки будут сброшены на дефолтные
и вы потеряете свое увеличение призводительности.
Опция "-m" может быть использована для изменения кол-ва сектров передоваемых
за каждое прерывание. Вы можете получить дополнительный выигрыш "играя"
с ней, но мне она не помогла.
------------------------------------------------------------------------
Автор: Kenn Humborg, Получено с TuneLinux.com
1999.07.19 - Фрагментация.Ъ
Когда файл записываеться на диск он зачастую будет записан в последовательные
блоки. Файл который записан не в последовательные блоки- фрагментирован.
Hа чтение фрагментированного файла требуеться больше времени т.к. головка
диска совершает больше перемещений. Желательно избегать фрагментации.
Для систем с хорошим буфером кэша и с упреждающим чтением это меньшая проблема.
Ext2 файловая система пытаеться минимально фрагментировать файлы, сохраная
все блоки файла ближе друг к другу, даже когда они не могут быть сохранены в
последовательных секторах. Ext2 эффективно распологает свободные блоки -
которые наиболее близки к другим блокам файла. Для ext2 редко возникает
необходимость заботиться о фрагментации. Большенство дистрибутивов содержит
программы для дефрагментации, но если у вас ее нет вы можете взять ее здесь:
ftp://metalab.unc.edu/pub/Linux/system/filesystems/
Существует множество MS-DOS дефрагментирующих программ которые перемещают блоки
по всей файловой системе при дефрагментации. Для других типов
файловых систем дефрагментация может быть выполнена резервным копированием
файловой системы, пересозданием ее, и восстановлением файлов с резервных копий.
Резервное копирование файловой системы перед дефрагментацией являеться хорошей
идеей для всех типов файловых систем, т.к. могут произойти различные казусы
в течении фрагментации.
Другие утилиты для ext2 файловой системы:
В дополнение к mke2fs(создание файловой системы) и e2fsck(проверка) которые
обычно имеются в дистрибутиве, ext2 файловая система имеет некоторые
дополнительные утилиты, которые могут быть полезны:
tune2fs корректирует параметры файловой системы. Hекоторые наиболее интересные
параметры:
.Счетчик монтирования. e2fsck принудительно проверяет файловую систему при
достижении
определенного числа подключений(монтирования) ее, даже если флаг проверки
не установлен.
.Для систем которые используються для разработок или тестирования может
быть хорошей идеей уменьшить этот предел.
. Максимальное время между проверками. e2fsck может так же задавать максимальное
время между двумя проверками диска, даже если флаг проверки не установлен и
файловая система не была монтирована очень часто. Это может быть выключено.
. Число блоков зарезервированных для root. Ext2 резервирует некоторое кол-во
блоков для root так что если файловая система заполниться, все еще будет
возможность администрировать систему без необходимости удалять что-либо.
По умолчанию резервируеться 5%,что на некоторых дисках не экономно.
Hа флоппи дисках место не резервируеться.
Также смотрите:
debugfs это отладчик файловой системы. Он позволяет на прямую иметь доступ к
данным и структурам файловой системы и может быть использован в при
восстановлении
диска, если он настолько поврежден, что fsck не может исправить автоматически.
Он так же может быть использован для восстановления удаленных файлов. Hо
использование debugfs требует понимания что вы делаете, иначе вы можете
уничтожить
все свои данные.
dump и restore могут быть использованы для резервного копирования ext2
файловой системы. Они спечефичны для версии ext2 и входят в традиционный набор
утилит для резервного копирования в UNIX.
1999.07.26 - Зачем иметь большие блоки
Если вы в Linux постоянно работаете с большими файлами, вы должны обратить
внимание на увеличение скорости работы файловой системы при форматировании
вашего диска с большим размером блока. По умолчанию файловая система Linux
использует 1024 байта на блок. Кроме того, если вы манипулируете файлами
размером с 1Gb(прим переводчика: наверное автор хотел сказать 1Mb) вы можете
попробовать сделать подобное:
mke2fs -b 4096 /dev/что-то
При этом размер блока будет 4 кб, вместо 1кб. Это увеличит время перемещения,
уменьшит фрагментацию и увеличит скорость работы fsck.
Проблема только одна-вернуться к 1024 байт на блок можно опять таки
переформатированием. При форматировании данные бубут уничтожены.
Кроме того если вы серьезно думаете сделать это, вы так же должны знать,
что система резервирует 5% диска для логов и для роста, в случае если диск
полон. С 4кб блоками 5% будет занимать больше места. Вы можете уменьшить
это до 1% командой:
mke2fs -b 4096 -m 1 /dev/whatever
------------------------------------------------------------------------
Author: Larry Reckner [larryr@linux.com]
1999.07.22 - Что за файл программа изменила?
Если вам надо узнать какие файлы изменила программа(внутри дирректории)
когда она запустилась, перед запуском программы наберите комманду: touch *
Это изменит время создание файла на текущее. Запустите программу. Затем
посмотрите
на время создания снова. Программа модифицирывала те файлы у которых дата
поменялась.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
1999.07.23 - Сделайте ваши файлы и дирректории немного защищенней.
Используйте комманду:
chattr +i из под root для того что бы сделать файлы и дирректории
неприкосаемыми для rm и т.д. Даже для root-а. Оменить можно :chattr -i
1999.07.24 - Бед блоки.
Hикогда не помешает проверить диск на бэд-блоки, это не трудно.
Существует 3 полезных программы которые помогут вам найти и восстановить
бэд-блоки в вашей файловой системе. Вы можете обнаружить бед-блоки с помощью
программы badblocks.
Синтакс:
badblocks -o bad.block.output.file /device/name number.of.blocks start block,
Вот для примера:
badblocks -o badblocks /dev/sda2 2024190 1
Проверит устройство /dev/sda2 которое имеет 2024190 блоков начиная с блока 1,
и выведет результат в файл с названием badblocks
Если вы не знаете сколько блоков на вашем диске, вы можете использовать вторую,
более удобную программу-dumpe2fs. Она скажет вам все о файловой системе на
определенном устройстве, включая общее кол-во блоков. Вот пример того что
она выведет:
Filesystem volume name:
Last mounted on:
Filesystem UUID: 8d42d04c-15f1-11d3-9a9c-0040053f15fc
Filesystem magic number: 0xEF53
Filesystem revision #: 0 (original)
Filesystem features: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 507904
Block count: 2024190
Reserved block count: 101209
Free blocks: 1161922
Free inodes: 485305
First block: 1
Block size: 1024
Fragment size: 1024
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2048
Inode blocks per group: 256
Третья программа-fsck.ext2 флаг -l указывает из какого файла брать список
бэд-блоков для восстоновления.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.08.03 - Увеличение скорости своп-диска.
Попробуйте расположить свой своп-диск ближе к началу вашего IDE диска.
Hачало жесткого диска физически расположено на внешней часи целиндра. Головка
чтения/зписи, в этом случае, cможет покрыть большую область за один оборот
диска.
Это значит что может быть записано/считано больше данных за один оборот.
У меня разница состовляет 3MB/сек в зависимости от местоположения
логического диска на IDE устройстве.
Тест:
hdparm -t
------------------------------------------------------------------------
Автор: Rowin Andruscavage
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 05 Aug 99 06:08:16
Subj : Tune up! kernel
________________________________________________________________________________
Привет All...
1999.07.14 - Потерянная память.
Если вы когда нибудь видели надпись "unable to allocate dma buffer" или
"/dev/dsp: out of memory" это случаеться когда ядро не может выделить память
для DSP (памяти около 16 MB) вы можете это исправить перекомпилировав ядро
м выбрав 'persistant dma buffer' в конфигах звука.
Добавте следующие две строчки в
/etc/conf.modules для отключения IPX & Appletalk
alias net-pf-4 off
alias net-pf-5 off
1999.07.14 - Вы знали?
Многие опции ядра могут быть изменены во его время работы.
Вот одна забавная:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(Игнорирвать все ping запросы)
1999.07.22 - Hехватает inodes?
Ядро 2.2 позволяет вам управлять во время работы некоторыми ограничениями.
Hапример можно увеличить максимальное число файлов и inodes
Попробуйте:
echo 32768 > /proc/sys/fs/file-max
echo 65536 > /proc/sys/fs/inode-max
Другие ограничения изменить сложней. Hапример, для увеличения максимального
числа задач вам потребуеться отредактировать include/linux/tasks.h
и перекомпилировать ядро.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.27 - Сделайте ваше ядро меньше и более оптимизированным.
Для того что бы сделать ядро как можно маленьким и освободить его от всего
что вам не требуеться, сделайте все, за исключением некоторых важных вещей,
в модулях ядра. Вам потребуеться некоторые очевидные вещи как IDE/SCSI доступ и
ext2 поддержку встроить в ядро.
Создайте конфигурацию ядра под ваше оборудование:
cd /usr/src/linux; make xconfig (make menuconfig)
.Установите семейство процессоров в PPro/6x86MX для Pentium II/III систем.
.Разрешите MTRR для PentiumPro/II/III and newer(Прим перводчика: тут я не
пойму что хотел сказать автор. new -новый . newer - такого слова нет. Может это
опечатка и автор подразумевал never(никогда). Из одной буквы смысл меняеться на
противоположный newer ? never. оставляю как есть)-AMD K6-2/3 систем.
.Разрешите 'Symmetric multiprocessing' если вы используете только
многопроцессорные
системы.
.Запретите 'Advanced Power Management' если у вас сервер.
.Запретите багофиксы для чипсетов которых у вас нет.
Пример: CMD640 и RZ1000
.Разрешите Generic PCI bus-master DMA поддержку и использование DMA по умолчанию
(Use DMA be defaults)
.Разрешите поддержку чипсета который у вас есть.
Пример: VIA82C586 для VIA VP2/3 и MVP3 материнских плат.
.Разрешите RAID-0 (striping) если у вас есть несколько одинаковых жестких
дисков.
.Запретите Kernel/User netlink socket
.Разрешите только SCSI типы устройств, которые у вас есть.
Пример: SCSI диск, но без tape/CD-ROM/generic
.Запретите Verbose SCSI error reporting
.Запретите SCSI logging facility
.Разрешите ТОЛЬКО специфичные SCSI контроллеры, которые у вас есть.
Пример: Adaptec AIC7xxx
.Test and Tune the Maximum number of commands per LUN
.Запретите ВСЕ сетевые устройства поддержка которых вам не нужна.
.Установите максимальное число Unix98 PTYs в 128
.Запретите Watchdog Timer поддержку
.Запретите все файловые системы
Исключение: ISO 9660 CDROM, Second extended fs,/dev/pts, и /proc поддержка.
.Запретите все сетевые файловые системы (NFS)
Если вам нужна NFS серверная поддержка - отредактируйте исходник и
#undef NFS_PARANOIA
.Запретите все консольные драйвера
Исключение: VGA text console
.Запретите Enhanced Real Time Clock поддержку
.Запретите все non-essential serial and mouse device support.
.Запретите все Video for Linux
.Запретите все non-SCSI/IDE/ATAPI CD-ROMs
.Запретите все ISDN
.Запретите воткни и развлекайся (Plug and Play)
.Запретите все Amateur Radio
.Запретите все Loadable modules
.Запретите поддержку инфракрасных устройств (IrDA subsystem)
.Запретите поддержку джойстиков (Joysticks)
.Запретите все Ftape
.Запретите все Partition Types
.Запретите все Native Language Support
.Запретите все драйвера для звуковых карт (Sound cards)
Попробуйте другие вещи:
отредактируйте /usr/src/linux/Makefile
найдите строку:
MAKE =make
и измените ее на
MAKE =make -j5
будет использоваться несколько копий make с которыми на некоторых системах
будет быстрей компилироваться программы.
Потом измените:
CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
на
CFLAGS = -Wall -Wstrict-prototypes -O7 -fomit-frame-pointer -fno-exceptions
Что включит использование оптимизирующих фишек, которые могут работать
или не работать со всемя ядрами. (оптимизация кода при компиляции)
Вы можете попробовать подобные значения для HOSTFLAGS.
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
Updates From Jonathan A. George, http://home.att.net/~jageorge/performance.html
1999.07.27 - Больше текста.
Если у вас есть поддержка в ядре для этого, вы можете установить текстовые
режимы высокого разрешения поместив vga параметр в ядро. Для примера в lilo,
наберите <labelname> vga=ask где labelname - метка вашего ядра.(linux vga=ask)
Вам будут представлены возможные разрешения. огда вы выберете подходящий
для вас режим, вы можете добавить vga=x в свой /etc/lilo.conf файл, где x
номер режима.
Пояснение: Если номер разрешения который вы выберете будет содержать буквы
(шеснадцатеричный код) (a,b,c,d,e,f) вы должны перед номером режима подставить
'0x'. (0xa000)
------------------------------------------------------------------------
Автор: Marius Aamodt Eriksen [marius@linux.com]
1999.08.03 - Своп-как много в этом слове.
Ядро может использовать своп-разделы на различных дисках в RAID0 стиле
монтируя их с одинаковыми приоритетами.
Ваш /etc/fstab должен содержать что-то типа этого:
/dev/hda1 swap swap defaults,pri=1 0 0
/dev/hdc1 swap swap defaults,pri=1 0 0
Лучше всего поместите своп-раздел на IDE диски находящиеся на разных шинах,
т.к. master и slave на одной шине не могут передовать данные одновременно.
Это не являеться проблемой для SCSI дисков.
------------------------------------------------------------------------
Автор: Rowin Andruscavage
Перевод: Игорь Храповский. Igor Hrapovskii
E-mail: igor00@volgodonsk.cityline.ru
Приветствуються любые комментарии по поводу статьи, возможны неточности.
Вы можете использовать статью в любых Hе коммерческих целей.
Приветсвуеться размещение на сайтах и FAQ посвещенных Линуксу с указанием
Имени переводчика.
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 05 Aug 99 06:10:36
Subj : Tune Up! X11
________________________________________________________________________________
Привет All...
1999.07.27 - Увеличение производительностит X11
(требуеться процессор pentium pro или лучше + mrrt включенное в ядре)
cat /proc/pci
---------------------
VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
Medium devsel. IRQ 7. Master Capable. Latency=40. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xf8000000 [0xf8000000].
---------------------
Видим нашу видеокарту, теперь мы можем увеличить скорость записи в устройство
используя 'write-combining'
Комманда разрешающая 'write-combining' в 4-х меговую область начинающуюся с
0xf8000000 :
echo "base=0xf8000000 size=0x400000 type=write-combining" >> /proc/mtrr
Теперь в /proc/mtrr мы видим следующую новую строчку:
reg02: base=0xf8000000 (3968MB), size= 16MB: write-combining, count=1
Если понадобиться запретить использование 'write-combining':
echo "disable=2" >> /proc/mtrr
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Igor Hrapovskii 2:5062/1.20 05 Aug 99 06:12:22
Subj : Tune Up! Shell
________________________________________________________________________________
Привет All...
1999.07.22 - Быстрый выход.
Для быстрого log out без набирания 'exit' нажмите 'CTRL+D' и вы выйдете из шела.
Для того что бы это отключить,создайте переменную 'ignoreeof'
(set ignoreeof).
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Быстрое замещение в командной строке
Вы можете делать замены в истории комманд. Если при наборе комманды вы ошиблись
и желаете без перенабора или вызова из истории коммад для редактирования ее
выполнить посмотрите пример:
Допустим вы хотели посмотреть на файл 'foo.bar' и ошиблись 'ls -l foo.ber'.
С коммандой '^er^ar^' вы можете заменить 'er' на 'ar' в своей последней
набранной комманде и сразу же выполнить ее.
% ls -l foo.ber
ls: foo.ber: No such file or directory
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.25 - Баги в шелл скрипте? (стоило ли переводить?)
Если вы пишите шелл-скрипт и желаете подебагить его, поместите строчку 'set -vx'
в начало скрипта.
Он вам все и покажет.
Можно добиться того же через командную строку : 'sh -x filename'
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Что за файл?
Что бы узнать наберите 'whatis filename'. filename -имя файла на диске.
Можете так же попробовать комманду 'file'. File даст вам информацию
о файле включая платформу, версию, и структуру библиотек.
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - ...а это кому нибудь надо?
Для того чтобы узнать библиотеки которые использует программа, используйте 'ldd'
комманду.
Пример:
% ldd rxvt
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x4001b000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4002b000)
libc.so.6 => /lib/libc.so.6 (0x400cf000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Что происходит у меня за спиной?
Если есть желание посмотреть на работу процесса в отладочных целях 'strace'
для вас. Она(он) покажет вам что делает процесс во время выполнения
или если он будет присоеденен к уже запущенному процессу.
Вы так же можете приаттачить strace ко всем потомкам процесса.
Для присоеденения к уже запущенному процессу, используйте 'strace -p PID'.
Для присоеденения к потомку используйте '-f flag'
------------------------------------------------------------------------
Автор: Larry Reckner [larryr@linux.com]
1999.07.22 - Strace для библиотек
ltrace- кузин strace.
Ltrace имеет такие же функции как strace, но сфокусированные более на
библиотеках и будет показывать вам все вызовы к системе и библиотекам.
Для отладки.
------------------------------------------------------------------------
Author: Larry Reckner [larryr@linux.com]
1999.07.14 - Терминал замусорился.
Если ваши настройки терминала сбросились или вы не можете прочесть текст
на экране попробуйте использовать 'refresh' комманду. Если ни чего не произошло
попробуйте 'echo "