Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 21
Текст из файла (страница 21)
Оптимизация операционной системы65*cc1_cpu:%{!mcpu*: -O2 –march=i586 –funroll-loops %{m386:-mcpu=i386} %{m486:mcpu=i486} %{mpentium:-mcpu=pentium} %{mpentiumpro:-mcpu=pentiumpro}}ЗАМЕЧАНИЕ Мы используем флаг "-O2" (большая буква "O" два), а не "-02" (ноль два).Для процессоров i486 откройте файл /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs.В ниже приведенном фрагменте:*cpp_cpu_default:-D__tune_i386__*cpp_cpu:-Acpu(i386) -Amachine(i386) %{!ansi:-Di386} -D__i386 -D__i386__%{march=i386:%{!mcpu*:-D__tune_i386__ }}%{march=i486:-D__i486 -D__i486__%{!mcpu*:-D__tune_i486__ }}%{march=pentium|march=i586:-D__pentium D__pentium__%{!mcpu*:-D__tune_pentium__}}%{march=pentiumpro|march=i686:-D__pentiumpro -D__pentiumpro__%{!mcpu*:-D__tune_pentiumpro__ }}%{march=k6:-D__k6 -D__k6__ %{!mcpu*:D__tune_k6__ }}%{march=athlon:-D__athlon -D__athlon__ %{!mcpu*:D__tune_athlon__ }}%{m386|mcpu=i386:-D__tune_i386__ }%{m486|mcpu=i486:D__tune_i486__ }%{mpentium|mcpu=pentium|mcpu=i586:-D__tune_pentium__}%{mpentiumpro|mcpu=pentiumpro|mcpu=i686:-D__tune_pentiumpro__}%{mcpu=k6:-D__tune_k6__ }%{mcpu=athlon:-D__tune_athlon__}%{!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}*cc1_cpu:%{!mcpu*: %{m386:-mcpu=i386} %{m486:-mcpu=i486} %{mpentium:-mcpu=pentium}%{mpentiumpro:-mcpu=pentiumpro}}сделайте следующие исправления:*cpp_cpu_default:-D__tune_i486__*cpp_cpu:-Acpu(i386) -Amachine(i386) %{!ansi:-Di386} -D__i386 -D__i386__%{march=i386:%{!mcpu*:-D__tune_i386__ }}%{march=i486:-D__i486 -D__i486__%{!mcpu*:-D__tune_i486__ }}%{march=pentium|march=i586:-D__pentium D__pentium__%{!mcpu*:-D__tune_pentium__}}%{march=pentiumpro|march=i686:-D__pentiumpro -D__pentiumpro__%{!mcpu*:-D__tune_pentiumpro__ }}%{march=k6:-D__k6 -D__k6__ %{!mcpu*:D__tune_k6__ }}%{march=athlon:-D__athlon -D__athlon__ %{!mcpu*:D__tune_athlon__ }}%{m386|mcpu=i386:-D__tune_i386__ }%{m486|mcpu=i486:D__tune_i486__ }%{mpentium|mcpu=pentium|mcpu=i586:-D__tune_pentium__}%{mpentiumpro|mcpu=pentiumpro|mcpu=i686:-D__tune_pentiumpro__}%{mcpu=k6:-D__tune_k6__ }%{mcpu=athlon:-D__tune_athlon__}%{!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}*cc1_cpu:%{!mcpu*: -O2 –march=i486 –funroll-loops %{m386:-mcpu=i386} %{m486:mcpu=i486} %{mpentium:-mcpu=pentium} %{mpentiumpro:-mcpu=pentiumpro}}ЗАМЕЧАНИЕ Мы используем флаг "-O2" (большая буква "O" два), а не "-02" (ноль два).Для процессоров AMD K6 или K6-2 откройте файл /usr/lib/gcc-lib/i386-redhatlinux/2.96/specs.
В ниже приведенном фрагменте:*cpp_cpu_default:-D__tune_i386__*cpp_cpu:-Acpu(i386) -Amachine(i386) %{!ansi:-Di386} -D__i386 -D__i386__%{march=i386:%{!mcpu*:-D__tune_i386__ }}%{march=i486:-D__i486 -D__i486__%{!mcpu*:-D__tune_i486__ }}%{march=pentium|march=i586:-D__pentium D__pentium__%{!mcpu*:-D__tune_pentium__66Часть 1. Инсталляция операционной системы Linux на сервере}}%{march=pentiumpro|march=i686:-D__pentiumpro -D__pentiumpro__%{!mcpu*:-D__tune_pentiumpro__ }}%{march=k6:-D__k6 -D__k6__ %{!mcpu*:D__tune_k6__ }}%{march=athlon:-D__athlon -D__athlon__ %{!mcpu*:D__tune_athlon__ }}%{m386|mcpu=i386:-D__tune_i386__ }%{m486|mcpu=i486:D__tune_i486__ }%{mpentium|mcpu=pentium|mcpu=i586:-D__tune_pentium__}%{mpentiumpro|mcpu=pentiumpro|mcpu=i686:-D__tune_pentiumpro__}%{mcpu=k6:-D__tune_k6__ }%{mcpu=athlon:-D__tune_athlon__}%{!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}*cc1_cpu:%{!mcpu*: %{m386:-mcpu=i386} %{m486:-mcpu=i486} %{mpentium:-mcpu=pentium}%{mpentiumpro:-mcpu=pentiumpro}}сделайте следующие исправления:*cpp_cpu_default:-D__tune_k6__*cpp_cpu:-Acpu(i386) -Amachine(i386) %{!ansi:-Di386} -D__i386 -D__i386__%{march=i386:%{!mcpu*:-D__tune_i386__ }}%{march=i486:-D__i486 -D__i486__%{!mcpu*:-D__tune_i486__ }}%{march=pentium|march=i586:-D__pentium D__pentium__%{!mcpu*:-D__tune_pentium__}}%{march=pentiumpro|march=i686:-D__pentiumpro -D__pentiumpro__%{!mcpu*:-D__tune_pentiumpro__ }}%{march=k6:-D__k6 -D__k6__ %{!mcpu*:D__tune_k6__ }}%{march=athlon:-D__athlon -D__athlon__ %{!mcpu*:D__tune_athlon__ }}%{m386|mcpu=i386:-D__tune_i386__ }%{m486|mcpu=i486:D__tune_i486__ }%{mpentium|mcpu=pentium|mcpu=i586:-D__tune_pentium__}%{mpentiumpro|mcpu=pentiumpro|mcpu=i686:-D__tune_pentiumpro__}%{mcpu=k6:-D__tune_k6__ }%{mcpu=athlon:-D__tune_athlon__}%{!march*:%{!mcpu*:%{!m386:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}}}*cc1_cpu:%{!mcpu*: -O2 –march=k6 –funroll-loops %{m386:-mcpu=i386} %{m486:mcpu=i486} %{mpentium:-mcpu=pentium} %{mpentiumpro:-mcpu=pentiumpro}}ЗАМЕЧАНИЕ Мы используем флаг "-O2" (большая буква "O" два), а не "-02" (ноль два).Шаг 3Для проверки работоспособности внесенных изменений выполните следующие команды:[root@drwalbr /]# touch cpu.c[root@drwalbr /]# gcc cpu.c –S –fverbose-sam[root@drwalbr /]# less cpu.cЕсли на экран будет выведено нечто подобное:.file "cc9xBgp3.i".version"01.01"# GNU C version 2.96 20000731 (ASPLinux 7.3 2.96-112) (i386-asplinuxlinux) compiled by GNU C version 2.96 20000731 (ASPLinux 7.3 2.96-112).# options passed: -O2 -march=i686 -funroll-loops -fverbose-asm# options enabled: -fdefer-pop -foptimize-sibling-calls -fcse-followjumps# -fcse-skip-blocks -fexpensive-optimizations -fthread-jumps# -fstrength-reduce -funroll-loops -fpeephole -fforce-mem -ffunction-cse# -finline -fkeep-static-consts -fcaller-saves -fpcc-struct-return -fgcse# -frerun-cse-after-loop -frerun-loop-opt -fdelete-null-pointer-checks# -fschedule-insns2 -fsched-interblock -fsched-spec -fbranch-count-reg# -fnew-exceptions -fcommon -fverbose-asm -fgnu-linker -fregmove# -foptimize-register-move -fargument-alias -fstrict-aliasing# -fmerge-constants -fident -fpeephole2 -fmath-errno -m80387 -mhard-float# -mno-soft-float -mieee-fp -mfp-ret-in-387 -march=i686gcc2_compiled.:.ident"GCC: (GNU) 2.96 20000731 (ASPLinux 7.3 2.96-112)"то внесенные вами изменения работают.Глава 5.
Оптимизация операционной системы67Удаление комментариев из исполняемых файлов и библиотекНа этапе компиляции программы в нее добавляется много различных комментариев. Это делается дляудобства отладки программного обеспечения. Для повышения быстродействия системы и сокращения размера исполняемых и библиотечных файлов эти комментарии необходимо удалить.
Что может быть выполнено при помощи команды strip Linux. При использовании команды необходимо соблюдать некоторыемеры предосторожности, о которых мы расскажем ниже. Неаккуратное использование команды strip может привести к непредсказуемым последствиям. Важно помнить, что не все бинарные файлы, особеннофайлы библиотек, должны быть отредактированы с использованием этой команды, а только часть из них.Этот метод повышения производительности системы может быть применен на серверах, на которых неосуществляется компиляция программного обеспечения, либо на сервере, на котором откомпилировано иустановлено все необходимое для его работы программное обеспечение.Шаг 1Прежде всего, необходимо убедиться, что команда strip доступна на вашем сервере. Если она неустановлена, то необходимо установить пакет binutils, входящий в дистрибутив ASPLinux, используярекомендации раздела «Как использовать команды rpm» главы 2.Шаг 2Для очистки исполняемых файлов в директориях /bin, /sbin, /usr/bin и /usr/sbin необходимо выполнить следующие команды:[root@drwalbr /]# strip /bin/*[root@drwalbr /]# strip /sbin/*[root@drwalbr /]# strip /usr/bin/*[root@drwalbr /]# strip /usr/sbin/*ЗАМЕЧАНИЕ При выполнении этих команд вы увидите несколько сообщений об ошибках:"File format not recognized".Это обусловлено тем, что в директориях /bin, /sbin, /usr/bin и /usr/sbin содержатся не только исполняемые файлы, но и символьные ссылки на них, а программа strip не умеет их обрабатывать.Шаг 3Для очистки файлов библиотек необходимо выполнить следующие команды:[root@drwalbr /]# strip –R .comment /usr/lib/*.so.*[root@drwalbr /]# strip –R .comment /lib/*.so.*ЗАМЕЧАНИЕ Опция "-R" в команде strip позволяет нам задавать названия фрагментов, удаляемых избиблиотек.
С помощью ".comment" мы сообщаем команде, что необходимо удалять любые строки, содержащие ".comment"Оптимизация настроек жесткого диска с IDE-интерфейсомДоступ к информации на жестком диске осуществляется в 50…100 раз медленнее, чем к данным воперативной памяти. Именно поэтому настройка быстродействия жесткого диска является критичной, сточки зрения обеспечения максимальной производительности сервераНастройки ASPLinux по умолчанию позволяют обеспечить максимум совместимости. Вы же, хорошозная особенности диска и материнской платы, можете изменить настройки, обеспечив максимум производительности.
Для оптимизации настроек жесткого диска с интерфейсом IDE используется команда hdparm.Ускорение в работе на операции ввода-вывода достигается путем специализированных IDE драйверов, использования прямого доступа к памяти, 32-разрядного обмена и блочных режимов передачи данных.Следует отметить, что диски IDE/ATA разных производителей по-разному подвержены ускорению спомощью рассматриваемой утилиты. Так, лучше всего ускоряются диски Quantum (ныне Maxtor), чуть хуже– Western Digital, и совсем плохо – Fujitsu.Перед началом оптимизации диска проверьте, установлен ли пакет hdpram:[root@drwalbr /]# rpm -q hdparmpackage hdparm is not installedДля установки пакета необходимо вставить первый компакт-диск дистрибутива ASPLinux в дисководи выполнить следующие команды:[root@drwalbr /]# mount /mnt/cdrom[root@drwalbr /]# cd /mnt/cdrom/ASPLinux/RPMS[root@drwalbr RPMS]# rpm –Uhv hdparm-5.1-1.asp.i386.rpmhdparm################################################## 100%68Часть 1.
Инсталляция операционной системы Linux на сервереПосле установки пакета необходимо размонтировать компакт диск:[root@drwalbr /]# cd[root@drwalbr /]# umount /mnt/cdromВ зависимости от моделей производителей диска и системной платы будут устанавливаться различные параметры оптимизации. Неправильный выбор этих параметров может привести к полному выходудиска из строя. Поэтому перед началом оптимизации необходимо изучить параметры системы.Необходимо так же проверить параметры настройки BIOS, выяснить, поддерживает ли ваша системарежим DMA и включены ли параметры, обеспечивающие поддержку этого режима.Шаг 1Этот шаг применим к большинству дисков – включает 32-разрядный ввод-вывод по PCI-шинам.
Этаопция – одна из самых важных и может удвоить скорость вашего диска:[root@drwalbr /]# /sbin/hdparm -c3 /dev/hdaЗдесь и далее предполагается, что мы оптимизируем диск /dev/hda. Опция "-c3" работает почти совсеми 32-разрядными наборами микросхем IDE. Более подробно использование этой опции описано на manстранице hdparm:[root@drwalbr /]# /sbin/man 8 hdparm -c3 /dev/hdaШаг 2Второй параметр применяется только для дисков стандарта DMA и активизирует обычный режимDMA. Такой режим поддерживается старыми DMA дисками.