Portál AbcLinuxu, 5. května 2024 22:07

SSD v Linuxu

5.12.2010 04:35 | Přečteno: 3626× | Linux | Výběrový blog | poslední úprava: 5.12.2010 04:39

Plánuji si k Vánocům koupit nové PC. SSD disky mě lákají už delší dobu a řekl jsem si, že zkusím nějaký za rozumnou cenu, na který se mi vejde systém i /home. Tak jsem si ho před několika dny koupil a to konkrétně: 64GB Crucial RealSSD C300 2.5-inch SATA 6GB/s, CTFDDAC064MAG-1G1. U místních prodejců jsem ho sháněl marně, ale zkusil jsem napsat do CZC. Ochotně odepsali, že ho mohou sehnat do dvou dnů a já to teda vzal. Za cenu mírně pod 3 kKč jsem obdržel základní verzi bez adaptéru do klasické 3,5 palcové pozice. Záruku jsem dostal jen dva roky, i když Crucial nabízí na přiloženém papíru 3 roky.

Pokud si říkáte co to kruci je ten Crucial, tak odpovím, že jde o značku pro spotřebitele a vlastní ji Lexar Media, která je dále součástí Micron Technology. Ta už by mělo být trochu povědomá, protože jde o jednoho z největších výrobců polovodičů, zejména pamětí. Nepřekvapí tedy, že tohle SSD obsahuje MLC NAND Flash od Micronu, stejně jako DDR3 RAM o velikosti 128 nebo 256 MB (liší se v různých recenzích) pro optimalizaci provozu. Hlavní řadič je pak od Marvellu a obsahuje dvě jádra ARM, jedno pro SATA 6 Gb/s a druhé na samotné paměti.

Ještě před připojením do PC jsem procházel web Crucialu a našel jsem tam nedávno vydaný firmware 006, který nahrazuje starší továrně nastavený 002. Ve změnách je uvedeno, že jde o samá vylepšení, tak jsem si řekl, že to zkusím a při tom jsem si taky aktualizoval BIOS základní desky. Aktualizace firmwaru jde provést pouze na SATA 3 Gb/s a to ještě v režimu kompatibility na portech 0-3, přičemž moje deska má vyvedeny pouze tři, takže jsem si nechtěně rozhodil RAID při přepojování portů. Nakonec ale vše dobře dopadlo.

Konečně se dostávám k tomu, co je v nadpisu a to provoz v Linuxu. Prošel jsem si nejdřív článek o SSD na Arch wiki. Rozparceloval jsem si to pomocí gdisku, který používá GPT a automaticky zarovnává na megabajty. Bootování budu ještě muset vyřešit, protože starý dobrý Grub GPT neumí, na pokusy to zatím stačí (než si dokoupím zbytek PC). Souborový systém jsem zvolil Ext4, protože Btrfs ještě není dokončený a stabilní. Montovací příznaky jsem nastavil dle doporučení noatime,discard, ten druhý je tu pro podporu TRIM, ale na to je potřeba ještě v BIOSu zapnout AHCI (což mám). Při dalším zkoumání rozdílů mezi atime, relatime a noatime jsem s hrůzou zjistil jak je defaultní atime neefektivní a zpomalující a že moje HDD ho stále používají. U nich jsem hned přidal relatime, po příštím bootu se uvidí, jestli je rozdíl patrný :)

Ještě před rozdělením a formátováním jsem provedl testy rychlosti uvedené ve wiki. Jako první hdparm ukazoval dost nízké hodnoty, což mě trochu vyděsilo. Kopírovací testy s dd byly taky dost pomalé. Nakonec jsem zkusil Diskový nástroj Gnome a tam se objevily očekávané výsledky podle výrobcem udávaných hodnot s tím, že mě u čtení momentální brzdí pomalé SATA 3 Gb/s. Později po tomto testu se už vylepšily i výsledky hdparmu, který ukazuje přes 240 MB/s. První obrázek je čerstvé SSD ještě s rebuildujícím se RAID na pozadí, což asi ovlivnilo přístupové doby. Druhý je pro srovnání aktuální, když je systém poměrně málo zatížen. Na disk jsem zatím dal jen moji nejpoužívanější hru, MORPG Eternal Lands a efekt je rychlé spuštění i načítání map, které je nyní brzděno CPU a grafikou místo HDD :)

O dovolené kolem Vánoc budu mít víc času na zprovoznění kompletního systému a dalších testů a budu vás dále informovat, jak se Linuxu bude líbit moje SSD na SATA 6 Gb/s.        

Hodnocení: 100 %

        špatnédobré        

Obrázky

SSD v Linuxu, obrázek 1 SSD v Linuxu, obrázek 2

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (4) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

5.12.2010 09:50 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: SSD v Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
"U nich jsem hned přidal relatime, po příštím bootu se uvidí, jestli je rozdíl patrný :)"
Zkus bez rebootu mount -o remount,relatime /.
5.12.2010 10:59 platYpus
Rozbalit Rozbalit vše Re: SSD v Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
co se tyce mountu, tak bych u SSD uvazoval o "-noatime"

Milan Lajtoš avatar 5.12.2010 11:10 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: SSD v Linuxu
Ešte aj nodiratime.
“Every great achievement was once considered impossible.”
5.12.2010 12:17 R
Rozbalit Rozbalit vše Re: SSD v Linuxu
Zbytocne. "nodiratime" je podmnozina "noatime".
Milan Lajtoš avatar 5.12.2010 11:09 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: SSD v Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Pred dvoma týždňami som si kúpil OCZ Vertex 2 60GB. Len škoda, že ho nemôžem naplno využiť, keďže mám len SATA1. :(

$ hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   7748 MB in  1.99 seconds = 3885.93 MB/sec
 Timing buffered disk reads: 498 MB in  3.01 seconds = 165.49 MB/sec
“Every great achievement was once considered impossible.”
Genunix avatar 5.12.2010 11:27 Genunix | skóre: 17 | blog: Memdump
Rozbalit Rozbalit vše Re: SSD v Linuxu
Odpovědět | Sbalit | Link | Blokovat | Admin
Já používám tyto připojovací parametry:
/dev/mapper/vg0-root on / type ext4 (rw,noatime,nodiratime,discard,nobh,commit=60)
/dev/mapper/vg0-home on /home type ext4 (rw,noexec,nosuid,nodev,noatime,nodiratime,nouser_xattr,discard,nobh,commit=60,acl)

Samozřejmě na ext4 vypnutý žurnál, scheduler noop. Namountované tmpfs na /var/log a /tmp (+ link /var/tmp), abych snížil zápisy na minimum.
$ hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   2458 MB in  2.00 seconds = 1230.10 MB/sec
 Timing buffered disk reads:  730 MB in  3.00 seconds = 243.07 MB/sec
*´¨`*.¸.·´¨`*.¸.·*´`*·>>>
Milan Lajtoš avatar 5.12.2010 11:47 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
Rozbalit Rozbalit vše Re: SSD v Linuxu
Akurát som skúsil TRIM cez parameter discard a začal mi mrznúť systém:
Dec  5 11:18:01 babraq kernel: BUG: scheduling while atomic: dbus-launch/2013/0x00000002
Dec  5 11:18:01 babraq kernel: Modules linked in: coretemp cpufreq_ondemand freq_table hid_apple usbhid hid joydev tpm_infineon uvcvideo videodev v4l1_compat v4l2_compat_ioctl32 arc4 ecb 
snd_hda_codec_si3054 snd_h
da_codec_realtek snd_seq_dummy snd_seq_oss iwlagn snd_seq_midi_event snd_seq snd_seq_device snd_hda_intel snd_pcm_oss iwlcore snd_hda_codec snd_mixer_oss uhci_hcd snd_hwdep mac80211 sdhci_pci tg3 sdhci 
snd_pcm tpm
_tis snd_timer firewire_ohci libphy ehci_hcd battery tpm mmc_core firewire_core tpm_bios ac wmi led_class crc_itu_t cfg80211 snd compal_laptop processor usbcore psmouse soundcore sg rfkill evdev thermal 
serio_raw 
i2c_i801 snd_page_alloc pcspkr iTCO_wdt iTCO_vendor_support shpchp intel_agp pci_hotplug ext4 mbcache jbd2 crc16 sr_mod cdrom sd_mod pata_acpi ata_piix libata scsi_mod nouveau ttm drm_kms_helper drm 
i2c_algo_bit v
ideo output i2c_core button
Dec  5 11:18:01 babraq kernel: Pid: 2013, comm: dbus-launch Not tainted 2.6.36-ARCH #1
Dec  5 11:18:01 babraq kernel: Call Trace:
Dec  5 11:18:01 babraq kernel: [<ffffffff81045ed1>] __schedule_bug+0x61/0x70
Dec  5 11:18:01 babraq kernel: [<ffffffff8139311b>] schedule+0x89b/0x9c0
Dec  5 11:18:01 babraq kernel: [<ffffffff8139379d>] schedule_timeout+0x21d/0x360
Dec  5 11:18:01 babraq kernel: [<ffffffff811d303d>] ? generic_make_request+0x2cd/0x550
Dec  5 11:18:01 babraq kernel: [<ffffffff81392740>] wait_for_common+0xc0/0x150
Dec  5 11:18:01 babraq kernel: [<ffffffff8104e690>] ? default_wake_function+0x0/0x10
Dec  5 11:18:01 babraq kernel: [<ffffffff811d333b>] ? submit_bio+0x7b/0x100
Dec  5 11:18:01 babraq kernel: [<ffffffff81392878>] wait_for_completion+0x18/0x20
Dec  5 11:18:01 babraq kernel: [<ffffffff811da8b9>] blkdev_issue_discard+0x1b9/0x210
Dec  5 11:18:01 babraq kernel: [<ffffffffa025a7b6>] ext4_free_blocks+0x696/0xb80 [ext4]
Dec  5 11:18:01 babraq kernel: [<ffffffffa0251c38>] ? __ext4_handle_dirty_metadata+0x118/0x120 [ext4]
Dec  5 11:18:01 babraq kernel: [<ffffffffa0250f5c>] ext4_ext_truncate+0x8dc/0xa80 [ext4]
Dec  5 11:18:01 babraq kernel: [<ffffffff811ed957>] ? __prop_inc_single+0x57/0x60
Dec  5 11:18:01 babraq kernel: [<ffffffffa0231bd8>] ext4_truncate+0x178/0x5e0 [ext4]
Dec  5 11:18:01 babraq kernel: [<ffffffff810fe08a>] ? unmap_mapping_range+0xaa/0x270
Dec  5 11:18:01 babraq kernel: [<ffffffff810eb9a6>] vmtruncate+0x56/0x70
Dec  5 11:18:01 babraq kernel: [<ffffffffa0232baa>] ext4_setattr+0x14a/0x460 [ext4]
Dec  5 11:18:01 babraq kernel: [<ffffffff811461cc>] notify_change+0x18c/0x380
Dec  5 11:18:01 babraq kernel: [<ffffffff8112c5cf>] do_truncate+0x5f/0x90
Dec  5 11:18:01 babraq kernel: [<ffffffff811b043a>] ? security_inode_permission+0x1a/0x20
Dec  5 11:18:01 babraq kernel: [<ffffffff811baaf1>] ? tomoyo_path_truncate+0x11/0x20
Dec  5 11:18:01 babraq kernel: [<ffffffff8113bad9>] do_last+0x5f9/0x790
Dec  5 11:18:01 babraq kernel: [<ffffffff8113be5d>] do_filp_open+0x1ed/0x680
Dec  5 11:18:01 babraq kernel: [<ffffffff81138407>] ? d_alloc_and_lookup+0x47/0x90
Dec  5 11:18:01 babraq kernel: [<ffffffff81139c6e>] ? putname+0x2e/0x40
Dec  5 11:18:01 babraq kernel: [<ffffffff811473f4>] ? alloc_fd+0xf4/0x150
Dec  5 11:18:01 babraq kernel: [<ffffffff8112d400>] do_sys_open+0x60/0x120
Dec  5 11:18:01 babraq kernel: [<ffffffff8100d1cd>] ? math_state_restore+0x3d/0x60
Dec  5 11:18:01 babraq kernel: [<ffffffff8112d4db>] sys_open+0x1b/0x20
Dec  5 11:18:01 babraq kernel: [<ffffffff8100af42>] system_call_fastpath+0x16/0x1b
“Every great achievement was once considered impossible.”

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.