08.01.2015 Views

PDF - Xakep Online

PDF - Xakep Online

PDF - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Âçëîì<br />

ÕÀÊÅÐ\¹38\Ôåâðàëü\2002<br />

Íàñèëóåì Ëèíóêñ!<br />

Êàê çà 13 ìèíóò ïîäíÿòü ñâîþ ÎÑü<br />

Íàãîðñêèé Àðòåì aka Cordex (cordex@xakep.ru)<br />

âìåñòî 31000. Íî äëÿ âûïîëíåíèÿ ýòîé îïåðàöèè<br />

óáåäèñü, ÷òî ÿäðî ó òåáÿ íå íèæå 2.2.12. Ñîîòâåòñòâåííî,<br />

êàê è â ïåðâîì ñëó÷àå, äëÿ ïðîâåðêè ïåðåëîãèíüñÿ<br />

ïîä ðóòîì è èñïîëüçóé êîìàíäó: ulimit<br />

-a. Â ñòðîêå ñ open files òâîé ñîêîëèíûé ãëàç äîëæåí<br />

çàìåòèòü òåêñò "90000".<br />

Æåñòêèé äèñê<br />

Íó à òåïåðü ïðèñòóïèì ê ñàìîìó äîðîãîìó, ÷òî åñòü ó<br />

òåáÿ, ïîðíóøíèêà è âàðåçîêà÷àòåëÿ, - âèíòó, à èìåííî<br />

ïîñëåäîâàòåëüíî ïðîâåäåì îïòèìèçàöèþ âñåõ åãî<br />

ðàçäåëîâ, ÷òî íåìèíóåìî ïðèâåäåò ê óâåëè÷åíèþ ñêîðîñòè<br />

è ñòàáèëüíîñòè åãî ðàáîòû. Âñå îïåðàöèè ïðîäåëàåì<br />

â ñòàòóñå ðóòà, åñòåñòâåííî. Âíà÷àëå íåîáõîäèìî<br />

óçíàòü, êàê îáîçíà÷àåòñÿ òâîé âèíò: hda, hdb...<br />

Ýòî òû äîëæåí çíàòü óæå ïîñëå óñòàíîâêè Ëèíóêñà, íî<br />

åñëè çàïàìÿòîâàë, òî èñïîëüçóé êîìàíäó dmesg. Âûÿñíèâ<br />

îáîçíà÷åíèå æåñòêîãî äèñêà (ïóñòü äëÿ ïðèìåðà<br />

ýòî áóäåò hda, êàê íàèáîëåå ÷àñòî âñòðå÷àþùèéñÿ),<br />

âûÿñíè, ÷òî ïîääåðæèâàåò òâîé âèíò ñ ïîìîùüþ<br />

êîìàíäû hdparm -I /dev/hda. Òåïåðü ïðèøëî âðåìÿ<br />

îòìåòèòü ñêîðîñòü âèí÷åñòåðà: hdparm -t /dev/hda.<br />

Çàïîìíè ðåçóëüòàò - ïîòîì ñâåðèøü ñ ïîëó÷åííûì :).<br />

Ñëåäóþùèì øàãîì áóäåò ïðîñìîòð çíà÷åíèé, êîòîðûå<br />

òâîé õàðä èìååò ïî äåôîëòó (êîìàíäîé hdparm<br />

/dev/hda). Òàê, âèäèì, ÷òî ðåæèì ìóëüòè-÷òåíèÿ ñ<br />

äèñêà îòêëþ÷åí. ×òî æ, âïîðó èñïðàâèòü ýòî: hdparm<br />

-c3 -m16 /dev/hda. Ýòà êîìàíäà âêëþ÷èò ðåæèì ìíîãîïîòî÷íîãî<br />

ñ÷èòûâàíèÿ. Òåïåðü ïðîâåðü ñêîðîñòü<br />

âèíòà åùå ðàç. Íó ÷òî, âèäèøü ïðèðîñò ñêîðîñòè :)<br />

Ñëåäóþùèì øàãîì áóäåò âêëþ÷åíèå DMA è 32-áèòíîé<br />

ðàçðÿäíîé ïîääåðæêè (âçàìåí 16-áèòíîé). Äëÿ<br />

ýòîãî åñòü êîìàíäà: hdparm -d1 /dev/hda.<br />

Îñòàëîñü ïîñëåäíåå - çàïèñàòü âñå èçìåíåíèÿ â ôàéë,<br />

÷òîáû îíè áûëè â ñèëå ïîñëå òîãî êàê òû ðåáóòíåøü/âûêëþ÷èøü<br />

êîìï. Äëÿ ýòîãî â çíàêîìîì /etc/rc.d<br />

äîáàâü â ñàìûé êîíåö ôàéëà rc.local ñëåäóþùóþ ñòðî÷êó:<br />

hdparm -c3 -m16 /dev/hda. Òåïåðü ïðîâåðÿåì ñêîðîñòü<br />

è âèäèì íå ìåíåå ÷åì 2-óõ êðàòíîå óâåëè÷åíèå.<br />

Âñå, äèñê îïòèìèçèðîâàí, ñ ÷åì òåáÿ è ïîçäðàâëÿþ!<br />

Êñòàòè, åùå îäíà ôè÷à îòíîñèòåëüíî âèíòà. Íàñòîÿòåëüíî<br />

ñîâåòóþ òåáå ðàçìåñòèòü ñâîé swap-ðàçäåë<br />

âáëèçè ÍÀ×ÀËÀ äèñêà, à íå êîíöà, ÷òî èíîãäà íàáëþäàåòñÿ<br />

ó íåêîòîðûõ ÍÅ÷èòàòåëåé ][ ;). Ðåçóëüòàò ñåé<br />

îïåðàöèè íå çàìåäëèò ñêàçàòüñÿ: çà îäèí îáîðîò äèñêà<br />

ãîëîâêà áóäåò îõâàòûâàòü ãîðàçäî áîëüøóþ ïîâåðõíîñòü,<br />

÷òî íå çàìåäëèò ñêàçàòüñÿ è íà åãî ðàáîòå,<br />

à èìåííî áóäåò ñ÷èòûâàòü áîëüøå äàííûõ. Âñå äåëî â<br />

òîì, ÷òî ÍÀ×ÀËÎ äèñêà ôèçè÷åñêè ðàñïîëàãàåòñÿ íà<br />

âíåøíåé ñòîðîíå öèëèíäðà - âîò è âåñü ñåêðåò :). Íà<br />

ýòîì ðàçãîâîð îá îïòèìèçàöèè æåñòêîãî äèñêà, ïðèÿòåëü,<br />

ïîçâîëü ñ÷èòàòü îêîí÷åííûì. Ýé! Ñåêóíäî÷êó! Ïî<br />

äîìàì åùå ðàñõîäèòüñÿ ðàíî! Ïðîäîëæàåì...<br />

ßäðî<br />

Íó, íàêîíåö-òî íàøè øàëîâëèâûå ðó÷êè äîòÿíóëèñü<br />

äî àðõèâàæíîãî ýëåìåíòà Ëèíóêñà - ÿäðà. Ïîýòîìó<br />

åãî îïòèìèçàöèÿ îòðàçèòñÿ íà âñåé ñèñòåìå â öåëîì.<br />

Íî, êàê ñàì ïîíèìàåøü, â îòëè÷èå îò äðóãèõ<br />

ýëåìåíòîâ Îñè, ê òâèêèíãó ÿäðà íóæíî îòíåñòèñü ñ<br />

îñòîðîæíîñòüþ. Íî è áîÿòüñÿ íå ñòîèò. Ãëàâíîå -<br />

ñðàçó ðåøèòü, ÷òî òåáå íóæíî, à ÷òî - íåò. Ïîäóìàé,<br />

îò ÷åãî òåáå åñòü ðåçîí îòêàçàòüñÿ. Åñëè ó òåáÿ íà<br />

êîìïå âìåñòå ñ *íèêñàìè çàèíñòàëëåíà Âûíü98, òî,<br />

< Folder3 ><br />

ñêîðåå âñåãî, åñòü ñìûñë ÂÎÎÁÙÅ îòêàçàòüñÿ îò âèäåî<br />

è ãðàôèêè, òóëç äëÿ game'èíãà è ò.ä. Åñëè æå ó<br />

òåáÿ íà òà÷êå òîëüêî Linux, òî, ïàðåíü, âî-ïåðâûõ,<br />

ðàçðåøè ïîæàòü òâîþ ìóæåñòâåííóþ ðóêó, à âî-âòîðûõ,<br />

ðåçàòü ÿäðî òåáå ïðèäåòñÿ ñàìóþ ìàëîñòü, ÿ<br />

ïîëàãàþ. Êîðî÷å, êàæäûé äîëæåí ðåøèòü äëÿ ñåáÿ<br />

ñàì. Íî îáùèå ñîâåòû âñå-òàêè ÿ äàì. Âíà÷àëå ÿäðî<br />

íóæíî êàê ìîæíî áîëåå óìåíüøèòü, îñâîáîäèòü îò<br />

âñåãî òîãî, ÷òî ÿâíî íå òðåáóåòñÿ. Èñïîëüçóåì cd<br />

/usr/src/linux; make xconfig (make menuconfig). Äàëåå<br />

ìîæíî ïîëíîñòüþ ïîäñòðîèòü è îïòèìèçèðîâàòü ÿäðî<br />

ïîä ñåáÿ. Âûïîëíÿåì ñëåäóþùåå:<br />

1)  êà÷åñòâå ñåìåéñòâà ïðîöåññîðîâ óñòàíîâèòü<br />

PPro/6x86MX äëÿ Pentium II/III ñèñòåì è ðàçðåøèòü<br />

MTRR äëÿ PentiumPro//II/III.<br />

2) Åñëè ó òåáÿ íå ñåðâåð, òî îáÿçàòåëüíî çàïðåòè<br />

'Advanced Power Management'.<br />

3) Îáÿçàòåëüíî ðàçðåøè èñïîëüçîâàíèå DMA ïî äåôîëòó<br />

(Use DMA be defaults).<br />

4) Ïîñòàâü ïîääåðæêó òîëüêî ñâîåãî ÷èïñåòà, ïîääåðæêó<br />

îñòàëüíûõ ñíîñè ê ÷åðòîâîé ìàòåðè.<br />

5) Óñòàíîâè ìàêñèìàëüíîå ÷èñëî Unix98 PTYs â 128<br />

äëÿ ñòàáèëüíîñòè.<br />

6) Ñíîñè íà ôèã ïîääåðæêó äæîéñòèêîâ, ïîðòîâ äëÿ<br />

èíôðàêðàñíûõ äåâàéñîâ, etc.<br />

7) È, íàêîíåö, çàïðåòè ïîääåðæêó âñåõ íå íóæíûõ<br />

òåáå ñåòåâûõ óñòðîéñòâ. Ìûñëè - òèïà "À ìîæåò ïîíàäîáèòñÿ<br />

â äàëüíåéøåì..." - ïðèáèâàé ñðàçó :). Âîò<br />

êîãäà ïîíàäîáÿòñÿ, òîãäà è ïåðåêîìïèëèøü ÿäðî. À<br />

«ïðî çàïàñ» - ýòî ñòèëü Áèëëè.<br />

8) Òàêæå íåêîòîðûå ìàíüÿêè ìîãóò çàïðåòèòü ïîääåðæêó<br />

âèäåî, äðàéâåðîâ äëÿ çâóêîâûõ êàðò. Íî ýòî<br />

óæå äåëî âêóñà è ëè÷íîé íåîáõîäèìîñòè.<br />

Èíòåðíåò áåç òîðìîçîâ!<br />

Äóìàþ, äëÿ òåáÿ íå ñåêðåò, ÷òî âñå *nix-ñèñòåìû, è<br />

Ëèíóêñ â ÷àñòíîñòè, èäåàëüíî ïîäõîäÿò äëÿ âûõîäà â<br />

ñåòü: âåäü TCP/IP-ïðîòîêîë äëÿ òàêèõ Îñåé - ðîäíîé.<br />

Íî âñå-òàêè, íåñìîòðÿ íà ýòî, ïðåäëàãàþ òåáå îïòèìèçèðîâàòü<br />

è ñêîðîñòü òâîåãî áåñêîíå÷íîãî âûõîäà<br />

â Èíåò. Ëèíóêñ Ëèíóêñîì, íî êà÷åñòâî íàøèõ ðîññèéñêèõ<br />

òåëåôîííûõ ëèíèé îñòàâëÿåò æåëàòü ëó÷øåãî.<br />

Âî-ïåðâûõ, åùå äî ñîåäèíåíèÿ ñ Èíòåðíåòîì<br />

íóæíî âðåìÿ ñàìèõ TCP-ïîäêëþ÷åíèé óìåíüøèòü,<br />

òåì ñàìûõ ïîçâîëèâ ñèñòåìå îáðàáîòàòü áîëüøåå<br />

÷èñëî ñîåäèíåíèé çà òî æå âðåìÿ. Òàêæå ìîæíî<br />

óìåíüøèòü âðåìÿ, êîòîðîå Ëèíóêñ æäåò íà çàêðûòèå<br />

"óñòàðåâøèõ" ñîåäèíåíèé. Âîò ïàðàìåòðû, êîòîðûå<br />

íóæíî ïîäïðàâèòü â Êðîâàâîé Øàïêå (aka RedHat):<br />

tcp_fin_timeout "180"<br />

tcp_keepalive_time "7200"<br />

tcp_window_scaling "1"<br />

tcp_sack "1"<br />

tcp_timestamps "1"<br />

Äëÿ ïðèìåðà âîçüìó 6.1 âåðñèþ Red Hat. ×òîáû èñïðàâèòü<br />

ýòè ïàðàìåòðû â øåëëå, â ñòàòóñå ðóòà, ââåäè:<br />

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout<br />

echo 1800 >/proc/sys/net/ipv4/tcp_keepalive_time<br />

echo 0 > /proc/sys/net/ipv4/tcp_window_scaling<br />

echo 0 > /proc/sys/net/ipv4/tcp_sack<br />

echo 0 > /proc/sys/net/ipv4/tcp_timestamps<br />

Êîíå÷íî, ÷òîáû ýòà êîìàíäà êàæäûé ðàç âûïîëíÿëàñü,<br />

íå çàáóäü äîáàâèòü åå â /etc/rc.d/rc.local .<br />

Òåïåðü ìíå ïðèäåòñÿ íàáèòü òâîþ óìíóþ õàöêåðñêóþ<br />

ãîëîâó íåáîëüøîé òåîðèåé - íå áîéñÿ, ýòî íå äîëãî :).<br />

< Âçëîì>20/02\02<br />

Âîò, âêðàòöå, ÷òî ïðîèñõîäèò, êîãäà òû ïûòàåøüñÿ<br />

çàéòè íà êàêîé-ëèáî ñàéò. Âíà÷àëå òâîé êîìï ïîñûëàåò<br />

çàïðîñ íà ñîåäèíåíèå ñ âûáðàííûì ñàéòîì, êîòîðûé<br />

èìååò îòêðûòûé 80 ïîðò. Çàòåì ïðîâåðÿåòñÿ, íåò<br />

ëè ýòîãî ñàéòà íà òâîåì ñîáñòâåííîì êîìïå èëè òâîåé<br />

ëîêàëêå, ò.å. ñðàâíèâàåòñÿ IP-àäðåñ. Äëÿ ýòîãî ïðîâåðÿåòñÿ<br />

ôàéë /etc/hosts è ëîêàëüíûé ôàéë "nameserver"<br />

â êàòàëîãå /etc/resolv.conf. Åñëè òâîé ñîáñòâåííûé IP è<br />

òîò àäðåñ, ê êîòîðîìó òû õî÷åøü çàêîííåêòèòüñÿ, íå<br />

ñîâïàäàþò, òî êîìïüþòåð, åñòåñòâåííî, íà÷èíàåò êîííåêòèòüñÿ<br />

ê ýòîìó IP. Òàêèì îáðàçîì, "nameserver"<br />

ïðîñòî ïåðåâîäèò www.xxx.com â IP-àäðåñ, ñðàâíèâàÿ<br />

åãî ñî ñâîèìè è äðóãèìè áàçàìè. (Ïîìíèøü, òû óñòàíàâëèâàë<br />

ïåðâè÷íûé è âòîðè÷íûé DNS ïðîâàéäåðà â<br />

íàñòðîéêàõ Âîò îíè è åñòü òå ñàìûå áàçû.) "nameserver"<br />

çàíèìàåò êëþ÷åâîå ìåñòî â ýòîì ïðîöåññå.<br />

Ïîýòîìó ìû ñåé÷àñ ñîòâîðèì ñ íèì ÷òî-íèáóäü òàêîå:<br />

àâîñü è óáûñòðèì ñîåäèíåíèå ñ Èíåòîì! :) Ôèøêà â<br />

òîì, ÷òî ìîæíî ïðîèçâåñòè íåáîëüøóþ ìîäåðíèçàöèþ<br />

ýòîãî ôàéëà è çàñòàâèòü åãî äåëàòü DNS-êåøèðîâàíèå<br />

êî âñåì ïàãàì, êîòîðûå òû ïîñåòèë, ÷òî çàìåòíî<br />

óñêîðèò èõ çàãðóçêó. Èòàê, èäè â /etc/named.conf è<br />

îòðåäàêòèðóé ýòîò ôàéë òàêèì îáðàçîì:<br />

options {<br />

directory "/var/named"; forwarders {<br />

123.123.123.123;<br />

123.123.123.124; };<br />

};<br />

....<br />

Òåì ñàìûì, åñëè ñîçäàñòñÿ ñèòóàöèÿ, ÷òî îäèí IP<br />

íåäîñòóïåí, áóäåò çàãðóæåí ñëåäóþùèé çà íèì è<br />

ò.ä. Íàêîíåö, òåïåðü èçìåíèì ôàéë /etc/resolv.conf ,<br />

ïðîñòî äîáàâèâ ýòè ñòðîêè:<br />

# nameserver 321.321.321.321<br />

nameserver 127.0.0.1<br />

Âòîðàÿ ñòðî÷êà îçíà÷àåò, ÷òî âñå çàïðîñû íå äîëæíû<br />

ïåðåíàïðàâëÿòüñÿ, åñëè ìîãóò áûòü çàãðóæåíû ñ òâîåãî<br />

ëîêàëüíîãî nameserver'a. Ò.å. òû ñòàâèøü âòîðè÷íûì<br />

nameserver-îì ñâîé ñîáñòâåííûé êîìï. Îñòàëîñü<br />

ëèøü ïåðåçàãðóçèòü ñâîé nameserver êîìàíäîé:<br />

killall -HUP named<br />

ÎÊ, ìû ñ òîáîé íàñòðîèëè ñâîé nameserver òàê, ÷òîáû<br />

äåëàëîñü DNS-êåøèðîâàíèå è, ñîîòâåòñòâåííî,<br />

óâåëè÷èâàëàñü ñêîðîñòü çàãðóçêè ñòðàíè÷åê!<br />

Îñòàëîñü ïîãîâîðèòü òîëüêî îá îáùèõ êîìàíäàõ<br />

è ñîâåòàõ, îïèñûâàòü êîòîðûå ïîäðîáíî<br />

ñîâåðøåííî áåññìûñëåííî, íî âûïîëíèòü<br />

èõ íå ïîìåøàåò, îïÿòü-òàêè ñëåäóÿ<br />

ïðèíöèïó «ðåæåì âñå, ÷òî òîðìîçèò ñèñòåìó!»<br />

Âî-ïåðâûõ, âîñïîëüçîâàâøèñü êîìàíäîé<br />

ntsysv, ñíåñè íà ôèã âñå íåíóæíûå çàïóñêàåìûå<br />

âî âðåìÿ çàãðóçêè ïðèëîæåíèÿ.<br />

Âî-âòîðûõ, íå ïîæàëåé äåíåã íà îïåðàòèâêó<br />

è êàìåíü ïîáîëüøå. Ïðîâåðèòü, íàñêîëüêî<br />

ïåðåãðóæåí òâîé ìèëûé ïðîö, ìîæíî êîìàíäîé<br />

sar -q. Åñëè %runocc > 90, à runq-sz > 1,<br />

òî ñ÷èòàé, äðóæèùå, ÷òî òû ïîïàë :), òàê êàê<br />

âñå âûïîëíÿåìûå ïðîöåññû æäóò áîëüøå<br />

âðåìåíè íà âûïîëíåíèå, è, ñëåäîâàòåëüíî,<br />

ÂÑß òâîÿ Îñü ïîäòîðìàæèâàåòñÿ. Ïîýòîìó,<br />

ìîæåò áûòü, ñòîèò ïîäóìàòü î ïîêóïêå êàìíÿ<br />

ïîáûñòðåå.<br />

Íó è, â-òðåòüèõ, áóäü ãèêîì, è âñå<br />

ó òåáÿ áóäåò çàøèáèñü è ïî æèçíè,<br />

è â Ëèíóêñå!<br />

54 Íüþñû 1 Ôåððóì 2 PC_Zone 3 X-Ñòèëü 4 Âçëîì

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!