С времето Linux става все по-тежък. Софтуерът за Linux дистрибуциите стана сложен и времето за зареждане на програмите се увеличава. Но има начин за оптимизация на процесите, чрез която системата започва да реагира по-бързо, а приложенията стартират веднага.
Тук ще разгледаме три съвсем лесни начина за ускоряване на всяка Linux дистрибуция. По-опитните потребители със сигурност познават тези методи, но тук те са събрани на едно място. Предлаганите техники дават възможност за получаване на значително ускоряване реакцията на операционната система, както и на общото бързодействие. Предложените методи оказват особено голямо влияние на по-старите машини, но и при съвременните компютри се забелязва неголям ръст на производителността.
Първа стъпка: инсталиране на prelink
Предварителното свързване е модификация на изпълнимия файл, в която наготово са включени резултатите от динамичното свързване на споделените библиотеки. Да се опитаме да изясним нещата.
Преди много години Linux приложенията бяха съвсем опростени и за тяхната работа бяха необходими само няколко динамично зареждани системни библиотеки. Това бяха a.out изпълнимите файлове, предлагащи пределна простота на програмирането и изпълнението.
При файловете a.out, предварително се знае на кой адрес ще бъдат заредени по отношение паметта на процеса и на кои адреси ще се намират подпрограмите, функциите, променливите и т.н. Този подход осигурява висока скорост, но създава проблеми – какво ще стане, ако две библиотеки бъдат заредени на един и същ адрес? Ето защо бе въведен ELF форматът за изпълнимите файлове. Вече не се налагаше изпълнимите файлове да избират адресите във виртуалната памет, където да се заредят и тази отговорност бе прехвърлена на линкера (свързващия редактор). При ELF, адресите на зареждане на приложенията, библиотеките, функциите и т.н, се изчисляват при стартирането на програмата.
ELF бе за Linux една огромна стъпка напред и стана възможно да се зареждат и стартират голям брой приложения, използващи едни и същи динамични библиотеки без да възникват каквито и да било проблеми. Но от гледна точка на производителността, това е провал. Динамичното свързване е бързо и при използването само на няколко споделени библиотеки, когато няма забавяне. Но ако се стартира тромаво приложение, използващо около и над 50 споделени библиотеки, забавянето става съществено и може да достигне няколко и дори десетки секунди.
Prelink модифицира изпълнимите файлове по такъв начин, че в тях предварително са включени резултатите от необходимите динамични свързвания. Тоест, предварително се знаят необходимите адреси в паметта и не се налага тяхното изчисляване при стартирането.
Възможността „prelink“ бе предложена от Джейкъб Джелинек още през 2004 година това се превърна в един от най-удачните методи за повишаване скоростта на стартиране на приложенията. Достига се 50% ускоряване, а при OpenOffice, KDE, Gnome, и повече.
Инсталирането на prelink, който е включен в стандартните хранилища, може да стане както от софтуерния мениджър, така и от командния ред.
Така например, за Debian GNU/Linux, Ubuntu и техните производни в терминала трябва да се въведе следното:
sudo apt install prelinkВ Arch-подобните дистрибуции командата е:
sudo pacman -S prelinkА за фамилията Fedora/Red Hat трябва да се въведе следното:
sudo yum install prelinkСлед като prelink бъде инсталиран, е добре леко да се промени един от конфигурационните файлове. В произволен текстов редактор отваряме файла /etc/default/prelink с правата на администратор, намираме реда „PRELINKING=unknown“ и заменяме думата „unknown“ на „yes“. Записваме файла.
Сега програмата е готова за работа. В терминала въвеждаме следното:
sudo prelink -avfmRКомпютърът ще работи известно време, през което ще бъдат направени съответните връзки към необходимите библиотеки и приложенията ще започна да работят по-бързо.
Ако искате да отмените предварителното свързване, достатъчно е да въведете следното:
sudo prelink -uaВажно:
- prelink не може да обработва файловете от проекта wine и няма как да бъде ускорен софтуера за ОС Windows.
- След инсталирането на нови приложения и/или библиотеки, добре е prelink да се изпълни още веднъж
Втора стъпка: Инсталираме и активираме preload
Това е демон, който работи във фонов режим. Програмата натрупва статистика за най-често стартираните програми и кешира използваните от тях библиотеки. Това до известна степен ускорява зареждането на приложенията.
Точно както prelink, така и preload е включена в стандартните хранилища и може да се инсталира чрез софтуерния мениджър:
За любителите на командния ред, командата за Debian GNU/Linux семейството е следната:
sudo apt install preloadЗа Arch Linux и неговите „роднини“:
sudo pacman -S preloadЗа Fedora/Red Hat и CentOS:
sudo yum install preloadСтандартните настройки са подходящи за почти всички. Но ако някой иска да вникне в тънкостите, може да разгледа файла /etc/preload.conf.
Да уточним, че демонът не започва работа веднага, а след като натрупа статистиката.
Друг важен момент е, че preload може съществено да увеличи скоростта на зареждане на приложенията, но само в случай, че има достатъчно RAM. Минимумът, при който preload започва да оказва влияние е 2 GB. Това е минимумът: при по-малко оперативна памет preload може само да попречи.
Трета стъпка: оптимизираме използването на swap паметта
Около използването на swap отдавна се водят горещи дискусии. Но това е най-директния начин за оптимизиране на производителността. Нека се абстрахираме от чуждите мнения и да приемем, че swap е необходим и да се надяваме, че не се използва като файл, а като дял.
Обикновено, размерът на swap областта е равен на капацитета на оперативната памет. Само че това е по-актуално за компютри с от 2 до 8 GB оперативна памет. Ако имате 16 GB или повече, едва ли ще искате да отрежете от капацитета на бързия си флаш диск толкова много дисково пространство и ще се ограничите с от 2 до 4 GB. А ако имате по-малко от 1 GB, никакъв swap няма да помогне.
По подразбиране, Linux започва да използва swap, когато оперативната памет се запълни до 40%. Но скоростта на работа на хард и дори флаш диска е много по-бавна от тази на оперативната памет, а именно там се намира swap пространството. Когато започне неговото използване, цялата система започва осезателно и дразнещо да се забавя. Ако имате 4 GB оперативна памет, то само стартирането на който и да е уеб браузър ще доведе до използването на swap, а това забавя системата.
За щастие, в Linux е съвсем лесно да се промени прага, при който започва използването на swap.
Нека първо проверим, какъв е прагът на задействане на swap паметта:
cat /proc/sys/vm/swappinessАко излезе съобщение „60“, това означава, че 40% са за RAM паметта и 60% за swap – тоест, прагът за включване на swap раздела е 40%.
Лесно можем да променим този праг. Един много добър компромис е swap разделът да се включи при 80 и дори повече процента използване на оперативната памет. Промяната на прага на 80% става с помощта на следната команда:
sudo sysctl -w vm.swappiness=20Можем да се убедим, че всичко се е получило, като отново въведем предишната команда:
cat /proc/sys/vm/swappinessАко в терминала се вижда „20“ – всичко се е получило.
Не могат да се дадат конкретни съвети за прага на включване на swap пространството. Всичко зависи от конкретно изпълняваните програми и от самия компютър. Обикновено, идеалният баланс е в пределите от 10 до 30 процента.
Описаните дотук три съвсем лесни стъпки могат значително да ускорят която и да било GNU/Linux дистрибуция. Не бива да забравяме, че всяко подобно решение е въпрос на компромис. Всеки сам трябва да се увери, кои точно параметри ускоряват неговата система.
Важно уточнение: след рестартирането на компютърната система, настройките на прага на включване на swap файла се губят и се налага описаните по-горе команди да се въведат отново, преди да е стартирането дори и едно приложение. Очевидно е, въпросната команда е по-удобно да бъда изпълнена автоматично след стартирането на системата. Но това е тема за друг материал.
Прочетете още
- 07:31 Семейните аптеки настояват за по-справедливи условия в новия механизъм на НЗОК
- 12:06 Жителка на Пазарджик в безизходица: Две години тормоз и никой не реагира ВИДЕО
- 11:00 Бездомно куче сее страх в Карлово, нападна пудел и захапа питбул
- 13:20 Арест в Пловдив: Мъж вика и се съпротивлява на полицаи ВИДЕО