3063 lines
201 KiB
Text
3063 lines
201 KiB
Text
<!--
|
||
The FreeBSD Mongolian Documentation Project
|
||
|
||
Original revision 1.238
|
||
|
||
$FreeBSD$
|
||
-->
|
||
|
||
<chapter id="config-tuning">
|
||
<chapterinfo>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Шерн</firstname>
|
||
<surname>Ли</surname>
|
||
<contrib>Хойно дурдсан заавар болон гарын авлага дээр тулгуурлан бичсэн </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Майк</firstname>
|
||
<surname>Смит</surname>
|
||
<contrib>Зааврыг бичсэн </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Мэтт</firstname>
|
||
<surname>Диллон</surname>
|
||
<contrib>tuning(7)-г бичсэн </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</chapterinfo>
|
||
|
||
<title>Тохиргоо ба Тааруулалт</title>
|
||
|
||
<sect1 id="config-synopsis">
|
||
<title>Ерөнхий агуулга</title>
|
||
|
||
<indexterm><primary>системийн тохиргоо</primary></indexterm>
|
||
<indexterm><primary>системийн оновчлол</primary></indexterm>
|
||
|
||
<para>&os;-ийн хамгийн чухал зүйлүүдийн нэг нь системийн тохиргоо юм.
|
||
Зөв системийн тохиргоо нь ирээдүйн шинэчлэлтүүдийн үед толгойн өвчин гаргахгүй
|
||
байхад тусална. Энэ бүлэг &os; системийг тааруулахад хэрэглэгддэг зарим нэг
|
||
параметрүүд болон тохиргооны процессийн талаар илүү тайлбарлах болно.</para>
|
||
|
||
<para>Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Файлын системүүд болон хуваалтуудтай хэрхэн үр ашигтай ажиллах
|
||
талаар.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><filename>rc.conf</filename> тохиргоо болон
|
||
<filename class="directory">/usr/local/etc/rc.d</filename> эхлэлийн системүүдийн
|
||
үндсүүд.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Сүлжээний картыг хэрхэн тохиргоо болон тест хийх талаар.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Сүлжээний төхөөрөмж дээрээ виртуал хостууд хэрхэн тохируулах талаар.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><filename class="directory">/etc</filename> дэх төрөл бүрийн тохиргооны файлыг
|
||
хэрхэн ашиглах талаар.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><command>sysctl</command> хувьсагчуудыг ашиглан &os;-ийг
|
||
хэрхэн тааруулах талаар.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Дискний хурдан ажиллагааг хэрхэн тааруулах болон цөмийн хязгааруудыг
|
||
хэрхэн өөрчлөх талаар.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>&unix; болон &os;-ийн үндсийг ойлгох (<xref
|
||
linkend="basics">).</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Цөмийн тохиргоо/хөрвүүлэлтийн үндсүүдийн талаар ойлголттой байх
|
||
(<xref linkend="kernelconfig">).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-initial">
|
||
<title>Эхний Тохиргоо</title>
|
||
|
||
<sect2>
|
||
<title>Хуваалтын байрлал</title>
|
||
|
||
<indexterm><primary>хуваалтын байрлал</primary></indexterm>
|
||
<indexterm>
|
||
<primary><filename class="directory">/etc</filename></primary>
|
||
</indexterm>
|
||
<indexterm>
|
||
<primary><filename class="directory">/var</filename></primary>
|
||
</indexterm>
|
||
<indexterm>
|
||
<primary><filename class="directory">/usr</filename></primary>
|
||
</indexterm>
|
||
|
||
<sect3>
|
||
<title>Үндсэн Хуваалтууд</title>
|
||
|
||
<para>&man.bsdlabel.8; болон &man.sysinstall.8; ашиглан файлын
|
||
системүүдийг байрлуулахдаа хатуу хөтлөгчүүд өгөгдлийг дотоод замуудаас
|
||
илүү гаднах замуудаас хурдан шилжүүлдгийг санаарай.
|
||
Тиймээс жижиг, байнга ханддаг файлын системүүд хөтлөгчийн гадна тал уруу ойрхон
|
||
байх ёстой бөгөөд <filename class="directory">/usr</filename> зэрэг том хуваалтууд
|
||
дискийн дотор тал уруу байх хэрэгтэй. Хуваалтуудыг иймэрхүү дарааллаар байрлуулах нь
|
||
зөв юм: root, swap, <filename class="directory">/var</filename>,
|
||
<filename class="directory">/usr</filename>.</para>
|
||
|
||
<para><filename class="directory">/var</filename> хуваалтын хэмжээ төлөвлөсөн машины хэрэглээг
|
||
тусгадаг.
|
||
<filename class="directory">/var</filename> файлын систем нь шуудангийн хайрцгууд, бүртгэлийн файлууд,
|
||
болон принтерийн spool агуулдаг. Шуудангийн хайрцгууд болон бүртгэлийн
|
||
файлууд хичнээн хэрэглэгч байгаа болон ямар хугацаанд бүртгэлийн файлууд байхаас
|
||
хамаараад төсөөлөшгүй хэмжээнд хүртэл ихсэж болдог. Ихэнх хэрэглэгчдийн хувьд
|
||
<filename class="directory">/var</filename>-д нэг гигабайт сул зай байхад хангалттай байдаг.</para>
|
||
|
||
<note>
|
||
<para><filename class="directory">/var/tmp</filename>-д ихээхэн хэмжээний дискийн зай
|
||
шаардагддаг цөөхөн тохиолдол байдаг. Шинэ програм хангамжийг &man.pkg.add.1;
|
||
ашиглан суулгахад багцлах хэрэгслүүд багцын түр зуурын хуулбарыг
|
||
<filename class="directory">/var/tmp</filename>-д задалдаг. <filename class="directory">/var/tmp</filename>-д
|
||
хангалттай дискийн чөлөөтэй зай байхгүй бол <application>Firefox</application>
|
||
эсвэл <application>OpenOffice</application> зэрэг томоохон програм хангамжийн
|
||
багцуудыг суулгахад төвөгтэй байж болох юм.</para>
|
||
</note>
|
||
|
||
<para><filename class="directory">/usr</filename> хуваалт &man.ports.7; цуглуулга (байлгахыг зөвлөдөг),
|
||
болон эх код (заавал биш) зэрэг системийг дэмжихэд шаардлагатай ихэнх файлуудыг агуулдаг.
|
||
Портууд болон үндсэн системийн эхүүдийг суулгалтын үед сонгох боломжтой боловч бид энэ
|
||
хуваалтад хамгийн багаар бодоход 2 гигабайт байхыг зөвлөдөг.</para>
|
||
|
||
<para>Хуваалтын хэмжээг сонгохдоо зайн шаардлагыг бодох хэрэгтэй. Нэг хуваалт нь
|
||
бараг л ашиглагдахгүй байхад нөгөө нь зайгүй болж байх нь асуудал юм.</para>
|
||
|
||
<note><para>&man.sysinstall.8;-ийн <literal>Auto-defaults</literal>
|
||
хуваалтын хэмжээг өгөгч нь заримдаа <filename class="directory">/var</filename> болон
|
||
<filename class="directory">/</filename> хуваалтуудад боломжоос бага хэмжээг сонгодгийг
|
||
зарим хэрэглэгчид олсон байна. Хуваалтыг ухаалгаар харамгүй хийгээрэй.</para></note>
|
||
</sect3>
|
||
|
||
<sect3 id="swap-design">
|
||
<title>Swap Хуваалт</title>
|
||
|
||
<indexterm><primary>swap хэмжээ нэмэх</primary></indexterm>
|
||
<indexterm><primary>swap хуваалт</primary></indexterm>
|
||
|
||
<para>Swap хуваалтын хэмжээ системийн санах ойг (RAM) хоёр дахин авсан
|
||
хэмжээтэй байх ёстой. Жишээлбэл машин 128 мегабайт санах ойтой
|
||
бол swap файл 256 мегабайт байх ёстой. Бага санах ойтой системүүд
|
||
их swap-тай бол илүү хурдан ажиллаж болох юм. 256 мегабайтаас бага
|
||
swap-ийг хэрэглэхийг зөвлөдөггүй бөгөөд санах ойн өргөтгөл хэрэгтэй. Цөмийн
|
||
VM хуудаслах алгоритмууд нь багаар бодоход гол санах ойг хоёр дахин авсантай
|
||
тэнцэх swap хуваалттай байх үед хамгийн хурдан ажиллахаар тааруулагдсан
|
||
байдаг. Хэтэрхий бага swap тохируулах нь VM хуудас скан хийх кодыг үр
|
||
ашиггүйтэлд хүргэж илүү санах ой хожим нэмэхэд асуудал үүсгэж болох юм.</para>
|
||
|
||
<para>Олон SCSI дискнүүд бүхий (эсвэл олон IDE дискнүүд өөр өөр хянагчууд дээр
|
||
ажиллаж байгаа) томоохон системүүдэд swap-ийг хөтлөгч болгон дээр (4 хөтлөгч хүртэл)
|
||
тохируулахыг зөвлөдөг. Swap хуваалтууд нь ойролцоогоор адилхан хэмжээний
|
||
байх шаардлагатай. Цөм дурын хэмжээтэй ажиллаж чадах боловч дотоод өгөгдлийн
|
||
бүтцүүд хамгийн том swap хуваалтыг 4 дахин авсантай адил хэмжээгээр
|
||
томрох боломжтой. Swap хуваалтуудыг ойролцоогоор адил хэмжээтэй байлгах нь
|
||
swap зайг дискнүүдийн дагуу оновчтойгоор судал үүсгэх боломжийг цөмд олгодог.
|
||
Swap их ашиглагддаггүй байсан ч гэсэн том swap хэмжээ байж болно.
|
||
Хүчээр дахин ачаалагдах үед дагаж хаагдсан програмаас өгөгдлийг сэргээх нь
|
||
амархан байж болох юм.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Яагаад Хуваах хэрэгтэй гэж?</title>
|
||
|
||
<para>Зарим хэрэглэгчид ганц том хуваалт байхад болно гэж боддог,
|
||
гэхдээ энэ нь яагаад буруу болох хэд хэдэн шалтгаан бий.
|
||
Нэгдүгээрт хуваалт болгон өөр өөр ажиллагааны шинж чанаруудтай бөгөөд
|
||
тэдгээрийг тусгаарласнаар файлын системийг тэдгээрт тааруулах боломжийг
|
||
олгодог. Жишээ нь root болон <filename class="directory">/usr</filename>
|
||
хуваалтууд байнга бичигдэхээсээ илүү ихэвчлэн уншигддаг.
|
||
Харин уншилт болон бичилт <filename class="directory">/var</filename> болон
|
||
<filename class="directory">/var/tmp</filename>-д байнга хийгддэг.</para>
|
||
|
||
<para>Системийг зөв хувааснаар ачаалалтай хуваалтуудад хийсэн жижиг
|
||
бичилтээр гарсан хэсэглэлт илүүдэж байнга уншигддаг хуваалтууд уруу
|
||
хальдаггүй. Бичилт-ачаалсан хуваалтуудыг дискний ирмэг уруу байрлуулах нь
|
||
бичилт ихэвчлэн хийгддэг хуваалтууд дахь I/O ажиллагааг хурдасгадаг.
|
||
Том хуваалтуудад I/O-н хурдан ажиллагаа хэрэгтэй байж болох ч
|
||
тэдгээрийг дискний ирмэг уруу илүүтэй ойртуулах нь
|
||
<filename class="directory">/var</filename>-ийг ирмэг уруу шилжүүлснээс илүү
|
||
мэдэгдэхүйц хурдан ажиллагаанд хүргэхгүй. Эцэст нь найдвартай байдлыг бодох
|
||
ёстой. Ихэвчлэн уншигддаг, жижиг, цэвэрхэн root хуваалт хэцүү сүйрэл
|
||
болоход сэргэх боломж нь хамаагүй илүү байна.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-core-configuration">
|
||
<title>Гол Тохиргоо</title>
|
||
|
||
<indexterm>
|
||
<primary>rc файлууд</primary>
|
||
<secondary><filename>rc.conf</filename></secondary>
|
||
</indexterm>
|
||
|
||
<para>Системийн тохиргооны мэдээлэл <filename>/etc/rc.conf</filename>
|
||
дотор байдаг. Энэ файл нь өргөн хүрээний, зарчмын хувьд системийг эхлэх
|
||
үед системийг тохируулахад ашиглагддаг тохиргооны мэдээллүүдээс тогтоно.
|
||
Үүний нэр нь шууд утгыг тодорхойлно; энэ нь <filename>rc*</filename>
|
||
файлуудад зориулсан тохиргооны мэдээлэл юм.</para>
|
||
|
||
<para>Администратор
|
||
<filename>/etc/defaults/rc.conf</filename>-ийн анхдагч утгуудыг
|
||
<filename>rc.conf</filename> файлд өөрчилж оруулах хэрэгтэй.
|
||
Анхдагчуудын файл <filename class="directory">/etc</filename> уруу хуулагдах ёсгүй -
|
||
энэ нь жишээ биш анхдагч утгуудыг агуулдаг. Бүх системийн холбогдолтой
|
||
өөрчлөлтүүд <filename>rc.conf</filename> файлд өөрт нь хийгдэх
|
||
ёстой.</para>
|
||
|
||
<para>Удирдлагын нэмэлт ачааллыг байнга бага байлгахын тулд сайт дагуух тохиргоог
|
||
системийн тусгайлсан тохиргооноос тусгаарлах хэд хэдэн стратеги кластер хийгдсэн
|
||
програмуудад байж болох юм. Сайтын дагуух тохиргоог
|
||
<filename>/etc/rc.conf.site</filename> зэрэг өөр файлд байрлуулж
|
||
дараа нь энэ файлыг зөвхөн системийн тусгайлсан мэдээллийг агуулдаг
|
||
<filename>/etc/rc.conf</filename>-д оруулахыг
|
||
зөвлөдөг.</para>
|
||
|
||
<para><filename>rc.conf</filename> нь &man.sh.1;-ээр уншигддаг болохоор
|
||
үүнийг хийхэд амархан байна. Жишээ нь:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem><para>rc.conf:</para>
|
||
<programlisting> . /etc/rc.conf.site
|
||
hostname="node15.example.com"
|
||
network_interfaces="fxp0 lo0"
|
||
ifconfig_fxp0="inet 10.1.1.1"</programlisting></listitem>
|
||
<listitem><para>rc.conf.site:</para>
|
||
<programlisting> defaultrouter="10.1.1.254"
|
||
saver="daemon"
|
||
blanktime="100"</programlisting></listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Дараа нь <filename>rc.conf.site</filename> файл
|
||
систем болгонд <command>rsync</command> эсвэл адил
|
||
програмаар түгээгдэж болох бөгөөд харин
|
||
<filename>rc.conf</filename> файл нь өөр өөр хэвээр байх болно.</para>
|
||
|
||
<para>&man.sysinstall.8; эсвэл <command>make world</command> ашиглан
|
||
системийг шинэчлэхэд <filename>rc.conf</filename> файлыг
|
||
дарж бичихгүй, тэгэхээр системийн тохиргооны мэдээлэл хаягдахгүй.</para>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-appconfig">
|
||
<title>Програмын Тохиргоо</title>
|
||
|
||
<para>Ерөнхийдөө суулгасан програмууд нь өөрийн дүрэм гэх мэт онцлогтой өөр өөрийн
|
||
тохиргооны файлуудтай байдаг. Эдгээр файлуудыг багц удирдах хэрэгслүүдээр
|
||
амархан олж удирдаж болохоор үндсэн системээс тусад нь байлгах нь чухал юм.</para>
|
||
|
||
<indexterm><primary>/usr/local/etc</primary></indexterm>
|
||
|
||
<para>Ерөнхийдөө эдгээр файлууд нь <filename class="directory">/usr/local/etc</filename>
|
||
дотор суулгагддаг. Програм их олон тооны тохиргооны файлуудтай тохиолдолд
|
||
тэдгээрийг агуулж дэд сан үүсгэгдэнэ.</para>
|
||
|
||
<para>Ихэнхдээ порт эсвэл багц суухад жишээ тохиргооны файлууд бас суудаг.
|
||
Эдгээр нь ихэнхдээ <filename>.default</filename> дагавраар
|
||
танигддаг. Хэрэв програмын хувьд тохиргооны файлууд байхгүй байвал
|
||
тэдгээрийг <filename>.default</filename> файлуудыг хуулж үүсгэнэ.</para>
|
||
|
||
<para>Жишээ нь <filename class="directory">/usr/local/etc/apache</filename> санд
|
||
байгаа файлуудыг үзье:</para>
|
||
|
||
<literallayout class="monospaced">-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
|
||
-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
|
||
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf
|
||
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default
|
||
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic
|
||
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default
|
||
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types
|
||
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default
|
||
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
|
||
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default</literallayout>
|
||
|
||
<para>Файлын хэмжээнүүд нь зөвхөн <filename>srm.conf</filename> файл
|
||
өөрчлөгдсөнийг харуулж байна. <application>Apache</application>
|
||
портын дараагийн шинэчлэл энэ өөрчлөгдсөн файлыг дарж хуулахгүй.</para>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-starting-services">
|
||
<sect1info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
<contrib>Хувь нэмэр болгон оруулсан </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect1info>
|
||
|
||
<title>Үйлчилгээнүүдийг эхлүүлэх нь</title>
|
||
|
||
<indexterm><primary>үйлчилгээнүүд</primary></indexterm>
|
||
|
||
<para>Олон хэрэглэгчид Портуудын Цуглуулгаас гуравдагч програм хангамжуудыг
|
||
&os; дээр суулгахаар сонгодог. Ихэнх тохиолдолд програм хангамжийг
|
||
систем ачаалахад эхлүүлэхээр тохируулах шаардлагатай байж болох юм.
|
||
<filename role="package">mail/postfix</filename> эсвэл
|
||
<filename role="package">www/apache13</filename>
|
||
зэрэг үйлчилгээнүүд нь системийг ачаалахад эхлүүлж болох програм
|
||
хангамжийн багцуудын зөвхөн хоёрхон жишээ юм. Энэ хэсэгт гуравдагч
|
||
програм хангамжийг ажиллуулах процедурын талаар тайлбарлах болно.</para>
|
||
|
||
<para>&os; дээр &man.cron.8; зэрэг ихэнх үйлчилгээнүүд системийн эхлүүлэх
|
||
скриптүүдийн тусламжтай эхэлдэг. Эдгээр скриптүүд &os; эсвэл
|
||
үйлдвэрлэгчийн хувилбараас хамааран өөр өөр байна; гэхдээ хамгийн чухал
|
||
авч үзэх зүйл нь тэдгээрийн эхлэх тохиргоог энгийн эхлүүлэх скриптүүдээр хийх
|
||
боломжтой явдал юм.</para>
|
||
|
||
<sect2>
|
||
<title>Програмын Өргөтгөсөн Тохиргоо</title>
|
||
|
||
<para>Одоогийн &os;-ийн <filename>rc.d</filename>-г агуулдаг нь
|
||
програмын эхлүүлэх тохиргоог илүү хялбар, боломжтой болгосон.
|
||
<link linkend="configtuning-rcd">rc.d</link> хэсэгт
|
||
хэлэлцсэн түлхүүр үгүүдийг ашиглан програмууд жишээ нь
|
||
<acronym>DNS</acronym> зэрэг зарим үйлчилгээнүүдийн дараа
|
||
ажиллахаар тохируулагдаж болно; эхлүүлэх скриптүүдэд хатуугаар
|
||
бичигдсэн тугуудын оронд <filename>rc.conf</filename>-оор
|
||
нэмэлт тугуудыг өгөхийг зөвшөөрч болох гэх мэт.
|
||
Үндсэн скрипт дараах байдлаар харагдаж болно:</para>
|
||
|
||
<programlisting>#!/bin/sh
|
||
#
|
||
# PROVIDE: utility
|
||
# REQUIRE: DAEMON
|
||
# KEYWORD: shutdown
|
||
|
||
. /etc/rc.subr
|
||
|
||
name="utility"
|
||
rcvar=`set_rcvar`
|
||
command="/usr/local/sbin/utility"
|
||
|
||
load_rc_config $name
|
||
|
||
#
|
||
# DO NOT CHANGE THESE DEFAULT VALUES HERE
|
||
# SET THEM IN THE /etc/rc.conf FILE
|
||
#
|
||
utility_enable=${utility_enable-"NO"}
|
||
utility_pidfile=${utility_pidfile-"/var/run/utility.pid"}
|
||
|
||
pidfile="${utility_pidfile}"
|
||
|
||
run_rc_command "$1"</programlisting>
|
||
|
||
<para>Энэ скрипт нь өгөгдсөн <application>utility</application>-г
|
||
<literal>DAEMON</literal> псевдо үйлчилгээний дараа ажиллуулахаар
|
||
тохируулагдсан. Мөн <acronym>PID</acronym>, эсвэл процессийн
|
||
<acronym>ID</acronym> файлыг заах болон дагах аргыг бас хангадаг.</para>
|
||
|
||
<para>Энэ програм дараах мөрийг <filename>/etc/rc.conf</filename>
|
||
файлд оруулж болно:</para>
|
||
|
||
<programlisting>utility_enable="YES"</programlisting>
|
||
|
||
<para>Энэхүү арга нь тушаалын мөрийн нэмэлт өгөгдлүүдийг илүү хялбараар
|
||
удирдах боломжийг зөвшөөрдөг бөгөөд <filename>/etc/rc.subr</filename>
|
||
дахь анхдагч функцуудыг оруулах, &man.rcorder.8; хэрэгсэлтэй нийцтэй байх,
|
||
болон <filename>rc.conf</filename> файлын тусламжтай хялбараар
|
||
тохиргоо хийх боломжийг бас хангадаг.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Үйлчилгээнүүдийг эхлүүлэхийн тулд үйлчилгээнүүдийг ашиглах нь</title>
|
||
|
||
<para><acronym>POP</acronym>3 сервер дэмонууд,
|
||
<acronym>IMAP</acronym> зэрэг бусад үйлчилгээнүүд &man.inetd.8;
|
||
ашиглан эхэлж болдог. Энэ нь Портуудын Цуглуулгаас
|
||
<filename>/etc/inetd.conf</filename> файлд нэмэгдэх мөр бүхий эсвэл
|
||
одоогийн байгаа мөрүүдийн нэгнээс тайлбарыг болиулж идэвхжүүлдэг үйлчилгээний
|
||
хэрэгслийг суулгаснаар хэрэгждэг.
|
||
<application>inetd</application> болон түүний тохиргоотой ажиллах
|
||
талаар <link linkend="network-inetd">inetd</link> хэсэгт гүнзгий
|
||
тайлбарласан байгаа болно.</para>
|
||
|
||
<para>Зарим тохиолдолд &man.cron.8; ашиглан системийн үйлчилгээнүүдийг
|
||
эхлүүлэх нь илүү ашигтай байж болох юм. Энэ арга нь хэд хэдэн давуу талуудтай
|
||
бөгөөд учир нь <command>cron</command> эдгээр процессуудыг
|
||
<filename>crontab</filename>-н файлын эзэмшигчийн эрхээр ажиллуулдаг.
|
||
Энэ нь ердийн хэрэглэгчдэд зарим програмуудыг эхлүүлж ажиллагааг хангах боломжийг
|
||
олгодог.</para>
|
||
|
||
<para><command>cron</command> хэрэгсэл <literal>@reboot</literal>
|
||
гэсэн бусдад байхгүй боломжийг олгодог бөгөөд цаг хугацааг заах хэсэгт ашиглагдах
|
||
боломжтой. Энэ нь системийг эхлүүлэх явцад &man.cron.8; эхлэх үед тухайн
|
||
ажлыг ажиллуулдаг.</para>
|
||
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-cron">
|
||
<sect1info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
<contrib>Хувь нэмэр болгон оруулсан </contrib>
|
||
<!-- 20 May 2003 -->
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect1info>
|
||
<title><command>cron</command> хэрэгслийг тохируулах нь</title>
|
||
|
||
<indexterm><primary>cron</primary>
|
||
<secondary>тохиргоо</secondary></indexterm>
|
||
|
||
<para>&os;-ийн хамгийн ашигтай хэрэгслүүдийн нэг нь &man.cron.8; юм.
|
||
<command>cron</command> хэрэгсэл ард ажилладаг бөгөөд
|
||
<filename>/etc/crontab</filename> файлыг байнга шалгаж
|
||
байдаг. <command>cron</command> хэрэгсэл
|
||
<filename class="directory">/var/cron/tabs</filename> сангаас шинэ
|
||
<filename>crontab</filename> файлуудыг бас шалгадаг.
|
||
Эдгээр <filename>crontab</filename> файлууд нь тусгай функцуудыг
|
||
агуулдаг бөгөөд эдгээрийг <command>cron</command> тодорхой хугацаанд
|
||
ажиллуулах ёстой байдаг.</para>
|
||
|
||
<para><command>cron</command> хэрэгсэл системийн crontab болон хэрэглэгчийн
|
||
crontab гэсэн хоёр төрлийн тохиргооны файлыг ашигладаг. Энэ хоёр хэлбэршилтийн
|
||
зөвхөн ялгаа нь зургаа дахь талбар юм. Системийн crontab дээрх зургаа дахь
|
||
талбар нь тушаалыг ажиллуулах хэрэглэгчийн нэр байдаг. Энэ нь системийн crontab-ийг
|
||
ямар ч хэрэглэгчийн эрхээр тушаалуудыг ажиллуулах боломж олгодог. Хэрэглэгчийн
|
||
crontab дээрх зургаа дахь талбар нь ажиллуулах тушаал бөгөөд бүх тушаалууд нь
|
||
crontab-ийг үүсгэсэн хэрэглэгчийн эрхээр ажилладаг; энэ нь аюулгүй байдлын
|
||
нэг чухал боломж юм.</para>
|
||
|
||
<note>
|
||
<para>Хэрэглэгчийн crontab-ууд нь хэрэглэгчдэд <username>root</username>
|
||
эрхийн шаардлагагүйгээр бодлогуудыг цагийн хуваариар ажиллуулах боломж олгодог.
|
||
Хэрэглэгчийн crontab дахь тушаалууд нь crontab-ийг эзэмшиж байгаа хэрэглэгчийн
|
||
эрхээр ажилладаг.</para>
|
||
|
||
<para><username>root</username> хэрэглэгч бас бусад хэрэглэгчийн нэгэн адил
|
||
хэрэглэгчийн crontab-тай байж болно. Энэ нь <filename>/etc/crontab</filename>-аас
|
||
(системийн crontab) өөр байна. Системийн crontab байдаг учраас
|
||
<username>root</username> хэрэглэгчийн хувьд ихэнхдээ хэрэглэгчийн crontab
|
||
шаардлагагүй байдаг.</para>
|
||
</note>
|
||
|
||
<para><filename>/etc/crontab</filename> файлыг (системийн crontab) харцгаая:</para>
|
||
|
||
|
||
<programlisting># /etc/crontab - root's crontab for &os;
|
||
#
|
||
# $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
|
||
# <co id="co-comments">
|
||
#
|
||
SHELL=/bin/sh
|
||
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co id="co-env">
|
||
HOME=/var/log
|
||
#
|
||
#
|
||
#minute hour mday month wday who command <co id="co-field-descr">
|
||
#
|
||
#
|
||
*/5 * * * * root /usr/libexec/atrun <co id="co-main">
|
||
</programlisting>
|
||
|
||
<calloutlist>
|
||
<callout arearefs="co-comments">
|
||
<para>&os;-ийн ихэнх тохиргооны файлуудын адил <literal>#</literal> тэмдэгт
|
||
тайлбарыг илэрхийлнэ. Тайлбарыг хүсэж байгаа үйлдэл нь юу болох яагаад хийгдэж
|
||
байгааг сануулах зорилгоор файлд тавьж болдог. Тайлбаруудыг тушаал байгаа мөрд
|
||
хийж болохгүй бөгөөд ингэсэн тохиолдолд тушаалын хэсэг мэтээр ойлгогдоно; тэдгээр нь
|
||
шинэ мөрөнд байх ёстой. Хоосон мөрүүдийг тооцохгүй.</para>
|
||
</callout>
|
||
|
||
<callout arearefs="co-env">
|
||
<para>Эхлээд орчин тодорхойлогдох шаардлагатай. Тэнцүүгийн (<literal>=</literal>)
|
||
тэмдэг орчны тохиргоог тодорхойлоход ашиглагддаг бөгөөд энэ жишээн дээр
|
||
<envar>SHELL</envar>,<envar>PATH</envar>, болон <envar>HOME</envar>
|
||
тохируулгуудад ашиглагдаж байна. Хэрэв бүрхүүлийн мөрийг орхисон бол
|
||
<command>cron</command> анхдагч болох <command>sh</command>-ийг ашигладаг.
|
||
Хэрэв <envar>PATH</envar> хувьсагчийг орхисон бол ямар ч анхдагч ашиглагдахгүй бөгөөд
|
||
файлын байрлалууд абсолют байх хэрэгтэй. Хэрэв <envar>HOME</envar> мөрийг
|
||
орхисон бол <command>cron</command> ажиллуулж байгаа хэрэглэгчийн гэрийн санг
|
||
ашигладаг.</para>
|
||
</callout>
|
||
|
||
<callout arearefs="co-field-descr">
|
||
<para>Энэ мөр нь нийт долоон талбарыг тодорхойлдог. Энд жагсаагдсан утгууд нь
|
||
<literal>minute</literal>, <literal>hour</literal>,
|
||
<literal>mday</literal>, <literal>month</literal>,
|
||
<literal>wday</literal>,
|
||
<literal>who</literal>, болон <literal>command</literal> юм.
|
||
Эдгээрийг нэрээс нь харахад ойлгомжтой. <literal>minute</literal> нь тушаал
|
||
ажиллах минутаар илэрхийлэгдсэн хугацаа. <literal>hour</literal> нь
|
||
<literal>minute</literal>-ын адил тохируулга бөгөөд цагаар илэрхийлэгддэг.
|
||
<literal>mday</literal> нь сарын өдрийг заана.
|
||
<literal>month</literal> нь <literal>hour</literal> болон
|
||
<literal>minute</literal>-тай адил бөгөөд сарыг зааж өгнө.
|
||
<literal>wday</literal> тохируулга нь долоо хоногийн
|
||
өдрийг заана. Эдгээр бүх талбарууд нь тоон утга байх ёстой бөгөөд хорин дөрвөн
|
||
цагийг дагадаг. <literal>who</literal> талбар нь тусгай бөгөөд зөвхөн
|
||
<filename>/etc/crontab</filename> файлд байдаг. Энэ талбар нь аль
|
||
хэрэглэгчийн эрхээр тушаал ажиллахыг заадаг. Хэрэглэгч өөрийн
|
||
<filename>crontab</filename> файлыг суулгах үед энэ тохируулга байдаггүй.
|
||
Эцэст нь <literal>command</literal> тохируулга жагсаагддаг. Энэ нь
|
||
сүүлийн талбар бөгөөд ажиллуулах тушаалд зориулагдсан байх ёстой.</para>
|
||
</callout>
|
||
|
||
<callout arearefs="co-main">
|
||
<para>Энэ сүүлийн мөр нь дээр дурдсан утгуудыг тодорхойлдог. Энд бид
|
||
хэд хэдэн <literal>*</literal> тэмдэгтүүд дараалсан <literal>*/5</literal>
|
||
гэсэн жагсаалт байгааг анзаарах хэрэгтэй. Эдгээр <literal>*</literal>
|
||
тэмдэгтүүд нь <quote>эхний-эцсийн</quote> гэсэн үг бөгөөд
|
||
<emphasis>үргэлж</emphasis> гэж ойлгогдож болно. Тэгвэл энэ мөрөөс
|
||
үзэхэд <command>atrun</command> тушаал нь <username>root</username>
|
||
эрхээр 5 минут тутам аль өдөр сар байгаагаас үл хамааран ажиллана.
|
||
<command>atrun</command> тушаалын талаар дэлгэрэнгүй мэдээллийг
|
||
&man.atrun.8; гарын авлагаас үзнэ үү.</para>
|
||
|
||
<para>Тушаалууд тэдгээрт өгч болох дурын тооны тугуудтай байж болно; гэхдээ
|
||
олон мөр болон уртассан тушаалууд урагшаа ташуу <quote>\</quote> үргэлжлүүлэх
|
||
тэмдэгтээр хуваагдсан байх ёстой.</para>
|
||
</callout>
|
||
</calloutlist>
|
||
|
||
<para>Энэ нь <filename>crontab</filename> файл болгоны хувьд үндсэн тохиргоо
|
||
байна, гэхдээ нэг зүйл нь үүнээс өөр байна. Хэрэглэгчийг заадаг зургаа дахь талбар
|
||
нь зөвхөн системийн <filename>/etc/crontab</filename> файлд байна.
|
||
Энэ талбарыг хэрэглэгчийн <filename>crontab</filename> файлуудын хувьд
|
||
орхих хэрэгтэй.</para>
|
||
|
||
|
||
<sect2 id="configtuning-installcrontab">
|
||
<title>Crontab суулгах нь</title>
|
||
|
||
<important>
|
||
<para>Та энд тайлбарласан процедурыг ашиглан системийн crontab-ийг засаж/суулгах
|
||
шаардлагагүй. Зүгээр л өөрийн дуртай засварлагчийг ашигла:
|
||
<command>cron</command> хэрэгсэл файл өөрчлөгдсөнийг мэдээд тэр даруй
|
||
шинэчлэгдсэн хувилбарыг ашиглаж эхэлнэ. Дэлгэрэнгүй мэдээллийг
|
||
<ulink url="&url.books.faq;/admin.html#ROOT-NOT-FOUND-CRON-ERRORS">
|
||
Энэ БХА-ын оруулгаас</ulink> үзнэ үү.</para>
|
||
</important>
|
||
|
||
<para>Хэрэглэгчийн бичсэн шинэ <filename>crontab</filename> файлыг суулгахын тулд
|
||
эхлээд өөрийн дуртай засварлагчийг ашиглаад зөв хэлбэршилттэй файл үүсгээд дараа нь
|
||
<command>crontab</command> хэрэгслийг ашигла.
|
||
Хамгийн их ашиглагддаг тушаал бол:</para>
|
||
|
||
<screen>&prompt.user; <userinput>crontab crontab-file</userinput></screen>
|
||
|
||
<para>Энэ жишээн дээрх <filename>crontab-file</filename> нь
|
||
урд нь үүсгэгдсэн <filename>crontab</filename>-ийн файлын нэр юм.</para>
|
||
|
||
<para>Суулгасан <filename>crontab</filename> файлуудыг үзүүлдэг
|
||
тохируулга бас байдаг: <option>-l</option> тохируулгыг
|
||
<command>crontab</command> уруу өгч ажиллуулаад гарах үр дүнг
|
||
хараарай.</para>
|
||
|
||
<para>Өөрийн crontab файлыг загвар ашиглалгүйгээр эхнээс нь эхлүүлэхийг хүссэн
|
||
хэрэглэгчдэд зориулсан <command>crontab -e</command> тохируулга байдаг.
|
||
Энэ нь сонгосон засварлагчийг хоосон файлтай ажиллуулдаг. Файл хадгалагдсаны
|
||
дараа автоматаар <command>crontab</command> тушаалаар суулгагддаг.
|
||
</para>
|
||
|
||
<para>Хэрэв та дараа нь өөрийн хэрэглэгчийн <filename>crontab</filename>-ийг
|
||
бүр мөсөн устгахыг хүсвэл <command>crontab</command>-ийг <option>-r</option>
|
||
тохируулгатай ашиглаарай.
|
||
</para>
|
||
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-rcd">
|
||
<sect1info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
<contrib>Хувь нэмэр болгон оруулсан </contrib>
|
||
<!-- 16 May 2003 -->
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect1info>
|
||
|
||
<title>&os; дээр rc ашиглах нь</title>
|
||
|
||
<para>2002 онд &os; системийг эхлүүлэхэд зориулж NetBSD-ийн
|
||
<filename>rc.d</filename> системийг оруулсан. Хэрэглэгчид
|
||
<filename class="directory">/etc/rc.d</filename> сан доторх файлуудыг
|
||
анзаарах хэрэгтэй. Эдгээр файлуудын ихэнх нь
|
||
<option>start</option>, <option>stop</option>,
|
||
болон <option>restart</option> тохируулгуудаар хянагддаг
|
||
үндсэн үйлчилгээнүүд байдаг. Жишээ нь &man.sshd.8; нь
|
||
дараах тушаалаар дахин эхлэж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd restart</userinput></screen>
|
||
|
||
<para>Энэ процедур нь бусад үйлчилгээнүүдийн адил юм. Мэдээж
|
||
үйлчилгээнүүд ихэнхдээ автоматаар &man.rc.conf.5;-д зааснаар ачаалах үед
|
||
эхэлдэг. Жишээ нь Сүлжээний Хаяг Хөрвүүлэх дэмонг эхлэх үед ажиллуулахаар
|
||
нээх нь амархан бөгөөд <filename>/etc/rc.conf</filename>-д
|
||
дараах мөрийг нэмдэг:</para>
|
||
|
||
<programlisting>natd_enable="YES"</programlisting>
|
||
|
||
<para>Хэрэв <option>natd_enable="NO"</option> мөр аль хэдийн
|
||
байвал <option>NO</option>-ийг <option>YES</option>
|
||
болгож өөрчлөөрэй. rc скриптүүд өөр бусад хамааралтай
|
||
үйлчилгээнүүдийг дараагийн дахин ачаалалтын үеэр доор
|
||
тайлбарласны дагуу автоматаар ачаалдаг.</para>
|
||
|
||
<para><filename>rc.d</filename> систем нь үндсэндээ
|
||
системийн эхлэх/унтрах үеэр үйлчилгээнүүдийг эхлүүлэх/зогсоох зорилготой
|
||
бөгөөд стандарт <option>start</option>,
|
||
<option>stop</option> болон <option>restart</option>
|
||
тохируулгууд нь зөвхөн <filename>/etc/rc.conf</filename>-ийн харгалзах
|
||
хувьсагчууд заагдсан үед өөрийн үйлдлийг гүйцэтгэдэг.
|
||
Жишээ нь дээр дурдсан <command>sshd restart</command> тушаал
|
||
нь <filename>/etc/rc.conf</filename>-д
|
||
<varname>sshd_enable</varname> хувьсагч <option>YES</option>
|
||
гэсэн тохиолдолд зөвхөн ажиллана. <filename>/etc/rc.conf</filename>-д
|
||
байгаа тохируулгаас үл хамааран үйлчилгээг <option>start</option>,
|
||
<option>stop</option> эсвэл <option>restart</option> хийхийн
|
||
тулд тушаалууд <quote>one</quote> угтвартай байх шаардлагатай.
|
||
Жишээ нь <command>sshd</command>-г <filename>/etc/rc.conf</filename>
|
||
дахь тохиргооноос үл хамааран дахин эхлүүлэхдээ дараах тушаалыг ашиглана:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd onerestart</userinput></screen>
|
||
|
||
<para>Тохирох <filename>rc.d</filename> скриптийг <option>rcvar</option>
|
||
тохируулгатай ажиллуулж <filename>/etc/rc.conf</filename>-д үйлчилгээ
|
||
нээгдсэн эсэхийг амархан шалгадаг. Тиймээс администратор
|
||
<command>sshd</command>-г <filename>/etc/rc.conf</filename>-д
|
||
нээгдсэн эсэхийг дараах тушаалыг ажиллуулж шалгаж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd rcvar</userinput>
|
||
# sshd
|
||
$sshd_enable=YES</screen>
|
||
|
||
<note>
|
||
<para>Хоёр дахь мөр (<literal># sshd</literal>) нь
|
||
<username>root</username> консолынх биш <command>sshd</command>
|
||
тушаалын гаргасан үр дүн юм.</para>
|
||
</note>
|
||
|
||
<para>Үйлчилгээг ажиллах байгаа эсэхийг шалгах <option>status</option>
|
||
тохируулга байдаг. Жишээ нь <command>sshd</command> эхэлсэн эсэхийг
|
||
шалгахдаа:</para>
|
||
|
||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd status</userinput>
|
||
sshd is running as pid 433.</screen>
|
||
|
||
<para>Зарим тохиолдолд үйлчилгээг <option>reload</option> хийх бас боломжтой
|
||
байдаг. Энэ нь үйлчилгээг өөрийн тохиргооны файлуудыг дахин уншихыг зааж
|
||
үйлчилгээ уруу дохио шидэхийг оролддог. Ихэнх тохиолдолд энэ нь
|
||
үйлчилгээ уруу <literal>SIGHUP</literal> дохио шиднэ гэсэн үг юм.
|
||
Үйлчилгээ болгонд энэ боломжийн дэмжлэг байдаггүй.</para>
|
||
|
||
<para><filename>rc.d</filename> систем нь зөвхөн сүлжээний үйлчилгээнд
|
||
ашиглагдаад зогсохгүй мөн системийн эхлүүлэлтэд бас ихээхэн хувь нэмэр оруулдаг.
|
||
Жишээ нь <filename>bgfsck</filename> файлыг авч үзье. Энэ скрипт
|
||
ажиллахад дараах мэдээллийг хэвлэж гаргана:</para>
|
||
|
||
<screen>Starting background file system checks in 60 seconds.</screen>
|
||
|
||
<para>Тиймээс энэ файлыг зөвхөн системийг эхлүүлэх үед файлын системийн арын
|
||
шалгалтыг хийхэд хэрэглэдэг.</para>
|
||
|
||
<para>Системийн олон үйлчилгээнүүд зөв ажиллахын тулд бусад үйлчилгээнүүдээс
|
||
хамаардаг. Жишээ нь NIS болон бусад RPC дээр тулгуурласан үйлчилгээнүүд
|
||
<command>rpcbind</command> (portmapper) үйлчилгээ ажиллахаас нааш
|
||
амжилттай ажилладаггүй. Үүнийг шийдэхийн тулд хамаарлуудын тухай болон бусад
|
||
мета-өгөгдлийн тухай мэдээллийг эхлүүлэх скрипт бүрийн дээд хэсэгт
|
||
тайлбараар оруулсан байдаг. &man.rcorder.8; програм хамаарлуудыг
|
||
хангаж системийн үйлчилгээнүүдийг ямар дарааллаар ажиллуулах ёстойг
|
||
тогтоохын тулд эдгээр тайлбаруудыг уншдаг.</para>
|
||
|
||
<para>Дараах үгнүүдийг бүх эхлүүлэх скриптэд оруулах ёстой
|
||
(Эдгээр нь эхлүүлэх скриптийг <quote>идэвхжүүлэх</quote>эд
|
||
&man.rc.subr.8;-д шаардлагатай байдаг):</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>PROVIDE</literal>: Энэ файлын хангаж байгаа үйлчилгээнүүдийг заана.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Дараах үгнүүдийг эхлүүлэх скрипт бүрийн эхэнд оруулж болно.
|
||
Эдгээр нь заавал шаардлагатай биш боловч &man.rcorder.8;-д
|
||
тус дөхөм болох ашигтай байдаг:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>REQUIRE</literal>: Энэ үйлчилгээнд шаардлагатай үйлчилгээнүүдийг жагсаана.
|
||
Энэ файл заагдсан үйлчилгээнүүдийн <emphasis>дараа</emphasis> ажиллана.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>BEFORE</literal>: Энэ үйлчилгээнээс хамааралтай үйлчилгээнүүдийг жагсаана.
|
||
Энэ файл заагдсан үйлчилгээнүүдийн <emphasis>өмнө</emphasis> ажиллана.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Эдгээр түлхүүр үгнүүдийг эхлүүлэх скрипт болгонд болгоомжтойгоор
|
||
тохируулж өгснөөр бусад зарим &unix; үйлдлийн системүүд шиг
|
||
<quote>ажиллах түвшингүүдтэй (runlevels)</quote> зууралдалгүйгээр скриптүүдийн
|
||
эхлэх дарааллыг маш сайн хянах боломжийг администраторт бий болгох юм.</para>
|
||
|
||
<para><filename>rc.d</filename> системийн талаар нэмэлт мэдээллийг &man.rc.8;
|
||
болон &man.rc.subr.8; гарын авлагын хуудаснуудаас олж болно. Хэрэв та өөрийн
|
||
rc.d скриптүүд бичих эсвэл байгаагаа сайжруулахыг сонирхож байгаа бол танд бас
|
||
<ulink url="&url.articles.rc-scripting">энэ нийтлэл</ulink> хэрэгтэй байж
|
||
болох юм.</para>
|
||
</sect1>
|
||
|
||
<sect1 id="config-network-setup">
|
||
<sect1info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Марк</firstname>
|
||
<surname>Фонвил</surname>
|
||
<contrib>Хувь нэмэр болгон оруулсан </contrib>
|
||
<!-- 6 October 2002 -->
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect1info>
|
||
|
||
<title>Сүлжээний интерфэйс картууд суулгах нь</title>
|
||
|
||
<indexterm>
|
||
<primary>сүлжээний картууд</primary>
|
||
<secondary>тохиргоо</secondary>
|
||
</indexterm>
|
||
|
||
<para>Өнөөдөр бид сүлжээний холболтгүй компьютерийн талаар бодох ч аргагүй болсон
|
||
билээ. Сүлжээний картыг нэмж тохируулах нь &os;-ийн дурын администраторын
|
||
ердийн ажил болдог.</para>
|
||
|
||
<sect2>
|
||
<title>Тохирох драйверийг олох нь</title>
|
||
|
||
<indexterm>
|
||
<primary>сүлжээний картууд</primary>
|
||
<secondary>драйвер</secondary>
|
||
</indexterm>
|
||
|
||
<para>Эхлэхээсээ өмнө та өөрт байгаа картынхаа загвар, түүнд ашигласан бичил схем
|
||
болон PCI эсвэл ISA картын аль нь эсэхийг мэдэх шаардлагатай.
|
||
&os; өргөн төрлийн PCI болон ISA картуудыг дэмждэг. Таны карт таны ашиглах хувилбар
|
||
дээр дэмжигдсэн эсэхийг Тоног Төхөөрөмжийн Нийцтэй Байдлын Жагсаалтаас шалгаарай.</para>
|
||
|
||
<para>Таны карт дэмжигдсэнийг мэдсэний дараа та өөрийн картанд тохирох драйвераа
|
||
тодорхойлох хэрэгтэй. <filename>/usr/src/sys/conf/NOTES</filename> болон
|
||
<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/NOTES</filename>
|
||
нь сүлжээний интерфэйс драйверуудын жагсаалтыг дэмжигдсэн бичил схем/картуудын тухай
|
||
зарим мэдээллийн хамтаар танд өгөх болно. Хэрэв та аль драйвер нь зөв эсэхэд эргэлзэж
|
||
байгаа бол драйверийн гарын авлагын хуудсыг уншаарай. Гарын авлагын хуудас нь
|
||
дэмжигдсэн тоног төхөөрөмж болон бүр учирч болзошгүй асуудлуудын тухай дэлгэрэнгүй
|
||
мэдээллийг өгдөг.</para>
|
||
|
||
<para>Хэрэв та ердийн карттай бол ихэнхдээ драйверийг хичээнгүйлэн хайх шаардлагагүй юм.
|
||
Ердийн сүлжээний картуудад зориулсан драйверууд нь <filename>GENERIC</filename>
|
||
цөмд байдаг, тэгэхээр таны карт ачаалах явцад иймэрхүү харагдах ёстой:</para>
|
||
|
||
<screen>dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
|
||
000ff irq 15 at device 11.0 on pci0
|
||
dc0: Ethernet address: 00:a0:cc:da:da:da
|
||
miibus0: <MII bus> on dc0
|
||
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
|
||
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
|
||
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
|
||
000ff irq 11 at device 12.0 on pci0
|
||
dc1: Ethernet address: 00:a0:cc:da:da:db
|
||
miibus1: <MII bus> on dc1
|
||
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
|
||
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto</screen>
|
||
|
||
<para>Энэ жишээн дээр систем дээр байгаа хоёр карт &man.dc.4; драйверийг ашиглаж
|
||
байгааг бид харж байна.</para>
|
||
|
||
<para>Хэрэв таны NIC-д (Network Interface Card буюу Сүлжээний Интерфэйс Карт)
|
||
зориулсан драйвер <filename>GENERIC</filename>-д байхгүй бол та өөрийн NIC-г
|
||
ашиглахын тулд тохирох драйверийг ачаалах хэрэгтэй. Ингэхийн тулд хоёр аргын аль нэгийг
|
||
ашиглана:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Хамгийн амархан арга нь ердөө л өөрийн сүлжээний картанд зориулсан цөмийн модулийг
|
||
&man.kldload.8; ашиглан эсвэл тохирох мөрийг <filename>/boot/loader.conf</filename>-д
|
||
нэмж ачаалах үед автоматаар ачаалах юм. Бүх NIC драйверууд модуль хэлбэрээр байдаггүй;
|
||
модулиуд нь байдаггүй төхөөрөмжүүдийн дурдаж болох жишээнүүд гэвэл ISA картууд юм.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Өөр нэг арга нь та өөрийн картын дэмжлэгийг цөмд оруулан статикаар
|
||
хөрвүүлж болох юм. Өөрийн цөмийн тохиргооны файлд юу нэмэх ёстойг мэдэхийн тулд
|
||
<filename>/usr/src/sys/conf/NOTES</filename>,
|
||
<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/NOTES</filename>
|
||
болон драйверийн гарын авлагын хуудсыг шалгаарай. Цөмийг дахин хөрвүүлэх талаар
|
||
дэлгэрэнгүй мэдээллийг <xref linkend="kernelconfig">-с үзнэ үү.
|
||
Хэрэв таны картыг таны цөм (<filename>GENERIC</filename>) ачаалах явцад илрүүлсэн бол
|
||
та шинэ цөм бүтээх шаардлагагүй.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<sect3 id="config-network-ndis">
|
||
<title>&windows;-ийн NDIS драйверуудыг ашиглах нь</title>
|
||
|
||
<indexterm><primary>NDIS</primary></indexterm>
|
||
<indexterm><primary>NDISulator</primary></indexterm>
|
||
<indexterm><primary>&windows; драйверууд</primary></indexterm>
|
||
<indexterm><primary>Microsoft Windows</primary></indexterm>
|
||
<indexterm><primary>Microsoft Windows</primary>
|
||
<secondary>төхөөрөмжийн драйверууд</secondary></indexterm>
|
||
<indexterm><primary>KLD (kernel loadable
|
||
object буюу цөмийн ачаалж болох обьект)</primary></indexterm>
|
||
<!-- We should probably omit the expanded name, and add a <see> entry
|
||
for it. Whatever is done must also be done to the same indexterm in
|
||
linuxemu/chapter.sgml -->
|
||
|
||
<para>Харамсалтай нь өөрийн драйверуудад зориулсан схемүүдийг нээлттэй
|
||
эхийн хүрээнийхэнд өгдөггүй, тийм мэдээллийг худалдааны нууц гэж үздэг
|
||
олон үйлдвэрлэгчид байсаар байна. Ингэснээр &os; болон өөр үйлдлийн системүүдийн
|
||
хөгжүүлэгчдэд хоёр сонголт үлдсэн: буцаах инженерчлэлийн хүнд хэцүү, урт хугацааны
|
||
процессийг туулж драйверуудыг хөгжүүлэх эсвэл µsoft.windows; тавцангуудад
|
||
байдаг хоёртын хэлбэрийн драйверуудыг ашиглах арга замууд юм. &os;-тэй
|
||
холбогдсон зэрэг ихэнх хөгжүүлэгчид сүүлийн хандлагыг авч ашигладаг.</para>
|
||
|
||
<para>Билл Полын (wpaul) оруулсан хувь нэмрийн ачаар &os; 5.3-RELEASE-с
|
||
эхлээд Сүлжээний Драйверийн Интерфэйсийн Тодорхойлолтын (NDIS)
|
||
<quote>эх (native)</quote> дэмжлэг ордог болсон.
|
||
&os; NDISulator (өөрөөр Чөтгөр Төсөл) &windows; хоёртын драйверийг
|
||
аваад ерөнхийдөө түүнийг &windows; дээр ажиллаж байгаа мэтээр хуурдаг.
|
||
&man.ndis.4; драйвер нь &windows; хоёртын файл ашиглаж байгаа учраас
|
||
энэ нь зөвхөн &i386; болон amd64 системүүд дээр хэрэглэгдэх боломжтой.</para>
|
||
|
||
<note>
|
||
<para>&man.ndis.4; драйвер голчлон PCI, CardBus болон PCMCIA
|
||
төхөөрөмжүүдийг дэмжихээр хийгдсэн бөгөөд одоогоор USB төхөөрөмжүүдийн дэмжлэг
|
||
хийгдээгүй.</para>
|
||
</note>
|
||
|
||
<para>NDISulator ашиглахын тулд танд 3 зүйл хэрэгтэй:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Цөмийн эхүүд</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>&windowsxp; драйверийн хоёртын файл
|
||
(<filename>.SYS</filename> өргөтгөл)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>&windowsxp; драйверийн тохиргооны файл
|
||
(<filename>.INF</filename> өргөтгөл)</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
<para>Та өөрийн картад зориулсан файлуудыг олоорой. Ерөнхийдөө
|
||
тэдгээрийг хавсаргасан CD-үүд эсвэл үйлдвэрлэгчүүдийн вэб хуудаснаас
|
||
олж болно. Дараах жишээнүүдэд бид <filename>W32DRIVER.SYS</filename>
|
||
болон <filename>W32DRIVER.INF</filename> файлуудыг ашиглах
|
||
болно.</para>
|
||
|
||
<note>
|
||
<para>Та &windows;/i386 драйверийг &os;/amd64 дээр ашиглаж
|
||
чадахгүй, зөв ажиллуулахын тулд &windows;/amd64 драйвер заавал олох
|
||
шаардлагатай.</para>
|
||
</note>
|
||
|
||
<para>Дараагийн алхамд драйверийн хоёртын файлыг цөмийн ачаалж болох
|
||
модуль болгон хөрвүүлнэ. Үүнийг хийхийн тулд <username>root</username>
|
||
эрхээр &man.ndisgen.8;-г хэрэглэнэ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ndisgen <replaceable>/path/to/W32DRIVER.INF</replaceable> <replaceable>/path/to/W32DRIVER.SYS</replaceable></userinput></screen>
|
||
|
||
<para>&man.ndisgen.8; хэрэгсэл нь интерактив бөгөөд шаардлагатай
|
||
нэмэлт мэдээллийг асуудаг; энэ нь одоо байгаа санд цөмийн модуль үүсгэх
|
||
бөгөөд дараах маягаар ачаалж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>kldload <replaceable>./W32DRIVER.ko</replaceable></userinput></screen>
|
||
|
||
<para>Үүсгэгдсэн цөмийн модулиас гадна та <filename>ndis.ko</filename> болон
|
||
<filename>if_ndis.ko</filename> модулиудыг ачаалах хэрэгтэй. Энэ нь
|
||
таныг &man.ndis.4;-ээс хамаарсан дурын модулийг ачаалах үед автоматаар
|
||
хийгдэх ёстой. Хэрэв та тэдгээрийг гараар ачаалахыг хүсвэл дараах тушаалыг
|
||
ашиглаарай:</para>
|
||
|
||
<screen>&prompt.root; <userinput>kldload ndis</userinput>
|
||
&prompt.root; <userinput>kldload if_ndis</userinput></screen>
|
||
|
||
<para>Эхний тушаал нь NDIS минипорт драйвер дугтуйлагчийг ачаалах бөгөөд
|
||
хоёр дахь нь яг сүлжээний интерфэйсийг ачаална.</para>
|
||
|
||
<para>Одоо &man.dmesg.8;-ийг шалгаж ачаалахад алдаа байгаа эсэхийг
|
||
үзэх хэрэгтэй. Бүгд сайн болж өнгөрсөн бол та дараах үр дүнг харах ёстой:</para>
|
||
|
||
<screen>ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
|
||
ndis0: NDIS API version: 5.0
|
||
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
|
||
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
|
||
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps</screen>
|
||
|
||
<para>Эндээс эхлээд та <devicename>ndis0</devicename> төхөөрөмжид
|
||
өөр бусад сүлжээний интерфэйсийн (өөрөөр хэлбэл <devicename>dc0</devicename>)
|
||
нэгэн адилаар хандах боломжтой болох юм.</para>
|
||
|
||
<para>Та бусад модулиудтай адилаар NDIS модулиудыг ачаалах явцад ачаалахаар
|
||
системийг тохируулж болно. Эхлээд үүсгэгдсэн модуль <filename>W32DRIVER.ko</filename>-г
|
||
<filename class="directory">/boot/modules</filename> уруу хуулах хэрэгтэй.
|
||
Тэгээд дараах мөрийг <filename>/boot/loader.conf</filename>-д нэмнэ:</para>
|
||
|
||
<programlisting>W32DRIVER_load="YES"</programlisting>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Сүлжээний карт тохируулах нь</title>
|
||
|
||
<indexterm>
|
||
<primary>сүлжээний картууд</primary>
|
||
<secondary>тохиргоо</secondary>
|
||
</indexterm>
|
||
|
||
<para>Сүлжээний картанд зориулсан зөв драйвер ачаалагдсаны дараа
|
||
картыг тохируулах шаардлагатай. Бусад олон зүйлсийн адил сүлжээний
|
||
карт нь <application>sysinstall</application> програмаар
|
||
суулгах явцад тохируулагдаж болно.</para>
|
||
|
||
<para>Таны системийн сүлжээний интерфэйсүүдэд зориулсан тохиргоог
|
||
харуулахын тулд дараах тушаалыг ажиллуулна:</para>
|
||
|
||
<screen>&prompt.user; <userinput>ifconfig</userinput>
|
||
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
|
||
ether 00:a0:cc:da:da:da
|
||
media: Ethernet autoselect (100baseTX <full-duplex>)
|
||
status: active
|
||
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
|
||
ether 00:a0:cc:da:da:db
|
||
media: Ethernet 10baseT/UTP
|
||
status: no carrier
|
||
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
|
||
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
|
||
inet 127.0.0.1 netmask 0xff000000
|
||
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500</screen>
|
||
|
||
<note>
|
||
<para>&os;-ийн хуучин хувилбарууд <option>-a</option> тохируулгыг
|
||
&man.ifconfig.8;-ийн араас залгахыг шаардаж болох бөгөөд
|
||
&man.ifconfig.8;-ийн зөв синтаксын дэлгэрэнгүй мэдээллийн талаар гарын
|
||
авлагын хуудсанд хандана уу. Энэ жишээн дээр IPv6-тай (<literal>inet6</literal> гэх мэт.)
|
||
холбоотой оруулгууд орхигдсон болохыг анхаарна уу.</para>
|
||
</note>
|
||
|
||
<para>Энэ жишээн дээр дараах төхөөрөмжүүдийг харуулсан:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><devicename>dc0</devicename>: Эхний Ethernet интерфэйс</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><devicename>dc1</devicename>: Хоёрдугаар Ethernet интерфэйс</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><devicename>lp0</devicename>: Параллел порт интерфэйс</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><devicename>lo0</devicename>: Буцаж эргэх төхөөрөмж</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><devicename>tun0</devicename>: Туннель төхөөрөмж нь
|
||
<application>ppp</application>-д ашиглагдана.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>&os; нь драйверийн нэр дээр цөмийн ачаалах явцад картууд ямар дарааллаар илрүүлэгдсэн
|
||
тэр дарааллын тоог нэмж сүлжээний картыг нэрлэдэг. Жишээ нь <devicename>sis2</devicename>
|
||
нь систем дээрх &man.sis.4; драйвер ашиглаж байгаа 3 дахь сүлжээний карт байж болох юм.</para>
|
||
|
||
<para>Энэ жишээн дээр <devicename>dc0</devicename> төхөөрөмж босон ажиллаж байна.
|
||
Түлхүүр индикаторууд нь:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para><literal>UP</literal> нь картын тохиргоо хийгдэж бэлэн болсныг илэрхийлнэ.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Карт нь Интернэт (<literal>inet</literal>) хаягтай
|
||
(энэ тохиолдолд <hostid role="ipaddr">192.168.1.3</hostid>).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Энэ нь зөв дэд сүлжээний багтай (<literal>netmask</literal>;
|
||
<hostid role="netmask">0xffffff00</hostid> нь
|
||
<hostid role="netmask">255.255.255.0</hostid> адил).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Энэ нь зөв нийтэд цацах хаягтай (энэ тохиолдолд
|
||
<hostid role="ipaddr">192.168.1.255</hostid>).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Картны MAC (<literal>ether</literal>) хаяг нь
|
||
<hostid role="mac">00:a0:cc:da:da:da</hostid> байна.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Физик зөөгчийн сонголт нь автомат сонголтын
|
||
горим дээр байна (<literal>media: Ethernet autoselect (100baseTX
|
||
<full-duplex>)</literal>).
|
||
<devicename>dc1</devicename> нь <literal>10baseT/UTP</literal>
|
||
зөөгчтэй ажиллахаар тохируулагдсан байгааг бид харж болно. Байж болох
|
||
зөөгчийн төрлүүдийн тухай дэлгэрэнгүй мэдээллийн талаар өөрийнх нь гарын авлагын
|
||
хуудсанд хандаж үзнэ үү.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Холболтын (<literal>status</literal>) төлөв нь
|
||
<literal>active</literal> буюу идэвхтэй байна, өөрөөр хэлбэл
|
||
дамжуулагч илэрсэн байна. <devicename>dc1</devicename>-ийн
|
||
хувьд бид <literal>status: no carrier</literal> буюу дамжуулагч
|
||
байхгүйг харж болно. Энэ нь Ethernet кабель картанд залгагдаагүй байх үед
|
||
хэвийн байна.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
<para>Хэрэв &man.ifconfig.8;-ийн үр дүн дараах маягтай төстэй байвал:</para>
|
||
|
||
<screen>dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
|
||
ether 00:a0:cc:da:da:da</screen>
|
||
|
||
<para>Энэ нь карт тохируулагдаагүйг илэрхийлнэ.</para>
|
||
|
||
<para>Картаа тохируулахын тулд танд <username>root</username> зөвшөөрлүүд
|
||
хэрэгтэй. Сүлжээний картын тохируулгууд тушаалын мөрөөс &man.ifconfig.8;-р
|
||
хийгдэх боломжтой, гэхдээ та системийг дахин ачаалсан болгоныхоо дараа үүнийг хийх хэрэгтэй болно.
|
||
<filename>/etc/rc.conf</filename> файл нь сүлжээний картын тохиргоог нэмэх
|
||
газар юм.</para>
|
||
|
||
<para><filename>/etc/rc.conf</filename>-ийг өөрийн дуртай засварлагч дээр
|
||
нээгээрэй. Систем дээрх сүлжээний карт бүрийн хувьд мөр нэмэх хэрэгтэй, манай
|
||
жишээн дээр бид эдгээр мөрүүдийг нэмсэн:</para>
|
||
|
||
<programlisting>ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
|
||
ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"</programlisting>
|
||
|
||
<para>Та <devicename>dc0</devicename>,
|
||
<devicename>dc1</devicename> болон бусдуудыг өөрийн картуудад зориулсан
|
||
төхөөрөмжөөр өөрчлөх болон хаягуудыг зөвөөр солих хэрэгтэй. Зөвшөөрөгдсөн тохируулгуудын
|
||
талаар дэлгэрэнгүйг картын драйвер болон &man.ifconfig.8;-ийн гарын авлагын хуудаснуудаас,
|
||
бас &man.rc.conf.5; гарын авлагын хуудаснаас <filename>/etc/rc.conf</filename>-ийн
|
||
синтаксын тухай дэлгэрэнгүй мэдээллийг унших хэрэгтэй.</para>
|
||
|
||
<para>Хэрэв та суулгах явцад сүлжээг тохируулсан бол сүлжээний карт(ууд)ын талаар зарим
|
||
мөрүүд аль хэдийн байж болох юм. Мөрүүд нэмэхээсээ өмнө <filename>/etc/rc.conf</filename>-ийг
|
||
дахин шалгаарай.</para>
|
||
|
||
<para>Мөн та LAN дахь төрөл бүрийн машинуудын нэрүүд болон IP хаягууд
|
||
<filename>/etc/hosts</filename> файлд байхгүй бол тэдгээрийг нэмж засварлах
|
||
шаардлагатай. Дэлгэрэнгүй мэдээллийн талаар &man.hosts.5; болон
|
||
<filename>/usr/share/examples/etc/hosts</filename> файлд хандана уу.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Тест хийх болон алдааг олж засварлах нь</title>
|
||
|
||
<para><filename>/etc/rc.conf</filename>-д хэрэгцээтэй өөрчлөлтүүдийг
|
||
хийснийхээ дараа та системээ дахин ачаалах шаардлагатай. Ингэснээр
|
||
интерфэйс(үүд)эд хийгдэх өөрчлөлт(үүд)ийг зөвшөөрөх бөгөөд ямар нэг тохиргооны
|
||
алдаагүйгээр систем ачаалж байгаа эсэхийг шалгадаг.</para>
|
||
|
||
<para>Систем дахин ачаалагдсаны дараа та сүлжээний интерфэйсүүдээ тест
|
||
хийх хэрэгтэй.</para>
|
||
|
||
<sect3>
|
||
<title>Ethernet карт тест хийх нь</title>
|
||
|
||
<indexterm>
|
||
<primary>сүлжээний картууд</primary>
|
||
<secondary>тест хийх нь</secondary>
|
||
</indexterm>
|
||
|
||
<para>Ethernet карт зөв тохируулагдсаныг шалгахдаа та 2 зүйлийг оролдох
|
||
хэрэгтэй. Эхлээд интерфэйс уруу өөр уруу нь ping хийгээд дараа нь LAN дахь өөр
|
||
машин уруу ping хийх хэрэгтэй.</para>
|
||
|
||
<para>Эхлээд локал интерфэйсийг тест хийнэ:</para>
|
||
|
||
<screen>&prompt.user; <userinput>ping -c5 192.168.1.3</userinput>
|
||
PING 192.168.1.3 (192.168.1.3): 56 data bytes
|
||
64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
|
||
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
|
||
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
|
||
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
|
||
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
|
||
|
||
--- 192.168.1.3 ping statistics ---
|
||
5 packets transmitted, 5 packets received, 0% packet loss
|
||
round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms</screen>
|
||
|
||
<para>Одоо бид LAN дахь өөр машин уруу ping хийх хэрэгтэй:</para>
|
||
|
||
<screen>&prompt.user; <userinput>ping -c5 192.168.1.2</userinput>
|
||
PING 192.168.1.2 (192.168.1.2): 56 data bytes
|
||
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
|
||
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
|
||
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
|
||
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
|
||
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
|
||
|
||
--- 192.168.1.2 ping statistics ---
|
||
5 packets transmitted, 5 packets received, 0% packet loss
|
||
round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
|
||
|
||
<para>Хэрэв та
|
||
<filename>/etc/hosts</filename> файлыг тохируулсан бол
|
||
<hostid role="ipaddr">192.168.1.2</hostid>-ийн оронд
|
||
машины нэрийг бас ашиглаж болох болох юм.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Алдааг олж засварлах нь</title>
|
||
|
||
<indexterm>
|
||
<primary>сүлжээний картууд</primary>
|
||
<secondary>алдааг олж засварлах нь</secondary>
|
||
</indexterm>
|
||
|
||
<para>Тоног төхөөрөмж болон програм хангамжийн тохиргоонуудын алдааг олж
|
||
засварлах нь үргэлж зовлон байдаг бөгөөд зовлонг энгийн зүйлүүдийг эхлээд шалгаснаар
|
||
багасгах боломжтой. Таны сүлжээний кабель холбогдсон уу? Сүлжээний үйлчилгээнүүдээ
|
||
зөв тохируулсан уу? Галт ханаа зөв тохируулсан уу? Таны хэрэглэж байгаа картыг
|
||
&os; дэмждэг үү? Алдааны тайланг явуулахаасаа өмнө тоног төхөөрөмжийн
|
||
тэмдэглэлийг заавал шалгах хэрэгтэй. Өөрийн &os;-ийн хувилбарыг хамгийн сүүлийн STABLE
|
||
хувилбар уруу шинэчлээрэй. Захидлын жагсаалтын архивууд шалгах буюу эсвэл Интернетээс
|
||
хайгаарай.</para>
|
||
|
||
<para>Хэрэв карт ажилласан мөртлөө ажиллагаа муу бол &man.tuning.7; гарын авлагын хуудсыг
|
||
унших нь зүйтэй юм. Мөн буруу сүлжээний тохиргоонууд удаан холболтын шалтгаан болдог учир
|
||
та сүлжээний тохиргоог бас шалгаж болох юм.</para>
|
||
|
||
<para>Зарим хэрэглэгчид ганц хоёр <errorname>device
|
||
timeout</errorname> мэдээлэлтэй тулгарч болох бөгөөд энэ нь зарим картуудын
|
||
хувьд хэвийн юм. Хэрэв энэ нь үргэлжлээд эсвэл шаналгаатай болоод эхэлбэл
|
||
уг төхөөрөмж өөр бусад төхөөрөмжтэй зөрчилдөж байгаа эсэхийг та магадгүй
|
||
шалгахыг хүсэх байх. Кабелийн холболтуудыг дахин шалгаарай. Магадгүй танд
|
||
өөр нэг карт хэрэгтэй байж болох юм.</para>
|
||
|
||
<para>Хэрэглэгчид зарим үед цөөн <errorname>watchdog timeout</errorname>
|
||
гэсэн алдаанууд хардаг. Ийм үед эхлээд хийх юм нь сүлжээний кабелийг шалгана.
|
||
Олон картууд Bus Mastering дэмждэг PCI оролтыг шаарддаг. Зарим нэг эх хавтангуудад
|
||
үүнийг зөвхөн нэг PCI оролт зөвшөөрдөг (ихэнхдээ 0-р оролт). Энэ нь асуудал
|
||
байж болох эсэхийг сүлжээний карт болон эх хавтангийн баримтаас шалгаарай.</para>
|
||
|
||
<para>Систем пакетийг зорьсон газар нь чиглүүлж чадахгүй тохиолдолд
|
||
<errorname>No route to host</errorname> мэдээллүүд гардаг.
|
||
Энэ нь анхдагч чиглүүлэлт заагаагүй тохиолдолд эсвэл кабель салгагдсан бол
|
||
гардаг. <command>netstat -rn</command> тушаалын үр дүнг
|
||
үзээд таны хүрэхийг оролдож байгаа тэр хост уруу чинь зөв чиглүүлэлт байгаа
|
||
эсэхийг шалгаарай. Хэрэв байхгүй бол
|
||
<xref linkend="advanced-networking">-г уншаарай.</para>
|
||
|
||
<para><errorname>ping: sendto: Permission denied</errorname>
|
||
алдааны мэдээллүүд нь буруу тохируулсан галт ханаас ихэвчлэн болдог.
|
||
Хэрэв <command>ipfw</command> нь цөмд идэвхжсэн бөгөөд
|
||
ямар ч дүрэм тодорхойлогдоогүй бол анхдагч бодлого нь бүх трафикийг бүр
|
||
ping хүсэлтийг хүртэл татгалзан хаадаг! Дэлгэрэнгүйг <xref
|
||
linkend="firewalls">-с уншина уу.</para>
|
||
|
||
<para>Заримдаа картын ажиллагаа муу эсвэл дунджаас доогуур байдаг.
|
||
Эдгээр тохиолдолд зөөгч сонголтын горимыг
|
||
<literal>autoselect</literal> горимоос зөв зөөгчийн сонголт
|
||
уруу болгож тааруулах нь шилдэг арга юм. Энэ нь ихэнх тоног төхөөрөмжийн
|
||
хувьд ихэвчлэн ажиллах боловч хүн болгоны хувьд байгаа ийм асуудлыг шийдэхгүй ч
|
||
байж болох юм. Дахин хэлэхэд бүх сүлжээний тохиргоонуудыг шалгаж
|
||
&man.tuning.7; гарын авлагын хуудсыг уншаарай.</para>
|
||
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-virtual-hosts">
|
||
<title>Виртуал Хостууд</title>
|
||
|
||
<indexterm><primary>виртуал хостууд</primary></indexterm>
|
||
<indexterm><primary>өөр IP хаягууд (alias)</primary></indexterm>
|
||
|
||
<para>&os;-ийн хамгийн түгээмэл хэрэглээ бол нэг сервер сүлжээн дээр олон сервер мэтээр
|
||
ажиллах виртуал сайт хост хийх боломж юм. Үүнийг нэг интерфэйс дээр олон сүлжээний хаягууд
|
||
тавьж хийдэг.</para>
|
||
|
||
<para>Өгөгдсөн сүлжээний интерфэйс нь нэг <quote>жинхэнэ</quote> хаягтай бөгөөд
|
||
дурын тооны <quote>өөр(alias)</quote> хаягуудтай байж болох юм.
|
||
Эдгээр өөр хаягуудыг ихэнхдээ <filename>/etc/rc.conf</filename>-д
|
||
тохирох хаягийн оруулгуудыг оруулан нэмж өгдөг.</para>
|
||
|
||
<para><devicename>fxp0</devicename> интерфэйсд зориулсан өөр хаягийн оруулга нь иймэрхүү байна:</para>
|
||
|
||
<programlisting>ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"</programlisting>
|
||
|
||
<para>Өөр хаягийн оруулгууд нь <literal>alias0</literal> гэж эхлэх ёстой бөгөөд дээш өгсөх дарааллаар
|
||
явдаг (жишээ нь <literal>_alias1</literal>, <literal>_alias2</literal>, гэх мэт).
|
||
Тохиргооны үйл явц эхний байхгүй дугаар дээр хүрч зогсдог.
|
||
</para>
|
||
|
||
<para>Өөр хаягийн сүлжээний багуудыг тооцоолох нь чухал байдаг, гэхдээ азаар энэ нь
|
||
маш амархан. Өгөгдсөн интерфэйсийн хувьд сүлжээний багийг зөвөөр үзүүлдэг нэг хаяг
|
||
байх ёстой. Энэ сүлжээн дэх өөр бусад хаягууд бүгд <literal>1</literal>-ээс
|
||
(энэ нь <hostid role="netmask">255.255.255.255</hostid> гэх буюу эсвэл
|
||
<hostid role="netmask">0xffffffff</hostid> гэж илэрхийлэгддэг)
|
||
тогтсон сүлжээний багтай байх ёстой.
|
||
</para>
|
||
|
||
<para>Жишээ нь <devicename>fxp0</devicename> интерфэйс нь
|
||
<hostid role="ipaddr">10.1.1.0</hostid>
|
||
сүлжээнд <hostid role="netmask">255.255.255.0</hostid> болон
|
||
<hostid role="ipaddr">202.0.75.16</hostid> сүлжээнд <hostid role="netmask">255.255.255.240</hostid>
|
||
багуудыг ашиглаж хоёр сүлжээнд холбогдсон гэж бодъё.
|
||
Бид системийг <hostid role="ipaddr">10.1.1.1</hostid>-ээс
|
||
<hostid role="ipaddr">10.1.1.5</hostid> хүртэл болон
|
||
<hostid role="ipaddr">202.0.75.17</hostid>-ээс эхлээд
|
||
<hostid role="ipaddr">202.0.75.20</hostid> хүртэлх хаягууд дээр
|
||
байлгахыг хүсэж байна. Дээр тэмдэглэсний дагуу өгөгдсөн сүлжээний хүрээн дэх
|
||
зөвхөн эхний хаяг (энэ тохиолдолд <hostid role="ipaddr">10.0.1.1</hostid> болон
|
||
<hostid role="ipaddr">202.0.75.17</hostid>) жинхэнэ сүлжээний багтай байх
|
||
ёстой; бусад үлдсэн бүгд (<hostid role="ipaddr">10.1.1.2</hostid>-ээс
|
||
<hostid role="ipaddr">10.1.1.5</hostid> хүртэл болон
|
||
<hostid role="ipaddr">202.0.75.18</hostid>-ээс эхлээд
|
||
<hostid role="ipaddr">202.0.75.20</hostid> хүртэл)
|
||
<hostid role="netmask">255.255.255.255</hostid> сүлжээний багтай байхаар
|
||
тохируулагдах хэрэгтэй.</para>
|
||
|
||
<para>Дараах <filename>/etc/rc.conf</filename> оруулгууд нь энэ зорилгоор адаптерийг зөв
|
||
тохируулж байна:</para>
|
||
|
||
<programlisting>ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
|
||
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
|
||
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
|
||
ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
|
||
ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
|
||
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
|
||
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
|
||
ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
|
||
ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"</programlisting>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-configfiles">
|
||
<title>Тохиргооны Файлууд</title>
|
||
|
||
<sect2>
|
||
<title><filename class="directory">/etc</filename>-н бүтэц</title>
|
||
<para>Тохиргооны мэдээллийг хадгалдаг хэд хэдэн сангууд байдаг.
|
||
Эдгээр нь:</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<colspec colwidth="1*">
|
||
<colspec colwidth="2*">
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry><filename class="directory">/etc</filename></entry>
|
||
<entry>Системийн ерөнхий тохиргооны мэдээлэл; энд байгаа өгөгдөл нь системийн хувьд өөр өөр.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/etc/defaults</filename></entry>
|
||
<entry>Системийн тохиргооны файлуудын анхдагч хувилбарууд.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/etc/mail</filename></entry>
|
||
<entry>&man.sendmail.8;-ийн нэмэлт тохиргоо, бусад MTA тохиргооны файлууд.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/etc/ppp</filename></entry>
|
||
<entry>Хэрэглэгч- болон цөмийн-ppp програмуудад зориулсан тохиргоо.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/etc/namedb</filename></entry>
|
||
<entry>&man.named.8; өгөгдөлд зориулсан анхдагч байрлал. Ихэнхдээ
|
||
<filename>named.conf</filename> болон бүсийн файлууд энд
|
||
хадгалагддаг.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/usr/local/etc</filename></entry>
|
||
<entry>Суулгагдсан програмуудад зориулсан тохиргооны файлууд.
|
||
Програм болгоны дэд сангуудыг агуулж болно.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/usr/local/etc/rc.d</filename></entry>
|
||
<entry>Суулгагдсан програмуудад зориулсан эхлүүлэх/зогсоох скриптүүд.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><filename class="directory">/var/db</filename></entry>
|
||
<entry>Багцын өгөгдлийн бааз, байршил олох өгөгдлийн бааз, гэх зэрэг
|
||
систем болгоны хувьд автоматаар үүсгэгдсэн өгөгдлийн баазын файлууд.</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Хостын нэрс</title>
|
||
|
||
<indexterm><primary>хостын нэр</primary></indexterm>
|
||
<indexterm><primary>DNS</primary></indexterm>
|
||
|
||
<sect3>
|
||
<title><filename>/etc/resolv.conf</filename></title>
|
||
|
||
<indexterm>
|
||
<primary><filename>resolv.conf</filename></primary>
|
||
</indexterm>
|
||
|
||
<para><filename>/etc/resolv.conf</filename> нь &os;-ийн
|
||
тодорхойлогч Интернэт Домэйн Нэрийн Системд (DNS) хэрхэн хандахыг заадаг.</para>
|
||
|
||
<para><filename>resolv.conf</filename> дахь хамгийн түгээмэл оруулгууд нь:
|
||
</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<colspec colwidth="1*">
|
||
<colspec colwidth="2*">
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry><literal>nameserver</literal></entry>
|
||
<entry>Тодорхойлогчийн асуух нэрийн серверийн IP хаяг. Серверүүд
|
||
нь хамгийн ихдээ гурав байх жагсаасан дарааллаар асуугддаг.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><literal>search</literal></entry>
|
||
<entry>Хостын нэрийн хайлтад зориулж жагсаалтаас хайх. Энэ нь
|
||
ихэнхдээ локал хостын нэрийн домэйноор тодорхойлогддог.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><literal>domain</literal></entry>
|
||
<entry>Локал домэйн нэр.</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
|
||
<para>Ердийн <filename>resolv.conf</filename>:</para>
|
||
|
||
<programlisting>search example.com
|
||
nameserver 147.11.1.11
|
||
nameserver 147.11.100.30</programlisting>
|
||
|
||
<note><para><literal>search</literal> болон
|
||
<literal>domain</literal> тохируулгуудын зөвхөн нэг нь хэрэглэгдэх
|
||
ёстой.</para></note>
|
||
|
||
<para>Хэрэв та DHCP ашиглаж байгаа бол &man.dhclient.8; нь DHCP серверээс
|
||
хүлээн авсан мэдээллээр <filename>resolv.conf</filename>-г дарж бичдэг.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><filename>/etc/hosts</filename></title>
|
||
|
||
<indexterm><primary>хостууд</primary></indexterm>
|
||
|
||
<para><filename>/etc/hosts</filename> нь хуучин Интернэтийн үлдэгдэл
|
||
энгийн текст өгөгдлийн бааз юм. Энэ нь DNS болон NIS-тэй цуг нэрийг IP хаяг уруу
|
||
болгож тааруулах боломжийг ханган ажилладаг. LAN-аар холбогдсон локал компьютеруудыг
|
||
амархан нэрлэх зориулалтаар &man.named.8; сервер суулгаж тохируулахын оронд энд
|
||
байрлуулж болдог. Мөн <filename>/etc/hosts</filename> нь түгээмэл ханддаг
|
||
нэрсэд зориулагдсан гадагшаа хандах хүсэлтийг багасгаж Интернэтийн нэрсийн локал
|
||
бичлэгийг хангадаг байж болно.</para>
|
||
|
||
<programlisting># $&os;$
|
||
#
|
||
#
|
||
# Host Database
|
||
#
|
||
# This file should contain the addresses and aliases for local hosts that
|
||
# share this file. Replace 'my.domain' below with the domainname of your
|
||
# machine.
|
||
#
|
||
# In the presence of the domain name service or NIS, this file may
|
||
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
|
||
#
|
||
#
|
||
::1 localhost localhost.my.domain
|
||
127.0.0.1 localhost localhost.my.domain
|
||
#
|
||
# Imaginary network.
|
||
#10.0.0.2 myname.my.domain myname
|
||
#10.0.0.3 myfriend.my.domain myfriend
|
||
#
|
||
# According to RFC 1918, you can use the following IP networks for
|
||
# private nets which will never be connected to the Internet:
|
||
#
|
||
# 10.0.0.0 - 10.255.255.255
|
||
# 172.16.0.0 - 172.31.255.255
|
||
# 192.168.0.0 - 192.168.255.255
|
||
#
|
||
# In case you want to be able to connect to the Internet, you need
|
||
# real official assigned numbers. Do not try to invent your own network
|
||
# numbers but instead get one from your network provider (if any) or
|
||
# from your regional registry (ARIN, APNIC, LACNIC, RIPE NCC, or AfriNIC.)
|
||
#</programlisting>
|
||
|
||
<para><filename>/etc/hosts</filename> нь энгийн хэлбэрийг агуулдаг:</para>
|
||
|
||
<programlisting>[Internet address] [official hostname] [alias1] [alias2] ...</programlisting>
|
||
|
||
<para>Жишээ нь:</para>
|
||
|
||
<programlisting>10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2</programlisting>
|
||
|
||
<para>Дэлгэрэнгүй мэдээллийн талаар &man.hosts.5; хуудаснаас зөвлөгөө авна уу.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Бүртгэлийн файлын тохиргоо</title>
|
||
|
||
<indexterm><primary>бүртгэлийн файлууд</primary></indexterm>
|
||
|
||
<sect3>
|
||
<title><filename>syslog.conf</filename></title>
|
||
|
||
<indexterm><primary>syslog.conf</primary></indexterm>
|
||
|
||
<para><filename>syslog.conf</filename> нь &man.syslogd.8;
|
||
програмын тохиргооны файл юм. Энэ нь ямар төрлийн <command>syslog</command>
|
||
мэдээллүүд яг аль бүртгэлийн файлд бүртгэгдэхийг заадаг.</para>
|
||
|
||
<programlisting># $&os;$
|
||
#
|
||
# Spaces ARE valid field separators in this file. However,
|
||
# other *nix-like systems still insist on using tabs as field
|
||
# separators. If you are sharing this file between systems, you
|
||
# may want to use only tabs as field separators here.
|
||
# Consult the syslog.conf(5) manual page.
|
||
*.err;kern.debug;auth.notice;mail.crit /dev/console
|
||
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
|
||
security.* /var/log/security
|
||
mail.info /var/log/maillog
|
||
lpr.info /var/log/lpd-errs
|
||
cron.* /var/log/cron
|
||
*.err root
|
||
*.notice;news.err root
|
||
*.alert root
|
||
*.emerg *
|
||
# uncomment this to log all writes to /dev/console to /var/log/console.log
|
||
#console.info /var/log/console.log
|
||
# uncomment this to enable logging of all log messages to /var/log/all.log
|
||
#*.* /var/log/all.log
|
||
# uncomment this to enable logging to a remote log host named loghost
|
||
#*.* @loghost
|
||
# uncomment these if you're running inn
|
||
# news.crit /var/log/news/news.crit
|
||
# news.err /var/log/news/news.err
|
||
# news.notice /var/log/news/news.notice
|
||
!startslip
|
||
*.* /var/log/slip.log
|
||
!ppp
|
||
*.* /var/log/ppp.log</programlisting>
|
||
|
||
<para>Дэлгэрэнгүй мэдээллийн талаар &man.syslog.conf.5; гарын авлагын хуудаснаас
|
||
зөвлөгөө авна уу.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><filename>newsyslog.conf</filename></title>
|
||
|
||
<indexterm><primary>newsyslog.conf</primary></indexterm>
|
||
|
||
<para><filename>newsyslog.conf</filename> нь ихэнхдээ &man.cron.8; хуваарилан
|
||
цагаар ажиллуулдаг &man.newsyslog.8;-д зориулагдсан тохиргоо юм. &man.newsyslog.8;
|
||
нь хэзээ бүртгэлийн файлууд архивлагдах эсвэл дахин зохицуулагдахыг тодорхойлдог.
|
||
<filename>logfile</filename> нь <filename>logfile.0</filename> уруу,
|
||
<filename>logfile.0</filename> нь <filename>logfile.1</filename>
|
||
шилжих гэх зэргээр зохицуулагддаг. Бүртгэлийн файлууд өөрөөр &man.gzip.1;
|
||
хэлбэрээр <filename>logfile.0.gz</filename>, <filename>logfile.1.gz</filename>
|
||
гэх зэргээр нэрлэгдэн архивлагдаж болно.</para>
|
||
|
||
<para><filename>newsyslog.conf</filename> нь аль бүртгэлийн файлууд удирдагдах,
|
||
хичнээн нь хадгалагдах болон хэзээ тэдгээрт хүрэхийг зааж өгдөг. Бүртгэлийн файлууд нь
|
||
тодорхой хэмжээнд хүрэх үед болон эсвэл тодорхой цаг/огнооны давтамжтайгаар зохицуулагддаг ба/эсвэл
|
||
архивлагддаг.</para>
|
||
|
||
<programlisting># configuration file for newsyslog
|
||
# $&os;$
|
||
#
|
||
# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
|
||
/var/log/cron 600 3 100 * Z
|
||
/var/log/amd.log 644 7 100 * Z
|
||
/var/log/kerberos.log 644 7 100 * Z
|
||
/var/log/lpd-errs 644 7 100 * Z
|
||
/var/log/maillog 644 7 * @T00 Z
|
||
/var/log/sendmail.st 644 10 * 168 B
|
||
/var/log/messages 644 5 100 * Z
|
||
/var/log/all.log 600 7 * @T00 Z
|
||
/var/log/slip.log 600 3 100 * Z
|
||
/var/log/ppp.log 600 3 100 * Z
|
||
/var/log/security 600 10 100 * Z
|
||
/var/log/wtmp 644 3 * @01T05 B
|
||
/var/log/daily.log 640 7 * @T00 Z
|
||
/var/log/weekly.log 640 5 1 $W6D0 Z
|
||
/var/log/monthly.log 640 12 * $M1D0 Z
|
||
/var/log/console.log 640 5 100 * Z</programlisting>
|
||
|
||
<para>Дэлгэрэнгүй мэдээллийн талаар &man.newsyslog.8; гарын авлагын хуудаснаас
|
||
зөвлөгөө авна уу.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2 id="configtuning-sysctlconf">
|
||
<title><filename>sysctl.conf</filename></title>
|
||
|
||
<indexterm><primary>sysctl.conf</primary></indexterm>
|
||
<indexterm><primary>sysctl</primary></indexterm>
|
||
|
||
<para><filename>sysctl.conf</filename> нь <filename>rc.conf</filename>-той
|
||
бараг л адил харагддаг. Утгууд нь <literal>хувьсагч=утга</literal>
|
||
хэлбэрээр заагддаг. Тодорхойлсон утгууд нь систем олон-хэрэглэгчийн горимд шилжсэний
|
||
дараа тохируулагддаг. Энэ горимд бүх хувьсагчууд тохируулагдах боломжгүй.</para>
|
||
|
||
<para>Сүйрлийн дохионы гаралтуудын бүртгэлийг хааж бусад хэрэглэгчдийн эхлүүлсэн
|
||
процессуудыг өөр хэрэглэгчдэд харуулахгүй байлгахын тулд дараах тохируулгуудыг
|
||
<filename>sysctl.conf</filename> файлд тохируулж өгч болно:</para>
|
||
|
||
<programlisting># Do not log fatal signal exits (e.g. sig 11)
|
||
kern.logsigexit=0
|
||
|
||
# Prevent users from seeing information about processes that
|
||
# are being run under another UID.
|
||
security.bsd.see_other_uids=0</programlisting>
|
||
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-sysctl">
|
||
<title>sysctl ашиглан тааруулах нь</title>
|
||
|
||
<indexterm><primary>sysctl</primary></indexterm>
|
||
<indexterm>
|
||
<primary>тааруулах нь</primary>
|
||
<secondary>sysctl ашиглан</secondary>
|
||
</indexterm>
|
||
|
||
<para>&man.sysctl.8; нь ажиллаж байгаа &os; системд өөрчлөлтүүдийг хийхийг
|
||
танд зөвшөөрдөг интерфэйс юм. Энэ нь туршлагатай системийн администраторын хувьд
|
||
ажиллагааг мэдэгдэхүйц сайжруулж чадах TCP/IP болон виртуал санах ойн системийн
|
||
олон нарийн тохируулгуудыг агуулдаг. Таван зуу гаруй системийн хувьсагчуудыг
|
||
&man.sysctl.8; ашиглан унших болон тохируулж болдог.</para>
|
||
|
||
<para>&man.sysctl.8; нь голдоо хоёр үүргийг гүйцэтгэдэг: системийн тохиргоонуудыг
|
||
унших болон өөрчлөх.</para>
|
||
|
||
<para>Уншигдаж болох бүх хувьсагчуудыг харахдаа:</para>
|
||
|
||
<screen>&prompt.user; <userinput>sysctl -a</userinput></screen>
|
||
|
||
<para>Тухайн хувьсагчийг уншихдаа, жишээ нь,
|
||
<varname>kern.maxproc</varname>:</para>
|
||
|
||
<screen>&prompt.user; <userinput>sysctl kern.maxproc</userinput>
|
||
kern.maxproc: 1044</screen>
|
||
|
||
<para>Тухайн хувьсагчийг заахдаа хялбар
|
||
<replaceable>хувьсагч</replaceable>=<replaceable>утга</replaceable>
|
||
синтаксийг ашиглаарай:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl kern.maxfiles=5000</userinput>
|
||
kern.maxfiles: 2088 -> 5000</screen>
|
||
|
||
<para>sysctl хувьсагчуудын тохиргоонууд нь ихэвчлэн тэмдэгтүүд (strings),
|
||
тоонууд эсвэл boolean (boolean <literal>1</literal> нь тийм эсвэл
|
||
<literal>0</literal> нь үгүй байна) утгууд байна.</para>
|
||
|
||
<para>Хэрэв та машин ачаалах болгонд автоматаар зарим хувьсагчуудыг тохируулахыг
|
||
хүсвэл <filename>/etc/sysctl.conf</filename> файлд тэдгээрийг
|
||
нэмээрэй. Дэлгэрэнгүй мэдээллийн талаар &man.sysctl.conf.5; гарын авлагын
|
||
хуудас болон <xref linkend="configtuning-sysctlconf">-с үзнэ үү.</para>
|
||
|
||
<sect2 id="sysctl-readonly">
|
||
<sect2info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
<contrib>Хувь нэмэр болгон оруулсан </contrib>
|
||
<!-- 31 January 2003 -->
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect2info>
|
||
<title>Зөвхөн-унших &man.sysctl.8;</title>
|
||
|
||
<para>Зарим тохиолдолд зөвхөн-унших &man.sysctl.8; утгуудыг өөрчлөх шаардлагатай
|
||
байж болох юм. Энэ нь заримдаа хийхээс өөр аргагүй байдаг боловч зөвхөн
|
||
(дахин) ачаалахад хийгдэх боломжтой.</para>
|
||
|
||
<para>Жишээ нь зарим зөөврийн компьютерийн загваруудад &man.cardbus.4; төхөөрөмж нь
|
||
санах ойн хүрээг шалгадаггүй бөгөөд доор дурдсантай төстэй алдаанууд гарган амжилтгүй болдог:</para>
|
||
|
||
<screen>cbb0: Could not map register memory
|
||
device_probe_and_attach: cbb0 attach returned 12</screen>
|
||
|
||
<para>Дээрх шиг тохиолдлууд нь ихэвчлэн зөвхөн уншихаар тохируулагдсан
|
||
зарим анхдагч &man.sysctl.8; тохиргоонуудыг өөрчлөхийг шаарддаг. Эдгээр
|
||
нөхцөлүүдийг давж гарахын тулд хэрэглэгч
|
||
&man.sysctl.8; <quote>OID</quote>-уудыг тэдгээрийн
|
||
<filename>/boot/loader.conf</filename> файлд хийж өгч болно.
|
||
Анхдагч тохиргоонууд <filename>/boot/defaults/loader.conf</filename>
|
||
файлд байрладаг.</para>
|
||
|
||
<para>Дээр дурдсан асуудлыг шийдэхийн тулд хэрэглэгч урьд нь дурдсан файлд
|
||
<option>hw.pci.allow_unsupported_io_range=1</option> гэж
|
||
тохируулах шаардлагатай. Ингэснээр &man.cardbus.4; зөв ажиллах болно.</para>
|
||
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-disk">
|
||
<title>Дискнүүдийг тааруулах нь</title>
|
||
|
||
<sect2>
|
||
<title>Sysctl хувьсагчууд</title>
|
||
|
||
<sect3>
|
||
<title><varname>vfs.vmiodirenable</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>vfs.vmiodirenable</varname></primary>
|
||
</indexterm>
|
||
|
||
<para><varname>vfs.vmiodirenable</varname> sysctl хувьсагч нь
|
||
0 (идэвхгүй) эсвэл 1 (идэвхтэй) гэж тохируулагдаж болно; анхдагчаар 1 байна.
|
||
Энэ хувьсагч нь систем сангуудыг хэрхэн кэш (шуурхай санамж) хийхийг хянадаг.
|
||
Ихэнх сангууд зөвхөн ганц фрагментийг (ихэвчлэн 1 K) файлын системд
|
||
болон түүнээс багыг буфер кэшд хэрэглэн жижиг хэмжээтэй байдаг.
|
||
Энэ хувьсагчийг хааснаар (0 болгосноор) буфер кэш нь таныг асар их хэмжээний
|
||
санах ойтой байсан ч гэсэн зөвхөн тодорхой тооны сангуудыг кэш хийдэг.
|
||
Нээгдсэн (1 болгосон) үед энэ sysctl нь бүх санах ойг кэш хийхэд бэлэн болгож
|
||
буфер кэшд VM Хуудасны Кэшийг хэрэглэн сангуудыг кэш хийх боломжийг олгодог.
|
||
Гэхдээ сангуудыг кэш хийх хамгийн бага гол дахь санах ой нь 512 байт биш
|
||
харин физик хуудасны хэмжээ (ихэвчлэн 4 K) байдаг. Хэрэв та их олон тооны
|
||
файлуудтай ажилладаг үйлчилгээ ажиллуулж байгаа бол бид энэ тохируулгыг идэвхтэй
|
||
байлгахыг зөвлөж байна. Тийм үйлчилгээнүүдэд вэб кэшүүд, том захидлын системүүд,
|
||
болон мэдээний системүүд орж болно. Энэ тохируулгыг идэвхтэй байлгах нь хайр
|
||
гамгүй зарцуулсан санах ойтой байхад ч гэсэн ерөнхийдөө ажиллагааг удаашруулдаггүй,
|
||
гэхдээ та түүнийг мэдэхийн тулд туршиж үзэж болно.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><varname>vfs.write_behind</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>vfs.write_behind</varname></primary>
|
||
</indexterm>
|
||
|
||
<para><varname>vfs.write_behind</varname> sysctl хувьсагчийн
|
||
анхдагч утга нь <literal>1</literal> (идэвхтэй) байна. Энэ нь том
|
||
дараалсан файлуудыг бичих үед ихэвчлэн гардаг бүх кластеруудыг цуглуулсан
|
||
үед зөөгчийн бичилтүүдийг хийхийг файлын системд хэлж өгдөг. Санаа нь бол
|
||
I/O ажиллагааны хувьд ашиггүй байхад бохир буферууд бүхий буферийн кэшийг
|
||
замхруулахаас зайлсхийхэд оршдог. Гэхдээ энэ нь процессуудыг зогсоож магадгүй
|
||
бөгөөд зарим нөхцөл байдалд та магадгүй үүнийг идэвхгүй болгохыг хүсэж болох юм.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><varname>vfs.hirunningspace</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>vfs.hirunningspace</varname></primary>
|
||
</indexterm>
|
||
|
||
<para><varname>vfs.hirunningspace</varname> sysctl хувьсагч
|
||
өгөгдсөн дурын хоромд системийн хувьд бүхэлд нь хэдий хэмжээний хүлээгдэж байгаа
|
||
бичих I/O-г дискний хянагчуудад өгөх дараалалд оруулж болохыг тодорхойлдог.
|
||
Анхдагч утга нь ихэвчлэн хангалттай гэхдээ олон дисктэй машинууд дээр та
|
||
үүнийг дөрөв эсвэл таван <emphasis>мегабайт</emphasis> хүртэл
|
||
ихэсгэхийг хүсэж болох юм. Утгыг хэтэрхий өндөр тавих нь (буфер кэшийн бичих
|
||
тогтоосон хэмжээг давах нь) туйлын муу кластерлах ажиллагаанд хүргэж болно.
|
||
Энэ утгыг хэтэрхий өндөр бүү тавь! Өндөр бичих утгууд нь яг тэр үед хийгдэж байгаа
|
||
уншилтуудад хоцрогдол нэмж магадгүй юм.
|
||
</para>
|
||
|
||
<para>Бусад төрөл бүрийн буфер-кэш болон VM хуудасны кэштэй холбоотой sysctl-ууд
|
||
байдаг. Бид эдгээр утгуудыг өөрчлөхийг зөвлөдөггүй, VM систем нь өөрийгөө автоматаар
|
||
тааруулж туйлын сайн ажилладаг.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><varname>vm.swap_idle_enabled</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>vm.swap_idle_enabled</varname></primary>
|
||
</indexterm>
|
||
|
||
<para><varname>vm.swap_idle_enabled</varname> sysctl хувьсагч нь
|
||
маш олон хэрэглэгчид таны системд орж гарч байдаг, сул зогссон олон процессуудтай,
|
||
том, олон-хэрэглэгчийн системүүд дээр ашигтай байдаг. Ийм системүүд нь
|
||
чөлөөт санах ойн хадгалалтад ихээхэн хэмжээний байнгын дарамтыг үүсгэж байдаг.
|
||
Энэ боломжийг идэвхтэй болгож ар араас нь swap хийн гаргахыг (зогссон секундээр)
|
||
<varname>vm.swap_idle_threshold1</varname> болон
|
||
<varname>vm.swap_idle_threshold2</varname> хувьсагчуудын тусламжтай
|
||
тохируулснаар зогссон процессуудтай холбоотой санах ойн хуудаснуудын дарааллыг ердийн
|
||
хуудаслаж гаргах алгоритмаас илүү хурднаар багасгах боломжийг олгодог.
|
||
Энэ нь хуудаслаж гаргах дэмонд тусламжийн гарыг өгөх болно. Энэ тохируулгыг
|
||
танд хэрэгтэй л биш бол идэвхтэй болгож болохгүй, учир нь үүнийг та хийснээр үндсэндээ
|
||
санах ойг илүү түргэн урьдчилан-хуудаслаж ингэснээр swap болон дискний багтаамжийг
|
||
илүүтэйгээр идэхэд хүргэх юм. Жижиг систем дээр энэ тохируулга нь тодорхойлогдож
|
||
болохуйц нөлөөлөлтэй байх ба харин боломжийн хуудаслалт аль хэдийн хийгээд байгаа
|
||
том системүүдэд энэ тохируулга нь VM системд бүх процессуудыг санах ой уруу болон
|
||
санах ойгоос хялбараар гаргах боломжийг бүрдүүлдэг.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><varname>hw.ata.wc</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>hw.ata.wc</varname></primary>
|
||
</indexterm>
|
||
|
||
<para>&os; 4.3-д IDE бичих кэш хийлтийг хаасан байдаг. Энэ нь
|
||
IDE дискэнд бичих багтаамжийг багасгасан боловч хатуу диск үйлдвэрлэгчдийн гаргасан
|
||
өгөгдлийн бүрэн бүтэн байдлын ноцтой асуудлуудаас болоод шаардлагатай болсон.
|
||
Тэр асуудал нь IDE хөтлөгчүүд бичилт дуусах үед худлаа мэдээлдэг явдал юм.
|
||
IDE бичих кэшийг идэвхтэй болгосноор IDE хатуу дискнүүд ямар нэг дараалалгүйгээр
|
||
бичихээс гадна диск их ачаалалтай үед зарим блокуудыг бичихэд заримдаа
|
||
тодорхойгүй саатдаг. Сүйрэл болон тэжээлийн уналт файлын системийн ноцтой
|
||
эвдрэлд хүргэж болзошгүй байдаг. &os;-ийн анхдагч нь аюулгүй байхаар өөрчлөгдсөн.
|
||
Харамсалтай нь үүний үр дүнд ажиллагааны асар том алдагдалд хүргэсэн бөгөөд
|
||
хувилбар гарсны дараа бид бичих кэш хийлтийг анхдагчаар идэвхтэй байхаар буцаан
|
||
өөрчилсөн юм. Та өөрийн систем дээрээ <varname>hw.ata.wc</varname> sysctl
|
||
хувьсагчийг ажиглан анхдагч утгыг шалгах хэрэгтэй. Хэрэв IDE бичих кэш хийлт
|
||
хаалттай бол та цөмийн хувьсагчийн утгыг 1 болгон түүнийг идэвхжүүлж болно.
|
||
Үүнийг ачаалах үед ачаалагчаас хийх шаардлагатай. Цөм ачаалсны дараа хийхийг
|
||
оролдвол ямар ч нөлөө үзүүлэхгүй.</para>
|
||
|
||
<para>Дэлгэрэнгүй мэдээллийн талаар &man.ata.4;-с үзнэ үү.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><literal>SCSI_DELAY</literal>
|
||
(<varname>kern.cam.scsi_delay</varname>)</title>
|
||
|
||
<indexterm>
|
||
<primary><varname>kern.cam.scsi_delay</varname></primary>
|
||
</indexterm>
|
||
|
||
<indexterm>
|
||
<primary>цөмийн тохируулгууд</primary>
|
||
<secondary><literal>SCSI_DELAY</literal></secondary>
|
||
</indexterm>
|
||
|
||
<para><literal>SCSI_DELAY</literal> цөмийн тохиргоо нь системийн ачаалах
|
||
хугацааг багасгахад хэрэглэгддэг. Анхдагч утга нь нэлээн өндөр бөгөөд
|
||
<literal>15</literal> секундын саатлыг ачаалах процессийн үед өгөхийг хариуцдаг.
|
||
<literal>5</literal> секунд хүртэл багасгахад ихэвчлэн ажилладаг (ялангуяа
|
||
орчин үеийн хөтлөгчүүдийн хувьд). &os;-ийн шинэ хувилбарууд (5.0 болон түүнээс дээш)
|
||
ачаалах үеийн тохируулга болох <varname>kern.cam.scsi_delay</varname>
|
||
хувьсагчийг ашиглах хэрэгтэй. Энэ тохируулга болон цөмийн тохиргооны тохируулга нь
|
||
<emphasis>секундээр</emphasis> <emphasis>биш</emphasis>
|
||
<emphasis>миллисекундээр</emphasis> утгыг хүлээн авдаг.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2 id="soft-updates">
|
||
<title>Зөөлөн Шинэчлэлтүүд</title>
|
||
|
||
<indexterm><primary>Зөөлөн Шинэчлэлтүүд</primary></indexterm>
|
||
<indexterm><primary>tunefs</primary></indexterm>
|
||
|
||
<para>&man.tunefs.8; програм файлын системийг нарийн тааруулахад
|
||
ашиглагдаж болно. Энэ програм нь олон янзын тохируулгуудтай гэхдээ
|
||
одоохондоо бид зөвхөн Зөөлөн Шинэчлэлтүүдийг идэвхжүүлэх ба хаах дээр
|
||
анхаарах бөгөөд үүнийг дараах аргаар хийнэ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>tunefs -n enable /filesystem</userinput>
|
||
&prompt.root; <userinput>tunefs -n disable /filesystem</userinput></screen>
|
||
|
||
<para>Файлын систем нь холбогдсон байхдаа &man.tunefs.8;-ээр өөрчлөгдөх
|
||
боломжгүй. Зөөлөн Шинэчлэлтүүдийг идэвхжүүлэхэд тохирох үе нь аль ч
|
||
хуваалтууд холболт хийгдээгүй байгаа ганц хэрэглэгчийн горим юм.</para>
|
||
|
||
<para>Зөөлөн Шинэчлэлтүүд нь мета-өгөгдлийн ажиллагааг мэдэгдэхүйц сайжруулдаг бөгөөд
|
||
санах ойн кэшийг ашиглан голчлон файлын үүсгэлт болон устгалтыг хурдасгадаг.
|
||
Бид Зөөлөн Шинэчлэлтүүдийг өөрийн бүх файлын системүүдэд ашиглахыг зөвлөж байна.
|
||
Зөөлөн Шинэчлэлтүүдийн хоёр дутагдалтай талыг та мэдэж байх ёстой: Нэгдүгээрт,
|
||
Зөөлөн Шинэчлэлтүүд нь сүйрэл болсон тохиолдолд файлын системийн бүрэн бүтэн
|
||
байдалд баталгаа өгдөг боловч физик дискийг шинэчлэхэд хэдэн секундын (минут ч байж болно!)
|
||
хоцрогдолтой байж болно. Хэрэв таны систем сүйрэхэд бусад тохиолдлоос илүүтэйгээр
|
||
та хийсэн ажлаа алдаж болзошгүй юм. Хоёрдугаарт, Зөөлөн Шинэчлэлтүүд нь
|
||
файлын системийн блокуудыг чөлөөлөхийг саатуулдаг. Хэрэв та бараг дүүрсэн
|
||
файлын системтэй (root файл систем гэх зэрэг) байгаа бол
|
||
<command>make installworld</command> зэрэг гол шинэчлэлтийг
|
||
хийх нь файлын системийг зайгүй болгож шинэчлэлт амжилтгүй болох шалтгаанд хүргэж
|
||
болох юм.</para>
|
||
|
||
<sect3>
|
||
<title>Зөөлөн Шинэчлэлтүүдийн талаар дэлгэрэнгүй</title>
|
||
|
||
<indexterm>
|
||
<primary>Зөөлөн Шинэчлэлтүүд</primary>
|
||
<secondary>дэлгэрэнгүй</secondary>
|
||
</indexterm>
|
||
|
||
<para>Файлын системийн мета-өгөгдлийг диск уруу бичих уламжлалт хоёр хандлага
|
||
байдаг. (Мета-өгөгдлийн шинэчлэлтүүд нь inode эсвэл сангууд зэрэг агуулгын бус
|
||
өгөгдөлд хийх шинэчлэлтүүд юм)</para>
|
||
|
||
<para>Түүхээс авч үзэхэд анхдагч ажиллах горим нь мета-өгөгдлийн шинэчлэлтүүдийг
|
||
синхроноор буюу зэрэг бичдэг байсан явдал юм. Хэрэв сан өөрчлөгдсөн бол
|
||
систем өөрчлөлтийг диск уруу бичигдэхийг хүлээдэг. Файлын өгөгдлийн буферууд
|
||
(файлын агуулгууд) буфер кэшээр дамжин диск уруу сүүлд нь асинхроноор хадгалагддаг.
|
||
Энэ шийдлийн давуу тал нь аюулгүй ажилладаг. Хэрэв шинэчлэлтийн үед амжилтгүй
|
||
болбол мета-өгөгдөл нь үргэлж бүрэн бүтэн байдаг. Файл эсвэл бүрэн үүсч эсвэл
|
||
бүр ерөөсөө үүсдэггүй. Хэрэв файлын өгөгдлийн блокууд сүйрэл болох үед
|
||
буферийн кэшээс диск уруу өөрсдийн гарах замаа олохгүй байгаа бол
|
||
&man.fsck.8; нь үүнийг таньж файлын уртыг 0 болгон файлын системийг
|
||
засварладаг. Нэмж хэлэхэд энэ шийдэл нь цэвэрхэн ба хялбар юм.
|
||
Сул тал нь мета-өгөгдлийн өөрчлөлтүүд нь удаан байдаг.
|
||
<command>rm -r</command> тушаал жишээ нь сан дахь бүх файлуудад дараалан
|
||
хандах бөгөөд гэхдээ сан болгоны өөрчлөлт (файлын устгалт) синхроноор зэрэг
|
||
диск уруу бичигддэг. Үүнд сан уруу өөрт нь хийгдэх шинэчлэлтүүд, inode хүснэгт
|
||
болон магадгүй файлын гаргасан шууд бус блокуудад хийх шинэчлэлтүүд ордог.
|
||
Том иерархуудыг задлахад (<command>tar -x</command>) үүний нэгэн адилаар
|
||
авч үздэг.</para>
|
||
|
||
<para>Хоёр дахь нь асинхрон мета-өгөгдлийн шинэчлэлтүүд юм. Энэ нь
|
||
Линукс/ext2fs-ийн хувьд анхдагч байх бөгөөд
|
||
*BSD ufs-ийн хувьд
|
||
<command>mount -o async</command> байх юм.
|
||
Бүх мета-өгөгдлийн шинэчлэлтүүд
|
||
нь буфер кэшээр бас дамждаг, тэгэхээр тэдгээр нь файлын агуулгын өгөгдлийн
|
||
шинэчлэлтүүдтэй харилцан холилдох болно. Энэ шийдлийн давуу тал нь
|
||
мета-өгөгдөл бүрийн шинэчлэлт диск уруу бичигдэхийг хүлээдэггүй бөгөөд
|
||
ингэснээр ихээхэн хэмжээний мета-өгөгдлийн шинэчлэлтүүдийг хийдэг бүх
|
||
үйлдлүүд синхрон хийгдэхээс хамаагүй хурдан ажилладаг. Мөн энэ шийдэл нь
|
||
цэвэрхэн бас энгийн бөгөөд ингэснээр хорхойнууд (алдаа) код уруу мөлхөн
|
||
орох эрсдэл бага юм. Сул тал нь файлын системийн бүрэн бүтэн төлвийн
|
||
ямар нэг баталгаа ерөөсөө байдаггүй. Хэрэв их хэмжээний мета-өгөгдөл
|
||
шинэчлэх үйлдлийн явцад амжилтгүй болсон бол (тэжээлийн тасалдал, эсвэл хэн
|
||
нэг нь дахин эхлүүлэх товч дарсан зэрэгт) файлын систем тааж болшгүй
|
||
төлөвт үлдэх болно. Систем дахин ачаалаад дуусахад файлын системийн
|
||
төлөвийг мэдэх боломжгүй байдаг; inode хүснэгт эсвэл холбоотой сангийн
|
||
шинэчлэлтүүд бичигдээгүй байхад файлын өгөгдлийн блокууд диск уруу аль хэдийн
|
||
бичигдчихсэн байж болох юм. Ер нь гаргасан замбараагүйтлийг (учир нь хэрэгцээтэй
|
||
мэдээлэл диск дээр байхгүй) цэвэрлэж чаддаг <command>fsck</command>
|
||
тушаалын шийдлийг хийх боломжгүй. Хэрэв файлын систем засвар хийж чадахааргүй
|
||
эвдэрсэн бол түүнд дээр &man.newfs.8;-ийг хэрэглэж нөөцөөс сэргээхээс өөр
|
||
аргагүй юм.
|
||
</para>
|
||
|
||
<para>Энэ асуудлын шийдэл нь
|
||
<emphasis>бохир бүсийн бүртгэл</emphasis> буюу бас
|
||
<emphasis>журналчлалт</emphasis> гэгддэг шийдлийг гаргах явдал бөгөөд
|
||
энэ ухагдахуун нь тогтвортой хэрэглэгддэггүй ба шилжүүлэлтийн бүртгэлийн бусад
|
||
хэлбэрүүдэд бас заримдаа ашиглагддаг. Мета-өгөгдлийн шинэчлэлтүүд нь
|
||
синхроноор бичигдсэн хэвээр байх бөгөөд гэхдээ зөвхөн дискний жижиг бүсэд
|
||
бичигдэнэ. Дараа нь тэдгээрийг тэдний зөв байрлал уруу зөөдөг. Бүртгэлийн
|
||
талбар нь диск дээр бага, үргэлжилсэн бүс байдаг учраас бүр хүнд үйлдлүүдийн үед
|
||
ч гэсэн дискний толгойнууд шилжихэд хол зайтай биш байдаг болохоор эдгээр
|
||
үйлдлүүд нь синхрон шинэчлэлтүүдээс илүү хурдан байдаг.
|
||
Мөн энэ шийдлийн төвөгтэй байдал нь маш хязгаарлагдмал болохоор алдаанууд
|
||
байх эрсдэл нь бага байдаг. Сул тал нь бүх мета-өгөгдөл нь хоёр удаа бичигддэг
|
||
(бүртгэлийн бүсэд нэг удаа болон зөв байрлал уруу бас нэг удаа) болохоор
|
||
энгийн ажлын хувьд ажиллагааны <quote>өөдрөг бус үзэгдэл</quote>
|
||
гарч болзошгүй юм. Нөгөө талаас сүйрэл болоод систем дахин ачаалаад дуусахад
|
||
хүлээгдэж байгаа бүх мета-өгөгдлийн үйлдлүүд бүртгэлийн талбараас хурдан
|
||
буцаагдаж эсвэл гүйцэд хийгдэн дуусч болох бөгөөд энэ нь файлын системийг
|
||
хурдан эхлүүлэхэд хүргэдэг.</para>
|
||
|
||
<para>Беркли FFS-ийн хөгжүүлэгч Кирк МкКюзик энэ асуудлыг Soft Updates
|
||
буюу Зөөлөн Шинэчлэлтүүдээр шийдсэн: хүлээгдэж байгаа бүх мета-өгөгдлийн
|
||
шинэчлэлтүүд нь санах ойд хадгалагдах бөгөөд диск уруу эрэмбэлэгдсэн дарааллаар
|
||
бичигддэг (<quote>дараалуулсан мета-өгөгдлийн шинэчлэлтүүд</quote>).
|
||
Энэ нь мета-өгөгдлийн хүнд үйлдлүүдийн үед хэрэв эрт хийгдсэн шинэчлэлтүүд диск
|
||
уруу бичигдээгүй санах ойд байж байхад нь сүүлд хийгдэх шинэчлэлтүүд тэдгээрийг
|
||
<quote>барьж</quote> авдаг. Тэгэхээр сангийн хувьд хэлбэл түүнд хийгдэх
|
||
бүх үйлдлүүд нь санах ойд шинэчлэлт диск уруу бичигдэхээс өмнө хийгддэг
|
||
(өгөгдлийн блокууд нь мета-өгөгдлөөсөө түрүүлээд диск дээр байж байхгүйгээр
|
||
өөрсдийн байрлалынхаа дагуу эрэмбэлэгддэг ).
|
||
Хэрэв систем сүйрвэл энэ нь <quote>бүртгэл урагшлуулахад</quote> хүргэдэг:
|
||
диск уруу гарах замаа олохгүй байгаа бүх үйлдлүүд хэзээ ч хийгдээгүй юм шиг
|
||
байдаг. Файлын системийн бүрэн бүтэн төлөв хадгалагдаж 30-аас 60 секундын
|
||
өмнөх төлөвт ордог. Хэрэглэгдэж байгаа эх үүсвэрүүдийг тэдгээрийн өөрсдийнх
|
||
харгалзах битмапуудад: блокууд болон inode-уудад байдаг шигээр тэмдэглэхийг
|
||
үүнд ашигласан алгоритм нь баталгаатай хангадаг. Сүйрэл болсны дараа
|
||
зөвхөн гарсан эх үүсвэр суллан гаргалтын алдаа нь яг үнэндээ <quote>чөлөөтэй</quote>
|
||
мөртлөө <quote>ашиглагдаж байгаа</quote> гэж тэмдэглэгдсэн эх үүсвэрүүд
|
||
байдаг. &man.fsck.8; энэ байдлыг таних бөгөөд ашиглагдаагүй байгаа эх
|
||
үүсвэрүүдийг чөлөөлдөг. Сүйрлийн дараа файлын системийн бохир төлвийг авч үзэлгүйгээр
|
||
хүчээр <command>mount -f</command> тушаалаар холбох нь аюулгүй юм.
|
||
Ашиглагдаагүй байж болзошгүй эх үүсвэрүүдийг чөлөөлөхдөө &man.fsck.8;-г
|
||
сүүлд нь ажиллуулах хэрэгтэй. Энэ нь <emphasis>ард ажиллах fsck</emphasis>-ийн
|
||
цаана байгаа санаа юм: системийг эхлүүлэх үед зөвхөн файлын системийн
|
||
<emphasis>хормын зураг</emphasis> бичигддэг.
|
||
<command>fsck</command>-г сүүлд нь ажиллуулж болно. Дараа нь бүх файлын
|
||
системүүд <quote>бохир</quote> холбогдож системийн эхлэлт олон хэрэглэгчийн
|
||
горимд үргэлжилдэг. Дараа нь ард ажиллах <command>fsck</command>-үүд
|
||
ашиглагдаагүй байгаа эх үүсвэрүүдийг чөлөөлөхөөр шаардлагатай байгаа бүх файлын
|
||
системийн хувьд ажиллахаар төлөвлөгддөг. (Зөөлөн Шинэчлэлтүүд ашигладаггүй
|
||
файлын системүүдэд ердийн нүүрэн дээр ажиллах <command>fsck</command>
|
||
хэрэгтэй хэвээр байна)</para>
|
||
|
||
<para>Давуу тал нь мета-өгөгдлийн үйлдлүүд нь асинхрон шинэчлэлтүүдтэй
|
||
бараг л адил хурдан байдаг (өөрөөр хэлбэл мета-өгөгдлийг хоёр дахин бичдэг
|
||
<emphasis>бүртгэл хийлтээс</emphasis> хурдан байдаг). Сул талууд нь
|
||
төвөгтэй код (хэрэглэгчийн өгөгдлийн алдагдлын хувьд их мэдрэмтгий талбар дахь
|
||
байж болох алдаануудын тэр өндөр эрсдэлийг хэлж байна) болон санах ойн илүү
|
||
хэрэглээ юм. Мөн хэн нэгний хэрэглэж байсан хувийн тохиргоонууд ч бас байдаг.
|
||
Сүйрэл болсны дараа файлын системийн төлөв <quote>хуучин</quote>
|
||
юм шиг харагддаг. Стандарт синхрон хандлага нь
|
||
<command>fsck</command>-ийн дараа зарим нэг тэг-урттай файлуудыг
|
||
үлдээхэд хүргэсэн нөхцөлд тэдгээр файлууд нь Зөөлөн Шинэчлэлтүүдтэй файлын
|
||
системийн үед огт байдаггүй бөгөөд учир нь мета-өгөгдөл болон файлын агуулгууд
|
||
хэзээ ч диск уруу бичигдээгүй байдаг. Дискний зай нь магадгүй
|
||
<command>rm</command> ажиллуулснаас хэсэг хугацааны дараа диск уруу
|
||
шинэчлэлтүүд бичигдэх хүртэл сулардаггүй. Энэ нь бүх файлуудыг хоёр дахин
|
||
хадгалахад хангалттай хүрэлцэхүйц хэмжээний чөлөөтэй зай байхгүй файлын систем
|
||
дээр их хэмжээний өгөгдлийг суулгаж байх үед асуудлууд гарахад хүргэж болох юм.</para>
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="configtuning-kernel-limits">
|
||
<title>Цөмийн хязгаарууд тохируулах нь</title>
|
||
|
||
<indexterm>
|
||
<primary>тохируулах нь</primary>
|
||
<secondary>цөмийн хязгаарууд</secondary>
|
||
</indexterm>
|
||
|
||
<sect2 id="file-process-limits">
|
||
<title>Файл/Процессийн хязгаарууд</title>
|
||
|
||
<sect3 id="kern-maxfiles">
|
||
<title><varname>kern.maxfiles</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>kern.maxfiles</varname></primary>
|
||
</indexterm>
|
||
|
||
<para><varname>kern.maxfiles</varname> нь таны системийн шаардлагуудаас
|
||
хамаараад дээшилж эсвэл доошилж болно. Энэ хувьсагч нь таны систем дээрх файлын
|
||
тодорхойлогчуудын (descriptor) хамгийн их тоог илэрхийлдэг. Файлын тодорхойлогчийн
|
||
хүснэгт дүүрсэн тохиолдолд <errorname>file: table is full</errorname>
|
||
буюу файл: хүснэгт дүүрсэн гэсэн мэдээлэл давтагдан системийн богино мэдээллийн буфферт
|
||
үзэгдэх бөгөөд үүнийг <command>dmesg</command> тушаал ашиглан үзэж болдог.</para>
|
||
|
||
<para>Нээлттэй файл, сокет эсвэл fifo болгон нэг файлын тодорхойлогч хэрэглэдэг.
|
||
Ажиллаж байгаа том-хэмжээний сервер зэрэгцээ ажиллаж байгаа үйлчилгээнүүдийн тоо болон
|
||
төрлөөс хамааран олон мянган файлын тодорхойлогчуудыг өлхөн шаардаж болох юм.</para>
|
||
|
||
<para>Хуучин FreeBSD хувилбаруудад <varname>kern.maxfiles</varname>-ийн
|
||
анхдагч утга нь таны цөмийн тохиргооны файлын <option>maxusers</option> тохируулгаас
|
||
гарсан байдаг. <varname>kern.maxfiles</varname> нь
|
||
<option>maxusers</option> утгатай пропорционалаар өсдөг. Өөрчлөн тохируулсан цөмийг
|
||
бүтээхдээ энэ цөмийн тохиргооны тохируулгыг өөрийн системийн хэрэглээний дагуу зааж өгөх нь
|
||
зүйтэй байдаг. Энэ тооноос хамаарч цөм өөрийн ихэнх урьдчилан-тодорхойлсон хязгааруудыг
|
||
өгдөг. Ажиллагаанд байгаа машин яг үнэндээ нэг удаа 256 хэрэглэгч зэрэг холбогдоогүй
|
||
байж болох боловч өндөр-хэмжээний вэб серверийнхтэй адил эх үүсвэрүүд хэрэгтэй байж болох
|
||
юм.</para>
|
||
|
||
<para><varname>kern.maxusers</varname> хувьсагч нь системд байгаа санах ойн
|
||
дээр үндэслэн ачаалах үед автоматаар тавигддаг бөгөөд ажиллаж байх явцад зөвхөн уншигдах
|
||
<varname>kern.maxusers</varname> sysctl хувьсагчийн утгыг шалгаж тогтоогдож
|
||
болох юм. Зарим сайтууд <varname>kern.maxusers</varname>-ийн илүү их эсвэл бага
|
||
утгуудыг шаардаж үүнийг ачаалагчаар тааруулагдахаар тохируулж болох юм; 64, 128, болон 256
|
||
утгууд нь ховор байдаг. Танд асар их тооны файлын тодорхойлогчууд хэрэгтэй л биш бол бид
|
||
256-аас дээш байлгахыг зөвлөдөггүй; өөрсдийн анхдагч утгуудад
|
||
<varname>kern.maxusers</varname>-р заагддаг, тааруулагдах боломжтой утгуудын
|
||
олонх нь тус тусдаа ачаалалтын үед эсвэл ажиллах явцад <filename>/boot/loader.conf</filename>-оор
|
||
эсвэл энэ баримтын хаа нэгтээ тайлбарласнаар өөрчлөгдөж болдог
|
||
(&man.loader.conf.5; гарын авлага эсвэл <filename>/boot/defaults/loader.conf</filename>
|
||
файлыг санаа авахын тулд үзнэ үү).</para>
|
||
|
||
<para>Хуучин хувилбаруудад хэрэв та <literal>maxusers</literal>-ийг
|
||
<literal>0</literal> гэж шууд зааж өгсөн бол систем автоматаар тааруулж өгдөг
|
||
<footnote><para>Автоматаар тааруулах алгоритм <literal>maxusers</literal>-ийг
|
||
систем дэх санах ойн хэмжээтэй адилаар хамгийн багадаа 32 ба хамгийн ихдээ 384 гэж зааж
|
||
өгдөг.</para></footnote>. Энэ тохируулгыг заахдаа ялангуяа та хэрэв X Цонхны Систем
|
||
ашиглаж байгаа эсвэл програм хангамж хөрвүүлж байгаа бол <literal>maxusers</literal>-ийг
|
||
хамгийн багадаа 4 гэж заахыг хүсэх болно. Шалтгаан нь гэвэл <literal>maxusers</literal>-ээр
|
||
заагдсан хамгийн чухал хүснэгт бол <literal>20 + 16 * maxusers</literal> гэж заагдсан
|
||
процессуудын хамгийн их тоо бөгөөд хэрэв та <literal>maxusers</literal>-ийг 1 гэж
|
||
заасан бол та 18 орчмыг нь ачаалах үед системийг эхлүүлэхэд болон 15 орчмыг нь таныг X Цонхны
|
||
Системийг эхлүүлэхэд магадгүй үүсэж та нийт зөвхөн 36 зэрэг процесстой байж болох юм.
|
||
Гарын авлагыг унших зэрэг хялбар бодлого хүртэл шүүх, шахсаныг задлах, болон
|
||
үзэхэд зориулж есөн процессийг эхлүүлдэг. <literal>maxusers</literal>-ийг 64 гэж заах нь
|
||
бараг л бүх хэрэгцээнд хангалттай байх 1044 зэрэг процесстой байж болохыг танд зөвшөөрнө.
|
||
Гэхдээ өөр програм эхлүүлэхээр оролдож байх үед эсвэл их олон тооны зэрэгцээ хэрэглэгчидтэй
|
||
сервер (<hostid role="fqdn">ftp.FreeBSD.org</hostid>-той адил) ажиллуулж
|
||
байхад айдас төрүүлэм <errortype>proc table full</errortype> буюу proc хүснэгт
|
||
дүүрсэн гэсэн алдаа хэрэв та харах юм бол үргэлж энэ тоог ихэсгэн цөмийг дахин бүтээж
|
||
болох юм.</para>
|
||
|
||
<note>
|
||
<para><literal>maxusers</literal> нь таны машин уруу нэвтрэх хэрэглэгчдийн
|
||
тоог <emphasis>хязгаарладаггүй</emphasis>. Энэ нь ердөө л таны систем дээр байж
|
||
болох хамгийн их хэрэглэгчийн тоо болон тэдгээр тус бүрийн ажиллуулах процессийн тооноос
|
||
хамааран төрөл бүрийн хүснэгтийн хэмжээнүүдийг боломжийн утгуудаар зааж өгдөг.</para>
|
||
</note>
|
||
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title><varname>kern.ipc.somaxconn</varname></title>
|
||
|
||
<indexterm>
|
||
<primary><varname>kern.ipc.somaxconn</varname></primary>
|
||
</indexterm>
|
||
|
||
<para><varname>kern.ipc.somaxconn</varname> sysctl хувьсагч нь
|
||
шинэ TCP холболтуудыг хүлээн авахад зориулсан сонсох дарааллын хэмжээг
|
||
хязгаарладаг. Анхдагч утга <literal>128</literal> нь ачаалал ихтэй вэб
|
||
серверийн орчин дахь шинэ холболтуудыг хүлээж авахад ерөнхийдөө хэтэрхий бага
|
||
юм. Тийм орчны хувьд энэ утгыг <literal>1024</literal> эсвэл түүнээс их
|
||
болгохыг зөвлөдөг. Үйлчилгээний дэмон нь өөрөө сонсох дарааллын хэмжээгээ
|
||
(өөрөөр хэлбэл &man.sendmail.8;, эсвэл <application>Apache</application>)
|
||
хязгаарлаж болох боловч ихэвчлэн өөрийн тохиргооны файлдаа дарааллын хэмжээг
|
||
тааруулах тохиргооны мөртэй байдаг. Их хэмжээний сонсох дарааллууд нь бас
|
||
Үйлчилгээг Зогсоох халдлагуудаас (<abbrev>DoS</abbrev>) илүү сайн зайлсхийж
|
||
ажилладаг.</para>
|
||
</sect3>
|
||
|
||
</sect2>
|
||
<sect2 id="nmbclusters">
|
||
<title>Сүлжээний хязгаарууд</title>
|
||
|
||
<para><literal>NMBCLUSTERS</literal> цөмийн тохиргооны тохируулга нь
|
||
системд байгаа сүлжээний Mbuf-уудын тоог зааж өгдөг. Бага тооны Mbuf-уудтай
|
||
трафикийн ачаалал ихтэй сервер &os;-ийн чадварт саад болдог. Кластер бүр
|
||
ойролцоогоор 2 K санах ойг илэрхийлдэг, тийм болохоор 1024 гэсэн
|
||
утга нь сүлжээний буферуудад зориулж хадгалсан 2 мегабайт цөмийн санах ойг
|
||
илэрхийлнэ. Хичнээн хэрэгтэйг олохын тулд хялбар тооцоо хийж болно.
|
||
Хэрэв та хамгийн ихдээ 1000 зэрэгцээ холболтуудтай, холболт бүр нь 16 K
|
||
хүлээн авах болон 16 K илгээх буферийг иддэг вэб сервертэй бол
|
||
танд ойролцоогоор вэб серверийг хангахын тулд 32 MB хэмжээтэй тэнцэх
|
||
сүлжээний буферууд хэрэгтэй болно. Практикаар ер нь 2-оор үржүүлдэг,
|
||
тэгэхээр 2x32 MB / 2 KB =
|
||
64 MB / 2 kB = 32768 болох юм.
|
||
Бид их санах ойтой машинуудын хувьд утгуудыг 4096-аас 32768-ын хооронд байлгахыг
|
||
зөвлөдөг. Энэ параметрийн хувьд өндөр утгыг ямар ч нөхцөлд тавьж болохгүй, учир нь
|
||
энэ нь ачаалах үеийн сүйрэлд хүргэж болно. &man.netstat.1;-д
|
||
<option>-m</option> тохируулгыг ашиглаж сүлжээний кластерийн ашиглалтыг
|
||
ажиглаж болох юм.</para>
|
||
|
||
<para><varname>kern.ipc.nmbclusters</varname> ачаалалтын тааруулах
|
||
боломжтой тохируулга нь ачаалах үед үүнийг тааруулахад хэрэглэгдэх ёстой.
|
||
Зөвхөн &os;-ийн хуучин хувилбарууд <literal>NMBCLUSTERS</literal>
|
||
цөмийн &man.config.8; тохируулгыг ашиглахыг танаас шаарддаг.</para>
|
||
|
||
<para>&man.sendfile.2; системийн дуудлагыг өргөнөөр ашигладаг завгүй
|
||
серверүүдийн хувьд <literal>NSFBUFS</literal> цөмийн тохиргооны тохируулгын
|
||
тусламжтай эсвэл түүний утгыг <filename>/boot/loader.conf</filename>-д зааж
|
||
&man.sendfile.2; буферуудын тоог ихэсгэх шаардлагатай байж болох юм
|
||
(дэлгэрэнгүйг &man.loader.8;-с үзнэ үү). Процессууд <literal>sfbufa</literal>
|
||
төлөвт харагдах нь энэ параметрийг тааруулах хэрэгтэйг ихэвчлэн заадаг.
|
||
<varname>kern.ipc.nsfbufs</varname> sysctl хувьсагч нь цөмөөр
|
||
тохируулагдсан хувьсагч дахь зөвхөн уншигддаг гялбаа юм. Энэ параметр нь
|
||
<varname>kern.maxusers</varname>-ийн хэмжээгээр тааруулагддаг,
|
||
гэхдээ үүнийг түүний дагуу тохируурах шаардлагатай байж болох юм.</para>
|
||
|
||
<important>
|
||
<para>Сокет блок-хийгддэггүй гэж тэмдэглэгдсэн ч гэсэн блок-хийгддэггүй
|
||
сокет дээр &man.sendfile.2;-ийг дуудах нь хангалттай хэмжээний
|
||
<literal>struct sf_buf</literal>-уудыг бий болготол
|
||
&man.sendfile.2; дуудлага блок хийгдэхэд хүргэж болох юм.</para>
|
||
</important>
|
||
|
||
<sect3>
|
||
<title><varname>net.inet.ip.portrange.*</varname></title>
|
||
|
||
<indexterm>
|
||
<primary>net.inet.ip.portrange.*</primary>
|
||
</indexterm>
|
||
|
||
<para><varname>net.inet.ip.portrange.*</varname> sysctl хувьсагчууд нь
|
||
TCP болон UDP сокетуудад автоматаар уягдах портын дугаарын хүрээнүүдийг хянадаг.
|
||
Гурван хүрээ байдаг: доод хүрээ, анхдагч хүрээ, болон өндөр хүрээ. Ихэнх сүлжээний
|
||
програмууд нь анхдагчаар 1024 болон 5000 байдаг
|
||
<varname>net.inet.ip.portrange.first</varname> болон
|
||
<varname>net.inet.ip.portrange.last</varname> хувьсагчуудаар хянагддаг
|
||
анхдагч хүрээг ашигладаг. Уягдах портын хүрээнүүд гарах холболтуудад ашиглагддаг
|
||
бөгөөд зарим тохиолдолд систем дэх портууд дуусч болох юм. Энэ нь ихэвчлэн
|
||
таныг ачаалал ихтэй вэб прокси ашиглаж байхад гардаг. Ихэвчлэн ирж байгаа холболтуудыг
|
||
хүлээн авдаг ердийн вэб сервер эсвэл захидал дамжуулагч зэрэг хязгаарлагдмал тооны гарах
|
||
холболтуудтай серверүүдийг ажиллуулж байхад портын хүрээ нь асуудал биш юм.
|
||
Таны порт дуусаж болох тийм тохиолдлуудад
|
||
<varname>net.inet.ip.portrange.last</varname> хувьсагчийг даруухнаар
|
||
ихэсгэхийг зөвлөдөг. <literal>10000</literal>, <literal>20000</literal> эсвэл
|
||
<literal>30000</literal> нь боломжийн утгууд юм. Портын хүрээг өөрчилж
|
||
байхдаа галт ханын нөлөөллүүдийг бас бодолцох хэрэгтэй. Зарим галт хана
|
||
их хэмжээний портуудыг хааж болох бөгөөд (ихэнхдээ бага дугаарын портууд)
|
||
систем өндөр дугаарын портуудыг гарах холболтууддаа ашигладгийг бодолцох ёстой —
|
||
ийм учраас <varname>net.inet.ip.portrange.first</varname>-ийг
|
||
багасгахыг зөвлөдөггүй.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>TCP хурд сааруулагч бүтээгдэхүүнүүд</title>
|
||
|
||
<indexterm>
|
||
<primary>TCP хурд сааруулагч бүтээгдэхүүний хязгаарлалт</primary>
|
||
<secondary><varname>net.inet.tcp.inflight.enable</varname></secondary>
|
||
</indexterm>
|
||
|
||
<para>TCP хурд сааруулагч бүтээгдэхүүний хязгаарлалт нь NetBSD дэх
|
||
TCP/Vegas-тай адилхан юм. <varname>net.inet.tcp.inflight.enable</varname>
|
||
sysctl хувьсагчийг <literal>1</literal> болгон тохируулж үүнийг идэвхжүүлдэг.
|
||
Систем холболт бүрийн хувьд хурд сааруулагч бүтээгдэхүүнийг тооцоолохыг оролддог
|
||
бөгөөд сүлжээн дэх дараалалд оруулах өгөгдлийн хэмжээг хамгийн боломжийн нэвтрүүлэх
|
||
чадамжийг байнга барьж байх тэр хэмжээнд хүргэж хязгаарладаг.</para>
|
||
|
||
<para>Хэрэв та өгөгдлийг модемууд, Гигабит Ethernet, эсвэл бүр өндөр
|
||
хурдны WAN холболтуудаар (эсвэл дурын өндөр хурд сааруулагч бүтээгдэхүүнтэй холболт)
|
||
дамжуулж байгаа бол ялангуяа та бас цонх өсгөлтийг ашиглаж байгаа эсвэл том илгээх цонх
|
||
тохируулсан бол энэ боломж нь ашигтай юм. Хэрэв та энэ тохируулгыг идэвхжүүлэх бол
|
||
бас <varname>net.inet.tcp.inflight.debug</varname>-ийг
|
||
<literal>0</literal> (дибаг хийхийг болиулах) болгож тохируулах хэрэгтэй бөгөөд
|
||
үйлдвэрлэлийн ашиглалтад <varname>net.inet.tcp.inflight.min</varname>-ийг
|
||
хамгийн багаар бодоход <literal>6144</literal> болгох нь ашигтай байж болох юм.
|
||
Гэхдээ хамгийн бага тоог өндөр болгох нь холболтоос хамааран хурд хязгаарлалтыг
|
||
идэвхтэйгээр болиулж болохыг санах хэрэгтэй. Хязгаарлах боломж нь дундын чиглүүлэлтийн
|
||
үед бүтээгдсэн өгөгдлийн хэмжээг багасгах бөгөөд пакетийн дарааллуудыг сольж локал
|
||
хостын интерфэйс дэх дараалал дээр бүтээгдсэн өгөгдийн хэмжээг мөн багасгадаг.
|
||
Дараалалд орсон цөөн тооны пакетуудтай, ялангуяа удаан модемоор дамжсан интерактив
|
||
холболтууд нь бага <emphasis>Round Trip Times буюу Эргэн Аялах Хугацаатайгаар</emphasis>
|
||
ажиллаж бас чаддаг. Гэхдээ энэ боломж нь зөвхөн өгөгдөл дамжуулалтад (илгээх / сервер талын)
|
||
нөлөөлдгийг санах хэрэгтэй. Энэ нь өгөгдөл хүлээн авахад нөлөө үзүүлэхгүй (татаж авах).
|
||
</para>
|
||
|
||
<para><varname>net.inet.tcp.inflight.stab</varname>-ийг тааруулахыг
|
||
<emphasis>зөвлөдөггүй</emphasis>. Энэ параметр нь хурд сааруулах бүтээгдэхүүний
|
||
цонхны тооцоололд нэмсэн 2 хамгийн их пакетийг илэрхийлж анхдагчаар 20 байдаг.
|
||
Энэ алгоритмийг тогтворжуулах болон өөрчлөгдөж байгаа нөхцлүүдэд хариу өгөх боломжийг
|
||
сайжруулахад нэмэлт цонх шаардлагатай боловч энэ нь бас удаан холболт дээр
|
||
ping хийх хугацаа ихэсгэхэд хүргэдэг (гэхдээ таныг энэ (inflight) алгоритмийг
|
||
ашиглаагүй байхад гарсан үр дүнгээс хамаагүй бага хэвээр л байна).
|
||
Ийм тохиолдолд энэ параметрийг 15, 10, эсвэл 5 болгон багасгахыг хүсэж болох юм;
|
||
мөн хүссэн үр дүндээ хүрэхийн тулд
|
||
<varname>net.inet.tcp.inflight.min</varname> хувьсагчийг
|
||
(жишээ нь 3500 болгож) бас багасгаж болох юм. Эдгээр параметрүүдийг багасгах нь
|
||
хамгийн сүүлд авах арга хэмжээ байх ёстой юм.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Виртуал санах ой</title>
|
||
|
||
<sect3>
|
||
<title><varname>kern.maxvnodes</varname></title>
|
||
|
||
<para>vnode нь файл эсвэл сангийн дотоод дүрслэл юм. Тэгэхээр үйлдлийн
|
||
системд байх vnode-ийн тоог ихэсгэх нь диск I/O-г багасгадаг. Энэ нь ихэвчлэн
|
||
үйлдлийн системээр зохицуулагддаг бөгөөд өөрчлөх хэрэггүй байдаг.
|
||
Зарим тохиолдолд диск I/O нь гол асуудал учруулж системд vnode байхгүй болж
|
||
байвал энэ тохируулгыг ихэсгэх хэрэгтэй болно. Идэвхгүй болон чөлөөтэй RAM-ийн
|
||
хэмжээг бодолцох шаардлагатай.</para>
|
||
|
||
<para>Тухайн үед ашиглагдаж байгаа vnode-уудыг үзэхдээ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl vfs.numvnodes</userinput>
|
||
vfs.numvnodes: 91349</screen>
|
||
|
||
<para>Хамгийн их vnode-уудыг үзэхдээ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl kern.maxvnodes</userinput>
|
||
kern.maxvnodes: 100000</screen>
|
||
|
||
<para>Хэрэв тухайн үеийн vnode ашиглалт хамгийн их хэмжээ уруу бараг дөхөж
|
||
байвал <varname>kern.maxvnodes</varname>-ийг 1,000-аар ихэсгэх нь
|
||
зүйтэй байж болох юм. <varname>vfs.numvnodes</varname>-ийн тоон
|
||
дээр бас анхаарлаа хандуулаарай. Хэрэв энэ нь дахин хамгийн их уруугаа дээшилбэл
|
||
<varname>kern.maxvnodes</varname>-ийг цааш ихэсгэх шаардлагатай болно.
|
||
&man.top.1;-ийн гаргасан дүнгээс таны санах ойн өөрчлөлт харагдах ёстой.
|
||
Түрүүнийхээс илүү санах ой идэвхтэй байх ёстой.</para>
|
||
</sect3>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="adding-swap-space">
|
||
<title>Swap зай нэмэх нь</title>
|
||
|
||
<para>Та яаж ч сайн төлөвлөсөн байлаа гэсэн заримдаа систем таны бодсоноор
|
||
ажилладагүй. Хэрэв танд swap зай илүү хэрэгцээтэйг мэдвэл та үүнийг
|
||
амархнаар нэмж болно. Та гурван аргаар swap зайг ихэсгэж болно:
|
||
шинэ хатуу диск нэмэх, NFS-ийн тусламжтай swap идэвхжүүлэх болон
|
||
байгаа хуваалт дээр swap файл үүсгэж ихэсгэж болно.</para>
|
||
|
||
<para>Swap зайг хэрхэн шифрлэх, ямар тохируулгууд байгаа болон яагаад
|
||
хийх ёстой талаар гарын авлагын <xref linkend="swap-encrypting">
|
||
хуудсанд хандана уу.</para>
|
||
|
||
<sect2 id="new-drive-swap">
|
||
<title>Шинэ диск дээрх swap</title>
|
||
|
||
<para>Мэдээж swap нэмэх хамгийн шилдэг арга нь энэ боломжийг шалтаг болгон
|
||
ашиглаж өөр хатуу диск нэмэх явдал юм. Ер нь та үргэлж өөр хатуу диск ашиглаж
|
||
болно л доо. Хэрэв та ингэх бол өөрийн swap-аа хэрхэн хамгийн шилдгээр
|
||
зохион байгуулж болох талаар дурдсан зарим зөвлөгөөнүүдийн тухай Гарын авлагын
|
||
<xref linkend="configtuning-initial"> дахь swap зайн хэлэлцүүлгээс
|
||
дахин уншаарай.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="nfs-swap">
|
||
<title>NFS-ийн тусламжтай swap хийх нь</title>
|
||
|
||
<para>NFS-ийн тусламжтай swap хийхийг зөвхөн swap хийх локал хатуу диск
|
||
танд байхгүй үед л зөвлөдөг; NFS swap хийх нь байгаа сүлжээний хурдаар
|
||
хязгаарлагддаг бөгөөд NFS серверт нэмэлт ачаалал үзүүлдэг.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="create-swapfile">
|
||
<title>Swap файлууд</title>
|
||
|
||
<para>Та swap файл болгон ашиглахаар заасан хэмжээтэй файлыг үүсгэж болно.
|
||
Энд байгаа жишээн дээр бид <filename>/usr/swap0</filename> гэсэн
|
||
нэртэй 64MB файлыг ашиглана. Мэдээж та хүссэн ямар ч нэрээ ашиглаж
|
||
болно.</para>
|
||
|
||
<example>
|
||
<title>Swap файл &os; дээр үүсгэх нь</title>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Таны цөмийн тохиргоонд санах ойн дискний драйвер (&man.md.4;)
|
||
орсон эсэхийг шалгаарай. Энэ нь <filename>GENERIC</filename>
|
||
цөмд анхдагчаар орсон байдаг.</para>
|
||
|
||
<programlisting>device md # Memory "disks"</programlisting>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Swap файл (<filename>/usr/swap0</filename>) үүсгэнэ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Зөв зөвшөөрлүүдийг (<filename>/usr/swap0</filename>-д) нээж тохируулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><filename>/etc/rc.conf</filename>-д swap файлыг идэвхжүүлнэ:</para>
|
||
|
||
<programlisting>swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.</programlisting>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
|
||
<para>Машиныг дахин эхлүүлнэ эсвэл swap файлыг шууд идэвхжүүлэхийн тулд дараах тушаалыг ажиллуулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0</userinput></screen>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
</example>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="acpi-overview">
|
||
<sect1info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Хитэн</firstname>
|
||
<surname>Пандиа</surname>
|
||
<contrib>Бичсэн </contrib>
|
||
</author>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect1info>
|
||
|
||
<title>Тэжээл болон Эх үүсвэрийн Удирдлага</title>
|
||
|
||
<para>Тоног төхөөрөмжийн эх үүсвэрүүдийг үр ашигтай ашиглах нь чухал юм.
|
||
<acronym>ACPI</acronym> танилцуулагдахаас өмнө системийн тэжээлийн
|
||
ашиглалт болон дулааны шинж чанаруудыг удирдахад үйлдлийн системүүдийн хувьд
|
||
хэцүү, уян хатан биш байсан. Тоног төхөөрөмж нь <acronym>BIOS</acronym>-оор
|
||
удирдагддаг байсан болохоор тэжээлийн удирдлагын тохиргоонуудын харагдац бага бөгөөд
|
||
хэрэглэгчид хянах боломж бага байсан юм.Зарим нэгэн хязгаарлагдмал тохиргооны
|
||
боломж <emphasis>Advanced Power Management буюу Тэжээлийн Дэвшилттэй Удирдлага (APM)</emphasis>
|
||
интерфэйсээр хийгдэх боломжтой байсан.
|
||
Тэжээл болон Эх үүсвэрийн Удирдлага нь орчин үеийн үйлдлийн
|
||
системийн түлхүүр хэсгүүдийн нэг юм. Жишээ нь таны системийн хэм гэнэт нэмэгдэх тохиолдолд
|
||
системийн хязгааруудыг үйлдлийн систем монитор хийхийг (магадгүй танд мэдээлэхийг)
|
||
хүсэж болох юм.</para>
|
||
|
||
<para>&os; Гарын авлагын энэ хэсэгт бид <acronym>ACPI</acronym>-ийн талаар
|
||
нэвтэрхий мэдээллээр хангах болно. Цааш нэмж уншихад зориулсан мэдээллүүдийг
|
||
төгсгөл хэсэгт оруулсан байгаа.</para>
|
||
|
||
<sect2 id="acpi-intro">
|
||
<title>ACPI гэж юу вэ?</title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
</indexterm>
|
||
|
||
<indexterm>
|
||
<primary>APM</primary>
|
||
</indexterm>
|
||
|
||
<para>Advanced Configuration and Power Interface буюу Дэвшилттэй Тохиргоо
|
||
ба Тэжээлийн Интерфэйс (<acronym>ACPI</acronym>) нь тоног төхөөрөмжийн эх үүсвэрүүд
|
||
болон тэжээлийн удирдлагад (эндээс нэр гарсан) зориулсан стандарт интерфэйсийг хангах зорилгоор
|
||
үйлдвэрлэгчдийн холбооноос бичин гаргасан стандарт юм.
|
||
Энэ нь <emphasis>Үйлдлийн Системээр заалгасан тохиргоо ба Тэжээлийн Удирдлагын</emphasis>
|
||
түлхүүр элемент юм, өөрөөр хэлбэл: энэ нь илүү хяналт болон уян хатан байдлыг үйлдлийн системд
|
||
(<acronym>OS</acronym>) хангадаг. <acronym>ACPI</acronym>-г танилцуулахаас
|
||
өмнө одоогийн Залгаад Тоглуулах интерфэйсүүдийн хязгааруудыг орчин үеийн системүүд
|
||
<quote>сунгасан</quote> юм. <acronym>ACPI</acronym> нь <acronym>APM</acronym>-ийн
|
||
(Advanced Power Management буюу Тэжээлийн Дэвшилтэт Удирдлага) шууд залгамжлагч
|
||
юм.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="acpi-old-spec">
|
||
<title>Тэжээлийн Дэвшилтэт Удирдлагын (APM) сул талууд</title>
|
||
|
||
<para><emphasis>Тэжээлийн Дэвшилтэт Удирдлага (APM)</emphasis> боломж нь
|
||
системийн тэжээлийн ашиглалтыг түүний ажиллагаан дээр үндэслэн хянадаг.
|
||
APM BIOS нь (систем) үйлдвэрлэгчээс хангагддаг бөгөөд тоног төхөөрөмжийн тавцан
|
||
бүрийн хувьд онцлог байдаг. OS дахь APM драйвер нь тэжээлийн түвшингүүдийн
|
||
удирдлагыг зөвшөөрдөг <emphasis>APM Програм хангамжийн Интерфэйс</emphasis>
|
||
уруу хандах хандалтыг зуучилж өгдөг. APM-ийг 2000 онд болон тэрнээс өмнө үйлдвэрлэсэн
|
||
системүүдэд ашиглах ёстой хэвээр байдаг.</para>
|
||
|
||
<para>APM-д дөрвөн үндсэн асуудал байдаг. Нэгдүгээрт, тэжээлийн удирдлага
|
||
(үйлдвэрлэгчийн онцлогтой) BIOS-оор хийгддэг бөгөөд OS нь энэ талын ямар ч
|
||
мэдлэг байдаггүй. Үүний нэг жишээ нь хэрэглэгч хатуу дискний сул зогсох хугацааг
|
||
APM BIOS дээр зааж өгөөд тэр нь зааснаас илүү гарвал BIOS хатуу дискийг OS-ийн
|
||
зөвшөөрөлгүйгээр эргүүлдэг. Хоёрдугаарт, APM-ийн логик BIOS-д суулгагдсан байдаг
|
||
бөгөөд OS-ийн эрх хэмжээнээс гадна ажилладаг. Энэ нь хэрэглэгчид өөрсдийн
|
||
APM BIOS-ийг зөвхөн шинэ хувилбараар нь ROM уруу нь шарж асуудлуудыг
|
||
засварлах боломжтой гэсэн үг юм; энэ нь амжилтгүй болбол системийг дахин
|
||
сэргээгдэхгүй төлөвт орхиж болох боломжтой маш аюултай процедур юм.
|
||
Гуравдугаарт, APM нь үйлдвэрлэгчийн онцлогтой технологи бөгөөд энэ нь
|
||
маш олон адил төсөөтэй байдал (чармайлтуудын хуулбар) болон нэг үйлдвэрлэгчийн
|
||
BIOS-д олдсон алдаанууд бусад үйлдвэрлэгчдийн хувьд шийдэгдээгүй байж болно гэсэн үг
|
||
юм. Хамгийн сүүлд гэхдээ төгсгөлийнх биш, APM BIOS нь тэжээлийн маш нарийн
|
||
бодлого эсвэл машины зориулалтад зориулагдан маш сайн тохируулагдах тийм шийдлийг
|
||
хийхэд хангалттай зайгүй байдаг.</para>
|
||
|
||
<para><emphasis>Залгаад Тоглуулах BIOS (PNPBIOS)</emphasis> нь
|
||
олон тохиолдолд найдвартай биш байсан юм. PNPBIOS нь 16-битийн технологи,
|
||
тийм болохоор OS нь PNPBIOS аргуудтай холбогдохдоо 16-битийн эмуляц
|
||
хэрэглэх шаардлагатай болдог.</para>
|
||
|
||
<para>&os;-ийн <acronym>APM</acronym> драйвер &man.apm.4; гарын авлагын
|
||
хуудсанд баримтжуулагдсан байдаг.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="acpi-config">
|
||
<title><acronym>ACPI</acronym>-г тохируулах нь</title>
|
||
|
||
<para><filename>acpi.ko</filename> драйвер нь системийг эхлүүлэх үед
|
||
&man.loader.8;-оор анхдагчаар ачаалагддаг бөгөөд цөмд оруулж
|
||
<emphasis>хөрвүүлэгдэх</emphasis> ёсгүй. Үүний цаадах шалтгаан нь
|
||
модулиудтай ажиллах хялбар байдаг, өөрөөр хэлбэл цөмийг дахин хөрвүүлэлгүйгээр
|
||
өөр <filename>acpi.ko</filename> уруу шилждэг. Энэ нь тест хийлтийг
|
||
илүү амархан болгодог давуу талтай юм. Нөгөө нэг шалтгаан нь
|
||
системийг ажиллуулж дууссаны дараа <acronym>ACPI</acronym>-г ажиллуулахад
|
||
ихэвчлэн сайн ажилладаггүй.
|
||
Хэрэв та асуудлуудтай учирч байгаа бол <acronym>ACPI</acronym>-г бүхэлд нь хаах хэрэгтэй.
|
||
Энэ драйверийг ачаалсны дараа буулгаж болиулж чаддаггүй, болдоггүй, учир нь
|
||
системийн шугам үүнийг төрөл бүрийн тоног төхөөрөмжүүдийн харилцан үйлдлүүдэд
|
||
хэрэглэдэг. <acronym>ACPI</acronym>-г <filename>/boot/loader.conf</filename> файлд юм уу
|
||
эсвэл &man.loader.8; хүлээх мөрөнд <literal>hint.acpi.0.disabled="1"</literal> гэж тохируулан
|
||
хааж болдог.</para>
|
||
|
||
<note><para><acronym>ACPI</acronym> болон <acronym>APM</acronym> нь цуг байж болохгүй
|
||
бөгөөд салангид хэрэглэгдэх ёстой. Сүүлд ачаалагдах драйвер нь хэрэв нөгөө нэгийг ажиллаж байгааг
|
||
мэдвэл ажиллагаагаа дуусгавар болгодог.</para></note>
|
||
|
||
<para><acronym>ACPI</acronym> нь &man.acpiconf.8;-ийн
|
||
<option>-s</option> туг болон <literal>1-5</literal> тохируулгын тусламжтайгаар
|
||
системийг унтах горим шилжүүлэхэд хэрэглэгдэж болно. Ихэнх хэрэглэгчдэд зөвхөн
|
||
<literal>1</literal> эсвэл <literal>3</literal> (RAM руу түр зогсоох)
|
||
хэрэгтэй байдаг. <literal>5</literal> тохируулга нь
|
||
дараах тушаалтай нэг ёсондоо адилыг гүйцэтгэнэ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>halt -p</userinput></screen>
|
||
|
||
<para>Бусад тохируулгууд &man.sysctl.8;-ийн тусламжтай байдаг. Дэлгэрэнгүй мэдээллийн талаар &man.acpi.4; болон
|
||
&man.acpiconf.8; гарын авлагын хуудаснуудаас шалгана уу.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="ACPI-debug">
|
||
<sect1info>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Нэйт</firstname>
|
||
<surname>Лоосон</surname>
|
||
<contrib>Бичсэн </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Питер</firstname>
|
||
<surname>Шульц</surname>
|
||
<contrib>Хувь нэмэрлэцгээсэн </contrib>
|
||
</author>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
<!-- Nov 2006 -->
|
||
</author>
|
||
</authorgroup>
|
||
</sect1info>
|
||
|
||
<title>&os;-ийн <acronym>ACPI</acronym>-г ашиглах нь ба дибаг хийх нь</title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>асуудлууд</secondary>
|
||
</indexterm>
|
||
|
||
<para><acronym>ACPI</acronym> нь төхөөрөмжүүдийг илрүүлэх, тэжээлийн ашиглалтыг
|
||
удирдах болон урьд нь <acronym>BIOS</acronym>-оор удирдагддаг байсан төрөл
|
||
бүрийн тоног төхөөрөмжид хандах стандартчилагдсан хандалтыг хангадаг цоо шинэ арга
|
||
юм. Бүх системүүд дээр <acronym>ACPI</acronym>-г ажиллуулах тал дээр
|
||
дэвшил хийгдсэн бөгөөд гэхдээ зарим эх хавтангуудын
|
||
<firstterm><acronym>ACPI</acronym> Машины Хэл</firstterm>ний
|
||
(<acronym>AML</acronym>) байткод дахь алдаанууд, &os;-ийн цөмийн дэд
|
||
системүүдийн бүрэн бүтэн бус байдал болон &intel; <acronym>ACPI-CA</acronym>
|
||
тайлбарлагч дахь алдаанууд илэрсээр байна.</para>
|
||
|
||
<para>Энэ баримт нь таныг &os;-ийн <acronym>ACPI</acronym> дэмжигчдэд тусалж
|
||
таны ажигласан асуудлуудын үндсэн учир шалтгааныг таних, дибаг хийх болон шийдлийг
|
||
хөгжүүлэхэд туслах зорилготой юм. Үүнийг уншиж байгаад талархлаа илэрхийлэхийн
|
||
ялдамд бид таны системийн асуудлуудыг шийдэж чадна гэдэгт найдаж байна.</para>
|
||
|
||
<sect2 id="ACPI-submitdebug">
|
||
<title>Дибаг мэдээллийг илгээх нь</title>
|
||
|
||
<note>
|
||
<para>Асуудлыг илгээхээсээ өмнө та хамгийн сүүлийн үеийн <acronym>BIOS</acronym>-ийн
|
||
хувилбар болон хэрэв байх юм бол суулгагдсан хянагчийн хамгийн сүүлийн firmware хувилбар
|
||
ажиллуулж байгаа эсэхээ шалгаарай.</para>
|
||
</note>
|
||
|
||
<para>Асуудлыг шууд илгээхийг хүсэж байгаачууд дараах мэдээллийг
|
||
<ulink url="mailto:freebsd-acpi@FreeBSD.org">
|
||
freebsd-acpi@FreeBSD.org</ulink> уруу илгээнэ үү:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Системийн төрөл болон загварыг оролцуулан алдааг гаргаж байгаа зүйлийн хамтаар
|
||
алдаатай ажиллагааг тайлбарласан мэдээлэл. Мөн хэрэв алдаа таны хувьд шинэ бол
|
||
яг хэзээ гарч эхэлснийг аль болох тодорхой гаргаарай.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><command>boot -v</command> ажилласны дараах &man.dmesg.8;-ийн
|
||
гаралтыг алдааг шалгаж байхад таны үүсгэсэн алдааны мэдээллүүдийн
|
||
хамтаар.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Хэрэв <acronym>ACPI</acronym>-г хаасан байхад асуудлыг шийдэж байвал
|
||
тийм байх үе дэх <command>boot -v</command>-ийн гаралт.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><command>sysctl hw.acpi</command>-ийн гаралт. Энэ нь таны
|
||
систем ямар ямар боломжуудыг санал болгож байгааг мэдэх бас нэг сайн
|
||
арга юм.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Таны <firstterm><acronym>ACPI</acronym> Эх Хэл</firstterm>
|
||
(<acronym>ASL</acronym>) байх <acronym>URL</acronym> хаяг.
|
||
<acronym>ASL</acronym> нь маш том байж болох учир шууд
|
||
<emphasis>битгий</emphasis> жагсаалт уруу илгээгээрэй.
|
||
Өөрийн <acronym>ASL</acronym>-ийн хуулбарыг энэ тушаалыг
|
||
ашиглаж үүсгээрэй:</para>
|
||
|
||
<screen>&prompt.root; <userinput>acpidump -dt > <replaceable>name</replaceable>-<replaceable>system</replaceable>.asl</userinput></screen>
|
||
|
||
<para>(Өөрийн нэвтрэх нэрийг
|
||
<replaceable>name</replaceable>-ийн оронд болон
|
||
үйлдвэрлэгч/загварыг <replaceable>system</replaceable>-ийн
|
||
оронд солиорой. Жишээ нь:
|
||
<filename>njl-FooCo6000.asl</filename>)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Ихэнх хөгжүүлэгчид &a.current; үзэж байдаг, гэхдээ асуудлуудаа
|
||
харагдуулахын тулд &a.acpi.name; уруу илгээгээрэй. Бид бүгд хаа нэгтээ
|
||
өөр өөрийн үндсэн ажилтай учир тэвчээртэй байна уу. Хэрэв таны алдаа
|
||
шууд илэрхий биш байх юм бол магадгүй бид таныг &man.send-pr.1;-ийн
|
||
тусламжтай <acronym>PR</acronym> илгээхийг асуух байх.
|
||
<acronym>PR</acronym> оруулахдаа дээр хүссэний адил мэдээллээ
|
||
оруулна уу. Энэ нь асуудлыг мөшгөж шийдвэрлэхэд бидэнд туслах юм.
|
||
Бид <acronym>PR</acronym>-уудыг мэдээлэх механизмын зорилгоор биш
|
||
байгаа асуудлуудыг санаж байх зорилгоор ашигладаг болохоор эхлээд
|
||
&a.acpi.name; уруу захидал илгээлгүйгээр <acronym>PR</acronym>
|
||
битгий илгээгээрэй. Магадгүй таны асуудлыг урд нь өөр хэн нэгэн мэдээлсэн
|
||
байж болох юм.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="ACPI-background">
|
||
<title>Оршил</title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
</indexterm>
|
||
|
||
<para><acronym>ACPI</acronym> нь ia32 (x86), ia64 (Itanium) болон
|
||
amd64 (AMD) архитектуруудтай нийцтэй орчин үеийн бүх компьютерт байдаг.
|
||
Бүрэн стандарт нь <acronym>CPU</acronym>-ны ажиллагааны удирдлага,
|
||
тэжээлийн онгоцуудын хяналт, дулааны бүсүүд, төрөл бүрийн батарейний системүүд,
|
||
суулгагдсан хянагчууд болон шугамын жагсаалт зэрэг олон боломжуудтай.
|
||
Ихэнх системүүд нь бүрэн стандартыг бүгдийг хангасан шийдэлтэй байдаггүй.
|
||
Жишээ нь зөөврийн компьютер хөргөх болон бас батарейний удирдлагын дэмжлэгтэй
|
||
байхад ширээний систем зөвхөн шугамын жагсаалтын хэсгийн шийдлийг агуулсан байдаг.
|
||
Зөөврийн компьютерууд нь бас өөр өөрийн ярвигтай асуудлуудыг агуулсан түр зогсоох болон
|
||
үргэлжлүүлэх боломжуудыг агуулдаг.</para>
|
||
|
||
<para><acronym>ACPI</acronym>-нийцтэй систем нь төрөл бүрийн хэсгүүдтэй байдаг.
|
||
<acronym>BIOS</acronym> болон бичил схемийн үйлдвэрлэгчид
|
||
<acronym>APIC</acronym> зураг (<acronym>SMP</acronym>-д ашиглагддаг),
|
||
тохиргооны регистрүүд болон хялбар тохиргооны утгууд зэрэг зүйлсүүдийг заадаг
|
||
төрөл бүрийн тогтмол хүснэгтүүдийг (өөрөөр хэлбэл
|
||
<acronym>FADT</acronym>) санах ойд хангаж өгдөг. Мөн төхөөрөмжүүд болон
|
||
аргуудын мод хэлбэрийн нэрийн талбарыг заадаг байткодын хүснэгтээр
|
||
(<firstterm>Differentiated System Description Table буюу Системийн
|
||
Ялгаварласан Тайлбарын Хүснэгт </firstterm><acronym>DSDT</acronym>)
|
||
бас хангадаг.</para>
|
||
|
||
<para><acronym>ACPI</acronym> драйвер нь тогтмол хүснэгтүүдийг задлан ялгал
|
||
хийх, байткодын тайлбарлагчийг шийдэх болон <acronym>ACPI</acronym> дэд
|
||
системийн мэдээллийг хүлээн авахаар төхөөрөмжүүдийн драйверууд болон цөмийг
|
||
өөрчлөх ёстой. &os;-ийн хувьд &intel; нь Линукс болон NetBSD-тэй хуваалцан
|
||
хэрэглэгддэг тайлбарлагчаар хангадаг. <acronym>ACPI-CA</acronym> эх кодын
|
||
зам нь
|
||
<filename class="directory">src/sys/contrib/dev/acpica</filename>.
|
||
<acronym>ACPI-CA</acronym>-г &os; дээр ажиллуулах тэр цавуу код нь
|
||
<filename>src/sys/dev/acpica/Osd</filename> байршилд байдаг.
|
||
Эцэст нь төрөл бүрийн <acronym>ACPI</acronym> төхөөрөмжүүдийн драйверууд
|
||
<filename class="directory">src/sys/dev/acpica</filename> байршлаас
|
||
олддог.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="ACPI-comprob">
|
||
<title>Нийтлэг асуудлууд</title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>асуудлууд</secondary>
|
||
</indexterm>
|
||
|
||
<para><acronym>ACPI</acronym> зөв ажиллахын тулд бүх хэсгүүд бас
|
||
зөв ажилласан байх ёстой. Энд зарим нэг нийтлэг асуудлуудыг илэрч байгаа
|
||
давтамжийн дарааллаар зарим нэг тойрон гарах замууд болон засваруудтайгаар
|
||
нь дурдъя.</para>
|
||
|
||
<sect3>
|
||
<title>Хулганы асуудлууд</title>
|
||
|
||
<para>Зарим тохиолдолд түр зогсоох үйлдэл хийгдсэний дараа үргэлжлүүлэхэд
|
||
хулганыг ажиллахгүй болгодог. Мэдэгдэж байгаа тойрон гарах арга зам нь
|
||
<literal>hint.psm.0.flags="0x3000"</literal> мөрийг
|
||
<filename>/boot/loader.conf</filename> файлд нэмэх явдал
|
||
юм. Хэрэв энэ нь ажиллахгүй бол дээр тайлбарласны дагуу алдааны
|
||
тайлан илгээхийг бодно уу.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Suspend/Resume буюу Түр зогсоох/Үргэлжлүүлэх</title>
|
||
|
||
<para><acronym>ACPI</acronym> нь <acronym>RAM</acronym> уруу
|
||
түр зогсоох <literal>S1</literal>-<literal>S3</literal> гэсэн
|
||
гурван төлөвтэй (<acronym>STR</acronym>) бөгөөд диск уруу түр
|
||
зогсоох <literal>S4</literal> гэгддэг нэг төлөвтэй
|
||
(<literal>STD</literal>). <literal>S5</literal> нь
|
||
<quote>soft off буюу зөөлөн зогсоолт</quote> бөгөөд тэжээлд залгагдсан
|
||
боловч асаагдаагүй байх үеийн таны системийн жирийн төлөв юм.
|
||
<literal>S4</literal> нь хоёр тусдаа аргаар хийгдэх боломжтой.
|
||
<literal>S4</literal><acronym>BIOS</acronym> нь
|
||
<acronym>BIOS</acronym>-ийн тусламжтайгаар диск уруу хийгдэх
|
||
түр зогсоолт юм. <literal>S4</literal><acronym>OS</acronym> нь
|
||
бүхэлдээ үйлдлийн системээр хийгддэг.</para>
|
||
|
||
<para>Түр зогсоолттой холбоотой зүйлүүдийг <command>sysctl hw.acpi</command>
|
||
тушаалаар шалгаж эхлээрэй. Энд Thinkpad-тай холбоотой үр дүнгүүд байна:</para>
|
||
|
||
<screen>hw.acpi.supported_sleep_state: S3 S4 S5
|
||
hw.acpi.s4bios: 0</screen>
|
||
|
||
<para>Энэ нь бид <literal>S3</literal>,
|
||
<literal>S4</literal><acronym>OS</acronym> болон
|
||
<literal>S5</literal>-ийг шалгахад
|
||
<command>acpiconf -s</command> тушаалыг ашиглаж болно гэсэн үг юм.
|
||
Хэрэв <option>s4bios</option> нь нэг (<literal>1</literal>) байх
|
||
юм бол бид <literal>S4</literal><acronym>OS</acronym>-ийн оронд
|
||
<literal>S4</literal><acronym>BIOS</acronym> дэмжлэгтэй байх юм.</para>
|
||
|
||
<para>Түр зогсоолт/үргэлжлүүлэлтийг тест хийхдээ хэрэв дэмжигдсэн бол
|
||
<literal>S1</literal>-ээс эхлээрэй. Энэ төлөв нь драйверийн дэмжлэг барагтаа л
|
||
шаарддаггүй болохоор бараг л ажиллах болно. Хэн ч <literal>S2</literal>-ийг
|
||
хийгээгүй байдаг бөгөөд танд энэ хэрэв байгаа бол энэ нь <literal>S1</literal>-тэй
|
||
адил байна. Дараагийн оролдох зүйл нь <literal>S3</literal> юм. Энэ нь
|
||
хамгийн гүнзгий <acronym>STR</acronym> төлөв бөгөөд таны тоног төхөөрөмжийг
|
||
дахин зөв эхлүүлэхийн тулд драйверийн ихээхэн дэмжлэг шаарддаг. Хэрэв
|
||
үргэлжлүүлэх үед танд асуудлууд гарч байгаа бол &a.acpi.name; жагсаалт уруу
|
||
цахим захидал чөлөөтэй илгээгээрэй, гэхдээ илүү их тест хийлт, ажил шаардсан маш
|
||
олон драйверууд/тоног төхөөрөмжүүд байдаг учир асуудал шийдэгдэхийг хүлээх хэрэггүй юм.</para>
|
||
|
||
<para>Асуудлыг тусгаарлахад туслахын тулд өөрийн цөмөөс аль болох олон драйверуудыг
|
||
арилгаарай. Хэрэв энэ нь ажиллаж байвал та яг аль драйвер асуудалтай байгааг
|
||
драйверуудыг амжилтгүй ажиллах хүртэл ачаалан тодорхойлж болох юм.
|
||
<filename>nvidia.ko</filename>, X11 дэлгэцийн драйверууд болон
|
||
<acronym>USB</acronym> зэрэг хоёртын драйверууд нь ерөнхийдөө хамгийн их
|
||
асуудлуудтай байдаг байхад Ethernet интерфэйсүүд ихэвчлэн зүгээр ажилладаг.
|
||
Хэрэв та драйверуудыг зөв ачаалж/буулгаж чадаж байвал та тохирох тушаалуудыг
|
||
<filename>/etc/rc.suspend</filename> болон
|
||
<filename>/etc/rc.resume</filename> файлуудад хийж үүнийг
|
||
автоматжуулж болно. Драйверийг буулгах болон ачаалахад зориулсан тайлбар
|
||
болгосон жишээ байдаг. Хэрэв таны дэлгэц үргэлжлүүлэлт хийгдсэний дараа заваарсан
|
||
бол <option>hw.acpi.reset_video</option>-г тэг (<literal>0</literal>)
|
||
болгож үзээрэй. Хэрэв тусламж болохоор бол
|
||
<option>hw.acpi.sleep_delay</option>-г арай урт эсвэл арай богино утгуудаар
|
||
тохируулж үзээрэй.</para>
|
||
|
||
<para>Өөр нэг турших зүйл нь <acronym>ACPI</acronym> дэмжлэгтэй сүүлийн үеийн
|
||
Линуксийн түгээлтийг ачаалан тэдний түр зогсоолт/үргэлжлүүлэлтийн дэмжлэгийг адил
|
||
тоног төхөөрөмж дээр турших явдал юм. Хэрэв Линукс дээр ажиллаж байвал
|
||
энэ нь &os;-ийн драйверийн асуудал гэсэн үг бөгөөд яг аль драйвер асуудлыг үүсгэж
|
||
байгааг олсноор асуудлыг засварлахад бидэнд тус болох болно.
|
||
<acronym>ACPI</acronym>-ийг дэмжиж байдаг дэмжигчид нь өөр бусад
|
||
драйверуудыг (өөрөөр хэлбэл дуу, <acronym>ATA</acronym> гэх мэт)
|
||
ихэвчлэн дэмжин ажилладаггүй болохоор драйверийн асуудлыг мөшгөж хийгдсэн ажил бүр
|
||
магадгүй эцсийн эцэст &a.current.name; жагсаалт болон драйверийг дэмжигч
|
||
уруу илгээгдэх хэрэгтэйг санаарай. Хэрэв та адал явдлыг эрж байгаа бол
|
||
драйверийн үргэлжлүүлэлтийн функцын аль хэсэгт өлгөгдөж байгааг мөшгөхийн тулд
|
||
зарим дибаг хийх &man.printf.3;-үүдийг асуудалтай драйверт хийж эхлээрэй.</para>
|
||
|
||
<para>Эцэст нь <acronym>ACPI</acronym>-г хааж оронд нь
|
||
<acronym>APM</acronym>-г нээж оролдоорой. Хэрэв түр зогсоолт/үргэлжлүүлэлт
|
||
<acronym>APM</acronym>-тэй байхад ажиллаж байвал та
|
||
<acronym>APM</acronym>-тэйгээ үлдэх нь ялангуяа хуучин тоног төхөөрөмжийн
|
||
(2000 оноос өмнөх) хувьд бараг дээр байх бизээ. <acronym>ACPI</acronym>
|
||
дэмжлэгийг зөв болгоход үйлдвэрлэгчдэд цаг хугацаа шаардах бөгөөд магадгүй хуучин
|
||
тоног төхөөрөмжүүд нь <acronym>ACPI</acronym>-ийн хувьд
|
||
<acronym>BIOS</acronym>-ийн асуудлуудтай ихэвчлэн байдаг.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Систем өлгөгдөх (түр хугацаагаар эсвэл бүрмөсөн)</title>
|
||
|
||
<para>Ихэнх системийн өлгөгдлүүд нь гээгдсэн тасалдлууд эсвэл тасалдлын
|
||
шуургын үр дүн юм. Бичил схемүүд нь ачаалахаас өмнө тасалдлуудыг <acronym>BIOS</acronym>
|
||
хэрхэн тохируулдгаас болсон асуудлууд, <acronym>APIC</acronym>
|
||
(<acronym>MADT</acronym>) хүснэгтийн зөв байдал болон
|
||
<firstterm>System Control Interrupt буюу Системийн Хянагч
|
||
Тасалдлын</firstterm> (<acronym>SCI</acronym>) чиглүүлэлт дээр
|
||
тулгуурласан олон асуудлуудтай байдаг.</para>
|
||
|
||
<indexterm>
|
||
<primary>тасалдлын шуургууд</primary>
|
||
</indexterm>
|
||
|
||
<para>Тасалдлын шуургыг <command>vmstat -i</command> тушаалын
|
||
гаралтаас <literal>acpi0</literal> бүхий мөрийг шалгаж гээгдсэн
|
||
тасалдлуудаас ялгаж болно. Хэрэв тоологч секунд тутам хоёроор нэмэгдэж
|
||
байвал та тасалдлын шуургатай байна. Хэрэв систем өлгөгдсөн юм шиг байвал
|
||
<acronym>DDB</acronym>
|
||
(консол дээр <keycombo action="simul"><keycap>CTRL</keycap>
|
||
<keycap>ALT</keycap><keycap>ESC</keycap></keycombo>)
|
||
уруу орж <literal>show interrupts</literal> гэж бичих хэрэгтэй.</para>
|
||
|
||
<indexterm>
|
||
<primary>APIC</primary>
|
||
<secondary>хаах нь</secondary>
|
||
</indexterm>
|
||
|
||
<para>Тасалдлын асуудлуудтай ажиллаж байхад таны хамгийн шилдэг итгэл найдвар
|
||
бол <filename>loader.conf</filename>-д <literal>hint.apic.0.disabled="1"</literal>
|
||
хэмээн зааж <acronym>APIC</acronym> дэмжлэгийг хаах явдал юм.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Үймээнүүд</title>
|
||
|
||
<para>Үймээнүүд нь <acronym>ACPI</acronym>-ийн хувьд харьцангуй ховор
|
||
байдаг бөгөөд засварлах нэн тэргүүн ээлжийн асуудал байдаг. Эхний алхам бол
|
||
үймээнийг дахин гаргах (хэрэв боломжтой бол) алхмуудыг тусгаарлаж
|
||
буцах мөрийг (backtrace) авах явдал юм. <literal>options DDB</literal>
|
||
мөрийг нээж сериал консол (<xref linkend="serialconsole-ddb">-г үзнэ үү)
|
||
тохируулах эсвэл &man.dump.8; хуваалтыг тохируулах зөвлөгөөг дагаарай.
|
||
Та буцах мөрийг <acronym>DDB</acronym> дээр <literal>tr</literal>-р
|
||
авч болно. Хэрэв та буцах мөрийг гараар бичих болбол мөр дэх хамгийн доодох тав (5)
|
||
болон хамгийн дээдэх таван (5) мөрийг хамгийн багадаа бодоход аваарай.</para>
|
||
|
||
<para>Дараа нь асуудлыг тусгаарлахыг оролдож <acronym>ACPI</acronym>-г
|
||
хааж ачаалж үзээрэй. Хэрэв энэ нь ажиллаж байвал
|
||
<option>debug.acpi.disable</option>-ийн төрөл бүрийн утгуудыг хэрэглэж
|
||
та <acronym>ACPI</acronym> дэд системийг тусгаарлаж болно. Зарим жишээнүүдийг
|
||
&man.acpi.4; гарын авлагын хуудаснаас үзнэ үү.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Түр зогссоны дараа эсвэл унтраасны дараа систем дахин эхлэх</title>
|
||
<para>Эхлээд &man.loader.conf.5; дээр
|
||
<literal>hw.acpi.disable_on_poweroff="0"</literal> гэж тохируулаад
|
||
үз. Энэ нь унтраах процессийн үед төрөл бүрийн үйл явцуудыг
|
||
<acronym>ACPI</acronym> хаахыг болиулдаг. Энэ зорилгын нэгэн адил зарим
|
||
системүүд энэ утгыг <literal>1</literal> (анхдагч) болгож тохируулахыг
|
||
шаарддаг. Энэ нь түр зогсоолт эсвэл унтраалт хийгдсэний дараа аяндаа гарсан
|
||
систем асаж эхлэх асуудлыг ихэвчлэн засварладаг.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Бусад асуудлууд</title>
|
||
|
||
<para>Хэрэв танд <acronym>ACPI</acronym>-тай холбоотой бусад асуудлууд
|
||
(суулгах станцтай ажиллах, төхөөрөмжүүд илрүүлэгдэхгүй гэх мэт) байвал
|
||
тайлбарыг захидлын жагсаалт уруу бас илгээнэ үү; гэхдээ эдгээр асуудлуудын
|
||
зарим нь <acronym>ACPI</acronym> дэд системийн дуусаагүй хэсгүүдтэй
|
||
холбоотой байж болох бөгөөд тэдгээрийг шийдэж хийхэд нэлээн хугацаа зарцуулж
|
||
болох юм. Тэвчээртэй байж бидний илгээж болох засваруудыг тест хийхэд
|
||
бэлэн байгаарай.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2 id="ACPI-aslanddump">
|
||
<title><acronym>ASL</acronym>, <command>acpidump</command>, болон
|
||
<acronym>IASL</acronym></title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>ASL</secondary>
|
||
</indexterm>
|
||
|
||
<para>Хамгийн нийтлэг асуудал бол <acronym>BIOS</acronym> үйлдвэрлэгчдийн
|
||
гаргасан буруу (эсвэл алдаатай!) байткод юм. Энэ нь ихэвчлэн дараах шиг цөмийн
|
||
консол мэдээллүүдээр ил тод болдог:</para>
|
||
|
||
<screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
|
||
(Node 0xc3f6d160), AE_NOT_FOUND</screen>
|
||
|
||
<para>Ихэвчлэн та эдгээр асуудлуудыг өөрийн <acronym>BIOS</acronym>-ийг
|
||
хамгийн сүүлийн хувилбар уруу шинэчилснээр шийдэж болно. Ихэнх консолын
|
||
мэдээллүүд нь аюулгүй гэхдээ хэрэв танд батарейний төлөв ажиллахгүй гэх мэт
|
||
өөр бусад асуудлууд байгаа бол тэдгээр мэдээллүүд нь <acronym>AML</acronym>-д
|
||
байгаа асуудлуудыг хайж болох боломжийн газар нь юм.
|
||
<acronym>AML</acronym> гэгддэг байткод нь <acronym>ASL</acronym>
|
||
хэмээгддэг эх хэлээс хөрвүүлэгддэг. <acronym>AML</acronym> нь
|
||
<acronym>DSDT</acronym> гэгддэг хүснэгтэд байдаг. Өөрийн
|
||
<acronym>ASL</acronym>-ийн хуулбарыг авахын тулд &man.acpidump.8;-ийг
|
||
ашиглана. Та <option>-t</option> (тогтмол хүснэгтүүдийн агуулгуудыг үзүүлэх)
|
||
болон <option>-d</option> (<acronym>AML</acronym>-ийг
|
||
<acronym>ASL</acronym> уруу дизассембл хийх) тохируулгыг хоёуланг нь
|
||
ашиглах хэрэгтэй. Синтаксын жишээг
|
||
<link linkend="ACPI-submitdebug">Дибаг Мэдээллийг Илгээх нь</link>
|
||
хэсгээс үзнэ үү.</para>
|
||
|
||
<para>Таны хийж болох хамгийн хялбар анхны шалгалт нь алдаануудыг шалгахын тулд өөрийн
|
||
<acronym>ASL</acronym>-ийг хөрвүүлэх явдал юм. Анхааруулгуудыг ихэвчлэн орхиж
|
||
болох боловч алдаанууд нь <acronym>ACPI</acronym>-г зөв ажиллуулахад гол төлөв саад
|
||
болдог хорхойнууд байдаг. Өөрийн <acronym>ASL</acronym>-ийг дахин хөрвүүлэхдээ
|
||
дараах тушаалыг ажиллуулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>iasl your.asl</userinput></screen>
|
||
</sect2>
|
||
|
||
<sect2 id="ACPI-fixasl">
|
||
<title>Өөрийн <acronym>ASL</acronym>-г засварлах нь</title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>ASL</secondary>
|
||
</indexterm>
|
||
|
||
<para>Бидний эцсийн зорилго бол бараг хүн болгоны хувьд хэрэглэгчийн ямар ч оролцоогүйгээр
|
||
<acronym>ACPI</acronym>-г ажиллуулах явдал юм. Гэхдээ өнөөг хүртэл бид
|
||
<acronym>BIOS</acronym> үйлдвэрлэгчдийн гаргасан нийтлэг алдаануудад
|
||
зориулан тойрон гарах арга замуудыг хөгжүүлсээр байгаа билээ.
|
||
µsoft;-ийн тайлбарлагч (<filename>acpi.sys</filename> болон
|
||
<filename>acpiec.sys</filename>) нь стандартыг баримталж байгааг чанд
|
||
шалгадаггүй бөгөөд <acronym>BIOS</acronym>-ийн олон үйлдвэрлэгчид
|
||
<acronym>ACPI</acronym>-г зөвхөн &windows; дээр тест хийж өөрсдийн
|
||
<acronym>ASL</acronym>-ийг хэзээ ч засдаггүй. Бид µsoft;-ийн
|
||
тайлбарлагчид зөвшөөрөгдсөн ямар стандартын бус ажиллагаа байгааг үргэлжлүүлэн
|
||
нарийн таньж баримтжуулан хэрэглэгчдээр <acronym>ASL</acronym>-ийг хүчлэн
|
||
засуулалгүйгээр &os; ажиллаж чадахаар түүнийг хуулбарлах болно гэж найдаж байна.
|
||
Тойрон гарах арга зам болгон биднийг энэ ажиллагааг танихад тусалж та
|
||
<acronym>ASL</acronym>-ийг гараар засварлаж болно. Хэрэв таны хувьд энэ нь
|
||
ажиллавал хуучин болон шинэ <acronym>ASL</acronym>-ийнхээ &man.diff.1;-ийг
|
||
илгээнэ үү, бид бололцоогоороо <acronym>ACPI-CA</acronym> дахь алдаатай
|
||
ажиллагааг тойрон гарч ингэснээр хойшид таны засвар байнга хийгдэх шаардлагагүй
|
||
болох юм.</para>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>алдааны мэдээллүүд</secondary>
|
||
</indexterm>
|
||
|
||
<para>Энд нийтлэг алдааны мэдээллүүд, тэдгээрийн шалтгаан болон хэрхэн засаж болох
|
||
жагсаалтыг үзүүлэв:</para>
|
||
|
||
<sect3>
|
||
<title>_OS хамаарлууд</title>
|
||
|
||
<para>Зарим <acronym>AML</acronym> нь ертөнц төрөл бүрийн &windows;
|
||
хувилбаруудаас тогтдог гэж үздэг. Хэрэв танд байгаа асуудлыг засаж чадаж байвал
|
||
та &os;-г ямар нэг <acronym>OS</acronym> гэж харагдуулахаар хэлж өгч болно.
|
||
Үүнийг хялбар аргаар дарж бичихийн тулд <filename>/boot/loader.conf</filename>-д
|
||
<literal>hw.acpi.osname="Windows 2001"</literal> гэж эсвэл
|
||
<acronym>ASL</acronym> дахь өөр бусад адил мөрүүдийг тохируулж өгнө.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Буцах мэдээллүүд байхгүй бол</title>
|
||
|
||
<para>Зарим аргууд нь стандартын дагуу шууд утга буцаадаггүй.
|
||
<acronym>ACPI-CA</acronym> нь үүнтэй ажиллаж чадахгүй байхад
|
||
&os; үүнийг далдаар утга буцаалгах боломжийг олгодог тойрон гарах арга замтай байдаг.
|
||
Хэрэв та утга буцаагдах ёстойг мэдэж байвал шаардлагатай газар нь Return буюу Буцах
|
||
мэдээллүүдийг шууд нэмж болно. <acronym>ASL</acronym>-ийг
|
||
<command>iasl</command> тушаалаар хүчээр хөрвүүлэхдээ <option>-f</option>
|
||
тугийг ашиглана.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Анхдагч <acronym>AML</acronym>-ийг дарж өөрчлөх нь</title>
|
||
|
||
<para><filename>your.asl</filename>-ийг өөрчилсний дараа үүнийг
|
||
та хөрвүүлэхдээ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>iasl your.asl</userinput></screen>
|
||
|
||
<para>Хөрвүүлэх явцад алдаанууд байсан ч гэсэн та <option>-f</option> тугийг
|
||
нэмж <acronym>AML</acronym>-ийг хүчээр үүсгэж болно. Зарим алдаануудыг
|
||
(өөрөөр хэлбэл Буцах мэдээллүүд байхгүй гэх мэт) тайлбарлагчийн тусламжтайгаар
|
||
автоматаар тойрон гардгийг санаарай.</para>
|
||
|
||
<para><filename>DSDT.aml</filename> нь <command>iasl</command>-ийн
|
||
анхдагч гаралт файлын нэр юм. Та өөрийн <acronym>BIOS</acronym>-ийн
|
||
алдаатай хуулбарын (флэш санах ойд байсаар байгаа) оронд
|
||
<filename>/boot/loader.conf</filename>-ийг дараах байдлаар засварлан
|
||
үүнийг ачаалж болно:</para>
|
||
|
||
<programlisting>acpi_dsdt_load="YES"
|
||
acpi_dsdt_name="/boot/DSDT.aml"</programlisting>
|
||
|
||
<para>Өөрийн <filename>DSDT.aml</filename> файлын хуулбарыг
|
||
<filename class="directory">/boot</filename> сан уруу хуулах хэрэгтэй.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2 id="ACPI-debugoutput">
|
||
<title><acronym>ACPI</acronym>-аас дибаг мэдээлэл гаргаж авах нь</title>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>асуудлууд</secondary>
|
||
</indexterm>
|
||
|
||
<indexterm>
|
||
<primary>ACPI</primary>
|
||
<secondary>дибаг</secondary>
|
||
</indexterm>
|
||
|
||
<para><acronym>ACPI</acronym> драйвер нь маш уян хатан дибаг хийх боломжтой.
|
||
Энэ нь дэд системүүдийн олонлог болон харуулах түвшинг зааж өгөхийг танд зөвшөөрдөг.
|
||
Таны дибаг хийхийг хүсэж байгаа дэд системүүд нь <quote>давхаргууд</quote>
|
||
болж заагдсан байдаг бөгөөд <acronym>ACPI-CA</acronym> хэсгүүд
|
||
(ACPI_ALL_COMPONENTS) болон <acronym>ACPI</acronym> тоног төхөөрөмжийн
|
||
дэмжлэг (ACPI_ALL_DRIVERS) болж задардаг. Дибаг гаралтын харуулалт нь
|
||
<quote>үе</quote>ээр заагддаг бөгөөд ACPI_LV_ERROR (зөвхөн алдаануудыг хэлдэг)
|
||
тогтмолоос ACPI_LV_VERBOSE (бүгд) хүртэл байдаг. <quote>Үе</quote> нь
|
||
олон тохируулгуудыг нэг удаа зайгаар зааглан тохируулж болох бит баг (bitmask) юм.
|
||
Хэрэв энэ нь маш урт тэгээд консолын мэдээллийн буферийг арилган шинэчилж
|
||
байвал та практик дээр гаралтыг бүртгэх сериал консолыг ашиглахыг хүсэж болох юм.
|
||
Бие даасан давхаргууд болон түвшингүүдийн бүрэн жагсаалт &man.acpi.4; гарын
|
||
авлагын хуудсанд байдаг.</para>
|
||
|
||
<para>Дибаг гаралт анхдагчаар идэвхжүүлэгдээгүй байдаг. Идэвхтэй болгохын тулд
|
||
<acronym>ACPI</acronym> хэрэв цөмд хөрвүүлэгдсэн бол
|
||
<literal>options ACPI_DEBUG</literal> мөрийг өөрийн цөмийн тохиргооны
|
||
файлд нэмэх хэрэгтэй. Нийтэд нь идэвхтэй болгохын тулд
|
||
<filename>/etc/make.conf</filename>-д
|
||
<literal>ACPI_DEBUG=1</literal> мөрийг нэмж болно. Хэрэв энэ нь
|
||
модуль бол та өөрийн <filename>acpi.ko</filename> модулийг дараах
|
||
маягаар дахин хөрвүүлж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /sys/modules/acpi/acpi
|
||
&& make clean &&
|
||
make ACPI_DEBUG=1</userinput></screen>
|
||
|
||
<para><filename>acpi.ko</filename>-г
|
||
<filename class="directory">/boot/kernel</filename>-д суулгаад
|
||
өөрийн хүссэн давхарга болон түвшинг <filename>loader.conf</filename>-д
|
||
нэмнэ. Энэ жишээ нь <acronym>ACPI-CA</acronym>-ийн бүх хэсгүүд болон
|
||
бүх <acronym>ACPI</acronym> тоног төхөөрөмжийн драйверуудад
|
||
(<acronym>CPU</acronym>, <acronym>LID</acronym>, гэх мэт.)
|
||
зориулан дибаг мэдээллүүдийг идэвхжүүлдэг. Энэ нь зөвхөн алдааны мэдээллүүдийг
|
||
хамгийн багаар гаргаж харуулна.</para>
|
||
|
||
<programlisting>debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
|
||
debug.acpi.level="ACPI_LV_ERROR"</programlisting>
|
||
|
||
<para>Хэрэв таны хүссэн мэдээлэл онцгой үйл явцаар эхэлсэн бол (түр зогсоолт болон
|
||
үргэлжлүүлэлт гэж бодъё) та <filename>loader.conf</filename>-ийн
|
||
өөрчлөлтүүдийг орхиж оронд нь <command>sysctl</command>-ийг ашиглан
|
||
давхарга болон түвшинг ачаалсны дараа зааж онцгой үйл явцад зориулан өөрийн
|
||
системийг бэлдэж болно. <command>sysctl</command>-ууд нь
|
||
<filename>loader.conf</filename> дахь тохируулгуудын адилаар
|
||
нэрлэгддэг.</para>
|
||
</sect2>
|
||
|
||
<sect2 id="ACPI-References">
|
||
<title>Лавлагаанууд</title>
|
||
|
||
<para><acronym>ACPI</acronym>-ийн талаар дэлгэрэнгүй мэдээллийг
|
||
дараах байршлуудаас олж болно:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>&a.acpi;</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><acronym>ACPI</acronym> Захидлын Жагсаалтын Архивууд
|
||
<ulink url="http://lists.freebsd.org/pipermail/freebsd-acpi/"></ulink></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Хуучин <acronym>ACPI</acronym> Захидлын Жагсаалтын Архивууд
|
||
<ulink url="http://home.jp.FreeBSD.org/mail-list/acpi-jp/"></ulink></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><acronym>ACPI</acronym> 2.0 Тодорхойлолт
|
||
<ulink url="http://acpi.info/spec.htm"></ulink></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>&os; Гарын авлагын хуудаснууд: &man.acpi.4;,
|
||
&man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;,
|
||
&man.acpidb.8;</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><ulink
|
||
url="http://www.cpqlinux.com/acpi-howto.html#fix_broken_dsdt">
|
||
<acronym>DSDT</acronym> дибаг эх үүсвэр</ulink>.
|
||
(Compaq-ийг жишээ болгон хэрэглэсэн боловч ерөнхийдөө хэрэгтэй.)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect2>
|
||
</sect1>
|
||
</chapter>
|
||
|
||
<!--
|
||
Local Variables:
|
||
mode: sgml
|
||
sgml-declaration: "../chapter.decl"
|
||
sgml-indent-data: t
|
||
sgml-omittag: nil
|
||
sgml-always-quote-attributes: t
|
||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||
End:
|
||
-->
|