1. Онемогућите Апацхе модуле
2. Подесите мпм_префорк
3. Смањите своје дневнике
4. Размислите о замени мод_пхп
5. Размислите о замени мпм_префорк
Апацхе је веома једноставан за инсталирање и иницијализацију, али долази са бројним унапред инсталираним модулима и као резултат тога можете имати проблема са перформансама када радите на ВПС са мало РАМ-а.
Дакле, не постоји увек потреба за већим сервером, али једноставно можете да конфигуришете Апацхе подешавања на прави начин и да имате најбоље могуће перформансе. Ево неколико ствари које треба да урадите да бисте то постигли.
Овај водич је за Убунту 14.04 ЛТС, али су принципи слични претходним верзијама.
1. Онемогућите Апацхе модуле
Можете видети листу свих модула инсталираних са командом
ls /etc/apache2/mods-available/и свих модула који су тренутно активни са ls /etc/apache2/mods-enabled/.
На почетној Апацхе инсталацији постоји 15 или више модула који су подразумевано омогућени. Ово је превише и већина њих није потребна.
Пре свега, морате да направите листу свих тренутно активних модула и да је сачувате за будућу употребу у случају да онемогућите нешто што је потребно и морате поново да га омогућите. Затим једноставно онемогућите модуле један по један са командом (користећи модулеНаме као пример):
sudo a2dismod moduleName
... и поново покрените Апацхе након сваке промене да бисте видели да ли долази до грешке.
Неки модули које бисте требали онемогућити ако вам нису потребни су:
- ПХП
- ССЛ
- Препиши
- Перл
- Питхон
Након што онемогућите модул и поново учитате Апацхе конфигурацију, можете да проверите да ли постоје грешке тако што ћете отворити Апацхе дневник грешака помоћу уређивача текста као што је нано.
sudo nano /var/log/apache2/error.log
Ако добијете грешку, само поново омогућите одговарајући модул са:
sudo a2enmod moduleName
Затим поново покрените Апацхе док не средите минималну листу!
2. Подесите мпм_префорк
Са подразумеваном Апацхе конфигурацијом (која није добро избалансирана за мале сервере), меморија се може брзо исцрпити и ваш сервер у облаку може постати преоптерећен. Ово ће довести до тога да веб страница виси у стању сталног учитавања. Вероватно је да ће сервер одржавати ове мртве Апацхе процесе активним, покушавајући да непотребно опслужују садржај, смањујући број процеса доступних за опслуживање.
Да бисте решили овај проблем, прво морате да сазнате колико је РАМ-а потребно вашем серверу осим Апацхе-а и просечне количине меморије коју Апацхе процеси користе.
Док је Апацхе покренут, отворите горњу команду на серверу.
top -bn 1
У табели резултата:
- додајте бројеве у колони РЕС за сваки процес, осим апацхе2, а затим га уклоните из укупне количине РАМ-а. Рецимо да добијете 600 МБ .
- добити просек свих апацхе2 процеса . Рецимо да добијете 20 МБ .
- онда само урадите дељење 600/20 = 30 максималних Апацхе процеса
Следећи корак, уредите конфигурациону датотеку модула мпм_префорк:
sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf
Може изгледати овако:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxRequestWorkers 30
MaxConnectionsPerChild 0
</IfModule>
Где:
- СтартСерверс: број серверских процеса за покретање.
- МинСпареСерверс: минимални број серверских процеса који се чувају резервни.
- МакСпареСерверс: максималан број серверских процеса који се чувају резервни.
- МакРекуестВоркерс: максималан број серверских процеса дозвољен за покретање.
- МакЦоннецтионсПерЦхилд: максималан број захтева који серверски процес опслужује.
У подешавању МакРекуестВоркерс , морате га променити у оно што сте пронашли у горњој подели.
Сада, ако се ваш ВПС преоптерети и достигне максималан број клијената које може да опслужи одједном, он ће служити њима, а други корисници ће једноставно брзо покварити. Затим могу поново да учитају страницу да би покушали поново. Много је боље да се ове везе брзо затворе, али да сервер остане у здравом стању уместо да остане отворен заувек.
3. Смањите своје дневнике
Да бисте максимизирали перформансе, дефинитивно можете да евидентирате мање информација. У подразумеваној Апацхе конфигурацији, поставка ЛогЛевел је подешена на упозорење . То можете да промените у грешку да бисте задржали само поруке о грешци.
Отворите Апацхе конфигурациону датотеку:
sudo nano /etc/apache2/apache2.conf
Пронађите линију:
LogLevel warn
... и промените га у:
LogLevel error
Затим сачувајте датотеку и поново покрените Апацхе са:
sudo service apache2 restart
Подразумевана датотека коју Апацхе чува евиденције је /вар/лог/апацхе2/еррор.лог .
4. Размислите о замени мод_пхп
Ако покрећете ПХП сајт, постоји велика шанса да користите модул мод_пхп. Овај модул може проузроковати да сваки Апацхе подређени процес користи преко 100 МБ РАМ-а чак и ако су захтеви за статичке ресурсе као што су слике, цсс и јавасцрипт.
Одлична алтернатива је пхп-фпм модул, који је посебан процес који користи фастцги протокол. Са пхп-фпм, меморија за Апацхе процесе може пасти на 10 МБ за статички садржај и 60 МБ за динамички.
Иако ће можда бити мало тешко натерати ствари да раде са овом променом, вреди труда.
5. Размислите о замени мпм_префорк
Већина Апацхе конфигурација користи модул мпм_префорк који је безбедан нити и користи више подређених процеса са по једном нити и сваки процес управља једном везом у исто време. Ако вам нису потребни екстерни модули као што су ПХП или Раилс, онда га можете заменити модулом апацхе2-мпм-воркер , који је често бржи. Воркер МПМ користи више подређених процеса са много нити, а свака нит управља једном везом у исто време.
Да бисте омогућили радни модул, морате га инсталирати.
sudo apt-get install apache2-mpm-worker
Ова команда ће деинсталирати мпм_префорк , мос_пхп и друге некомпатибилне додатне модуле.