Počítačové sítě a operační systémy Jaromír Plhák, 2/13/2018 PB169 Počítačové sítě a operační systémy Cvičení 5 – Práce s disky a Procesy /etc/rc.d/init/xxx start|stop|reload|restart ntsysv chkconfig PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Disk - obecné (1) •Průzkumník souborů -> Tento počítač -> Disk -> Vlastnosti •Kapacita •Využité/Volné místo –Doporučuje se minimálně 10 % (až 20 %) volného místa PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Disk - obecné (2) •Komprimace –Výhodné u systémových souborů –Data, která zabírají nejvíce místa (filmy, hudba, herní data...) už komprimovaná jsou –Nemělo by mít vliv na výkon •Indexace souborů –Vytváří databázi odkazů na soubory uložené v počítači –Windows indexují obsah pevného disku sama od sebe Indexování vytváří databázi odkazů na soubory uložené v počítači. Díky tomu funguje vyhledávání mnohonásobně rychleji, než například ve Windows XP. Nevýhodou však zůstává, že pravidelná indexace na pozadí často zatěžuje pevný disk a brzdí běh ostatních programů. Indexování existuje jako součást systému už od Windows Vista a znatelně urychluje například vyhledávání v nabídce Start. Windows však indexují obsah pevného disku sama od sebe a tento proces nelze naplánovat. http://www.winseven.cz/tipy-triky/defragmentace-disku-ve-windows-8/ PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Disk - nástroje •Kontrola disku –Alternativa: •cmd •chkdsk c: /f •Defragmentace a optimalizace jednotek –Optimalizace ve Windows 10 je probíhá pravidelně –Lze nastavit periodicitu •I zrušit –Analýzou zjistíte stav defragmentace PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Správa disku - Úkol •Pravým tlačítkem <> -> Správa disků •Zmenšete původní disk C –0,5 GB •Vytvořte novou část –Na volné místo –Jednotky bude mít označení Z: •Naformátujte nový(!) disk –NTFS –Pojmenujte http://wintip.cz/445-jak-rozdelit-pevny-disk PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Procesy - Windows •Spusťte Správce úloh (Task manager) –Nepoužívejte CTRL + ALT + DEL kvůli virtualizaci l(CTRL+ALT nahraďte ve Virtual Boxu pomocí Host Key) –Například přes příkazový řádek (taskmgr) –Spusťte nějakou aplikaci (například prohlížeč) •Zjistěte podrobnosti o jednotlivých aplikacích a procesech na pozadí •Sledujte využití prostředků –Zakažte spuštění OneDrive po startu počítače –Zjistěte spuštěné služby a rozsah jejich ID PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Zjišťování velikosti souborů a volného místa •df –Volné místo na oddílech –Přepínače -a (včetně souborů) -h (převedení na kB, MB, GB) •du –Zobrazí součet velikosti souborů v adresáři –Přepínač -s (pouze celková suma) PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Diskové svazky •/etc/fstab –Obyčejný textový soubor –Popisuje jednotlivé diskové svazky (oddíly disků) –filesystem table •„Tabulka souborových systémů“ –Může do něj zasahovat jen root • mount –Připojuje disky –mount /dev/fd0 /mnt/floppy -t vfat •Připojení blokového zařízení /dev/fd0 do adresáře /mnt/floppy se souborovým systémem typu vfat http://www.abclinuxu.cz/clanky/system/na-co-se-casto-ptame-etc-fstab 1 2 3 4 5 6 /dev/fd0 /mnt/floppy vfat noauto,user 0 0 1. zařízení, které budeme připojovat. 2. připojovací bod (adresář), do kterého se svazek připojí 3. typ souborového systému 4. parametry pro připojení 5. určuje, jestli bude svazek zálohován 6. nastavuje, jako kolikátý bude svazek kontrolován při startu První položkaMůže ji tvořit jak běžný oddíl disku (/dev/hda2), tak i označení vzdáleného svazku, třeba přes SMB (//kuchyn/dokumenty).Druhá položkaAdresář připojení. Obvykle je to některý z podadresářů /mnt. Pro swap se zadává none, protože ten se nikam nepřipojuje.Třetí položkaKompletní seznam souborových systémů, které podporuje vaše jádro naleznete v /proc/filesystems. Jejich množství a typ záleží na verzi jádra a zavedených modulech. Mohou to být: proc, tmpfs, ext2, ramfs, iso9660, devpts, ext3, usbdevfs, usbfs a další. Můžete také použít výraz auto a jádro se pokusí obsah samo detekovat.Čtvrtá položkaDo té je možno vyplnit celou řadu různých parametrů pro různé souborové systémy. Parametry se od sebe oddělují čárkou. Mezi hlavní patřínoauto (nepřipojuje svazek automaticky při startu) users (s tímto svazkem mohou pracovat i běžní uživatelé) codepage (znaková sada, ve které jsou názvy souborů) iocharset (znaková sada, do které se budou převádět názvy souborů) noexec (nespouštěj soubory na tomto médiu) umask (nastavení práv u souborů) ro (read only - pouze ke čtení) rw (read write - čtení i zápis) Kompletní popis naleznete v manuálové stránce k mount.Pátá položkaTuto položku používá program dump, který podle ní pozná, zda má provádět zálohu svazku. Jednička znamená zálohovat, nula nezálohovat.Šestá položkaPoslední položku používá program fsck aby zjistil, jako kolikátý bude svazek kontrolován. Jednička by měla označovat kořenový svazek (připojuje se do /), dvojka pak ostatní a nula ty, které se kontrolovat nebudou. PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Vytváření a rušení oddílů •fdisk –Slouží k manipulaci s oddíly na pevném disku –Umí pouze vytvářet a rušit oddíly, tedy nikoli měnit jejich velikost nebo je přesouvat –fdisk -l vypíše všechny existující oddíly –cfdisk •Grafické ovládání Proč dělit disk Linux je velmi variabilní systém a nedělá mu problém běžet na rozličně rozděleném (nebo nerozděleném) disku. Dokonce se obejde bez vlastního oddílu a spokojí se i s pouhým souborem na cizím souborovém systému. Nejjednodušší samozřejmě je nic nedělit (resp. pouze vyhradit jeden oddíl jako odkládací, swap, i když ani to není úplně nutné) a nainstalovat celý systém pohromadě. Není to ovšem nejlepší volba – sice nemusíme řešit problém s místem (volné místo je společné), ale přicházíme o celou řadu výhod, které rozdělený disk přináší. Základní výhody rozdělení disku jsou: - bezpečnost - snadná přeinstalace - volba souborového systému - lepší využití více disků - možnost ochrany proti zápisu PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Kontrola disku •badblocks (/dev/sda1) –Kontroluje disk na přítomnost nefunkčních bloků (částí disku) –Například kontrola nového disku –-s •Vypisuje, jaká část disku je už zkontrolovaná http://www.thegeekstuff.com/2012/08/fsck-command-examples/ PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Úkol •Celkový počet sektorů disku (treba hdparm) fdisk -l PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Spouštění procesů na pozadí •Ctrl-z •bg •fg •kill •ps •jobs Úlohu odešleme na pozadí kombinací kláves CTRL-Z. Úloha odeslaná na pozadí tímto způsobem je pozastavená, takže chceme-li ji pustit, musíme použít příkaz bg. $ sleep 100 ^Z [1]+ Pozastaven sleep 100 $ bg [1]+ sleep 100 & $ [1]+ Dokonán sleep 100 Mimo příkaz bg, kterým spustíme úlohu pozastavenou na pozadí, můžeme svůj spuštěný program příkazem fg z pozadí vylovit a poslat opět na povelovou řádku, do popředí: $ sleep 100 ^Z $ fg sleep 100 $ Úlohu lze odeslat na pozadí i přímo, bez nutnosti mačkat kombinaci CTRL-Z, uvedením znaku & (ampersand) na konci řádku s příkazem. $ sleep 100 & [1] 26924 $ sleep 200 & [2] 26926 $ fg %1 sleep 100 ^Z [1]+ Pozastaven sleep 100 $ ps $ kill 3120 $ kill %3 [1]- Ukončen (SIGTERM) sleep 100 PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Procesy - Linux •Zjistěte statistiku využité fyzické paměti (free) •Zjistěte, jaké procesy jsou spuštěny a kým v průběhu času (top) •Vypište procesy v systému (ps, pstree) –Které byly spuštěny ve stejném terminálu –Všechny procesy běžící v systému –Procesy ve stromové struktuře Swap; top; ps; ps ax; pstree; http://www.linuxsoft.cz/article.php?id_article=409 Swap: serves basically two purposes. It allows the system to continue to operate when physical memory runs out at a performance cost - run out of physical memory without it, you get crashes, lockups, and processes being killed with out of memory errors the second they ask for more memory than the system has. The reduced performance in this case is a symptom of being forced to use it for active processes, rather than a symptom of having too much swap. It also lets physical memory be used more efficiently, by moving less-used pages in memory to disk until they are needed again. This frees up memory for cacheing purposes, which is usually a more efficient use of space than having infrequently used segments of program memory just sitting there locked in physical ram. A long-standing best practice has been to size swap space at twice the physical memory, in other words, if you have 1GB of ram, devote 2GB to swap. This is still good advice, but in practice more modern systems with 4GB or more of physical ram can usually drop this to the same amount of swap as the system has of physical memory. ----- Top: Dalším příkazem, který vypisuje aktuálně běžící procesy a spoustu dalších důležitých systémových informací je příkaz top. Tento příkaz narozdíl od předchozího příkazu ps nevypisuje pouze výpis aktuálního stavu procesů v systému, ale dokáže tento výpis dynamicky po určitých časových intervalech měnit. Díky tomu můžeme v reálném čase sledovat změny stavu procesů, jejich "boj" o procesor, aktuální velikost paměti, které procesy alokují a spoustu dalších užitečných informací. Defaultní časový interval změny výpisu je nastaven na 5 sekund, lze jej však změnit pomocí parametru -d. Pozor na to, že samotný proces top se bude objevovat v horní části jeho výpisu, protože je poměrně náročný na systémové prostředky a zmenšení intervalu výpisu bude náročnost na systémové prostředky ještě zvyšovat. ----- Ps: Začněme příkazem, který nám podá informaci o procesech, které jsou v systému (úmyslně se vyhýbám spojení "běží v systému"), protože jak uvidíte sami, nemusí tomu tak být. Příkaz pro výpis procesů v systému se nazývá ps (process status). Příkaz ps bez parametrů vypíše pouze procesy uživatele, který tento příkaz spustil a pouze ty procesy, které byly spuštěny ze stejného terminálu jako samotný příkaz ps. Chceme-li vypsat všechny procesy běžící v systému, tak použijeme následující parametry: ps ax Asi budete mít tento výpis podstatně delší, každopádně je z něj dobře patrné, že pracuji v editoru vim na tomto souboru, který jsem si pracovně nazval bash_proces.txt. Také můžete vidět, že na posledním místě je právě mnou spuštěný proces ps ax. Možná vás trochu mate ten druhý bash spuštěný ve třetí konsoli - je to nově spuštěný shell uživatele root, protože jsem se v této konsoli přihlásil jako normální uživatel a potom jsem spustil příkaz su. PB169 Počítačové sítě a operační systémy Snímek ‹#› z 52 Procesy - Linux (2) •Vytvořte proces na pozadí (&, jobs, bg, fg, kill) –Ověřte si, že je mezi procesy na pozadí –Přesuňte ho na popředí –Pozastavte ho (ověřte) –Spusťte jej (ověřte) –Ukončete jeho činnost (ověřte) •Spusťte nový proces se sníženou prioritou o 10 (nice, renice) –Ověřte prioritu a zvyšte prioritu procesu o 5 •Může jen root •Zjistěte, co dělá příkaz uptime Ps -o pri Dalším příkazem, který si v tomto díle osvětlíme a který úzce souvisí se správou procesů bude příkaz sloužící ke změně priority daného procesu. Jedná se o příkaz nice. Jistě si ještě vzpomenete na můj úvodní stručný popis boje jednotlivých procesů o systémové prostředky. Linux nám dává neomezené možnosti a proto můžeme tento boj částečně ovlivnit i my. Pomocí příkazu nice můžeme jako běžný uživatel měnit prioritu námi spouštěných procesů a to v rozsahu od 0do +19. Jako běžný uživatel můžeme tedy prioritu pouze snižovat od původní hodnoty (obvykle hodnota 0), kterou mimo jiné zjistíme příkazem nice bez parametru. Jako uživatel root můžeme prioritu jednotlivých procesů jak snižovat, tak i zvyšovat a to v rozmezí hodnot -20(nejvyšší priorita) až +19 (nejnižší priorita). Příkaz pro snížení priority u procesu rm -rf big_folder bude tedy vypadat následovně nice -10 rm -rf big_folder Zvýšení priority vypadá následovně nice --10 rm -rf big_folder nebo také nice -n -10 rm -rf big_folder Prioritu je výhodné snižovat zejména u operací, které využívají čtení či zápis na disk, tedy například při vyhledávání souborů v celém souborovém systému nebo při zálohování. Ještě bych měl dodat, že příkazemnice můžeme měnit prioritu pouze u spouštěného procesu, nikoliv u již běžícího procesu v systému. Pro změnu priority procesu běžícího v systému slouží příkaz renice. Lze jím měnit priorita procesu (či více procesů najednou) na základě PID procesu, nebo na základě vlastníka procesu či skupinového vlastníka procesu. Běžný uživatel může měnit prioritu pouze svých procesů a navíc může prioritu pouze snižovat stejně jako tomu bylo u příkazu nice. renice +10 272 272: old priority 0, new priority 10 Tímto jsem snížil prioritu u procesu vim bash_proces.txt.