Προς το περιεχόμενο

Λιγότερα modules, μεγαλύτερη ταχύτητα;


alkisg

Προτεινόμενες αναρτήσεις

Θα δω καμιά διαφορά στην ταχύτητα (μάλλον while booting;) ή στα resources (μνήμη;) αν ψάξω ποια modules δεν πρόκειται να χρησιμοποιήσω ποτέ και τα αφαιρέσω από τη λίστα του kernel;

Είναι και μερικά που φορτώνονται (lsmod) αλλά δεν τα χρησιμοποιώ, π.χ. υποστήριξη παράλληλης θύρας που δεν έχει το laptop μου...

Αξίζει τον κόπο; Η διαδικασία ποια είναι, ο kernel έχει μια λίστα με modules και τα δοκιμάζει όλα με τη σειρά και φορτώνει μόνο αυτά που του αναφέρουν success ή κάτι τέτοιο;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Alkisg λογικά και ανάλογα με το hardware που έχεις θα δεις μικρή διαφορά στην ταχύτητα κυρίως στην εκκίνηση και πολύ λιγότερo στην καθαρή λειτουργία.

 

Αν είσαι σίγουρος ότι ένα module δεν χρειάζεται να φορτώνεται ο πιο απλός τρόπος για να το σταματήσεις είναι να το προσθέσεις (το ακριβές ονομά του στο /etc/modprobe.d/blacklist

δλδ.

> blacklist (modulename) 

 

πχ το δικο μου

>[dimitris@localhost ~]$ cat /etc/modprobe.d/blacklist
blacklist snd-usb-audio
blacklist rt61pci

# Interferes with wlan0
blacklist bcm43xx

#fucks up the wlan usb
blacklist r8187
blacklist rtl8187

 

Αν ένα module τώρα παρά το ότι το κατέγραψες στην Blacklist επιμένει να φορτώνεται, βάλε το στην Blacklist ως

>install (modulename) /bin/true 

 

Αν έχεις RH/centos δώσε στον /etc/modprobe.conf

 

> alias (modulename) off 

 

 

 

το lsmod μου είναι

>dimitris@localhost ~]$ lsmod
Module                  Size  Used by
nvidia               7488448  34
acpi_cpufreq            9388  1
fuse                   49492  1
r8169                  31492  0
snd_seq_dummy           3876  0
snd_seq_oss            32608  0
snd_seq_midi_event      7616  1 snd_seq_oss
af_packet              22628  2
snd_seq                52592  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          8524  3 snd_seq_dummy,snd_seq_oss,snd_seq
video                  19120  0
output                  3904  1 video
thermal                16060  0
sbs                    14440  0
snd_pcm_oss            41664  0
snd_mixer_oss          16640  1 snd_pcm_oss
sbshc                   6976  1 sbs
processor              36360  2 acpi_cpufreq,thermal
snd_hda_intel         343284  1
fan                     4868  0
container               4960  0
button                  8528  0
snd_pcm                75652  2 snd_pcm_oss,snd_hda_intel
snd_timer              23556  2 snd_seq,snd_pcm
snd_page_alloc         10600  2 snd_hda_intel,snd_pcm
snd_hwdep               9444  1 snd_hda_intel
dock                   10512  0
battery                13700  0
snd                    54372  11 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_intel,snd_pcm,snd_timer,snd_hwdep
soundcore               8000  1 snd
ac                      6212  0
ide_cd                 39552  0
binfmt_misc            12072  1
loop                   17988  0
dm_mod                 58240  0
cpufreq_ondemand        8940  1
cpufreq_conservative     7912  0
cpufreq_powersave       1920  0
freq_table              4928  2 acpi_cpufreq,cpufreq_ondemand
usbkbd                  7264  0
gspca                 679280  0
intel_agp              25108  0
amd64_agp              12644  0
agpgart                34152  3 nvidia,intel_agp,amd64_agp
nvram                   8968  0
mmc_block              13828  0
sdhci                  18244  0
mmc_core               49412  2 mmc_block,sdhci
8250_pci               24608  0
ohci1394               33456  0
ieee1394               92344  1 ohci1394
bttv                  174292  0
firmware_class          9632  1 bttv
ir_common              35524  1 bttv
compat_ioctl32          1440  1 bttv
i2c_algo_bit            6660  1 bttv
videobuf_dma_sg        13636  1 bttv
videobuf_core          17668  2 bttv,videobuf_dma_sg
btcx_risc               5064  1 bttv
tveeprom               15856  1 bttv
i2c_core               24064  4 nvidia,bttv,i2c_algo_bit,tveeprom
videodev               28096  2 gspca,bttv
v4l2_common            17536  2 bttv,videodev
v4l1_compat            14532  2 bttv,videodev
floppy                 57892  0
yenta_socket           26636  0
rsrc_nonstatic         13664  1 yenta_socket
pcmcia_core            40180  2 yenta_socket,rsrc_nonstatic
evdev                  12000  4
sr_mod                 18340  0
cdrom                  36160  2 ide_cd,sr_mod
usbmouse                5760  0
usbhid                 45920  2 usbkbd,usbmouse
ehci_hcd               36460  0
hid                    30052  1 usbhid
ff_memless              5960  1 usbhid
uhci_hcd               25676  0
usbcore               140140  7 usbkbd,gspca,usbmouse,usbhid,ehci_hcd,uhci_hcd
ext3                  133736  2
jbd                    46036  1 ext3
sd_mod                 29344  4
ahci                   27300  0
ata_piix               18596  3
libata                157112  2 ahci,ata_piix
scsi_mod              149708  3 sr_mod,sd_mod,libata
[dimitris@localhost ~]$                             

 

όπως βλέπεις έχω αφαιρέσει μόνο αυτά που προκαλούν πρόβλημα... και έχω μείνει με τις default ρυθμίσεις του kernel του PCLinuxOS.

Στον προηγούμενο kernel είχα όντως βγάλει αρκετά Modules αλλά επειδή δεν είδα καμία ουσιαστική διαφορά, είπα να μην το ξανακάνω. Το αστείο βέβαια είναι οτι to lsmod πιο πανω είναι από το desktop μου, στο οποιο έβαλα ένα remastered από εμένα PCLinuxOS, το οποίο έφτιαξα με mklivecd πάνω στο λαπτοπ, οπότε φορτώνονται στο δεσκτοπ ασχετα modules. τώρα που το σκέφτομαι .... .... πρέπει και εγώ να αρχίσω να καθαρίζω

 

Hasodikis

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το καλύτερο (πιο γρήγορο) είναι να βάλεις όλα τα options που χρειάζεσαι για το hardware σου built-in στον πυρήνα. Αν κόψεις και το hardware scan κατά το boot τότε θα δείς τεράστια διαφορά, έχω φτιάξει σύστημα με PIII @ 1000 MHz να φτάνει σε κονσόλα σε 10 δεύτερα.

Για την ιστορία, αυτός ο πυρήνας που δεν έχει modules αλλά είναι όλα μέσα λέγεται μονολιθικός και αποτελούσε την αρχή των ομηρικών καυγάδων που έκαναν ο φοιτητής τότε Linus με τον καθηγητή Tanenbaum.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

NullScan Συμφωνω απόλυτα μαζί σου και σκεφτόμουν αν έπρεπε να το γράψω εξ αρχής....

πιο σωστή λύση είναι η μεταγλώττιση του πυρήνα. Αποτέλεσμα ένας kernel κομμένος και ραμμένος στα μέτρα του hardware του χρηστη!!! επικίνδυνο?? Οχι .... Χρονοβορο? ναι ! αξίζει ? ναι!!!!

 

hasodikis

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Somebody teach the willing to learn noobs...

 

Μπορείες να ξεκινήσεις από εδώ... http://www.insomnia.gr/forum/showthread.php?t=144557

μετά υπάρχουν άπειρα ποστς howtos και αρθρα στο δίκτυο

 

Hasodikis

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για την ιστορία, αυτός ο πυρήνας που δεν έχει modules αλλά είναι όλα μέσα λέγεται μονολιθικός και αποτελούσε την αρχή των ομηρικών καυγάδων που έκαναν ο φοιτητής τότε Linus με τον καθηγητή Tanenbaum.

Για την ακρίβεια οι διαφωνίες του Linus με τον Tanenbaum δεν αναφερόνταν σε αυτό (τη δυνατότητα να φορτώνεις on demand kernel code) αλλά στον σχεδιασμό του πυρήνα, στο τι θα είναι kernel code και τι δε θα είναι. Ο Tanenbaum (microkernel-άς) έλεγε ότι ο πυρήνας πρέπει να αποτελείται από όσο το δυνατόν ελάχιστο κώδικα και όλα τα άλλα (drivers, filesystems κλπ) να τρέχουν ως απλός non-privileged κώδικας επικοινωνόντας μεταξύ τους με IPC. Θεωρητικά πιστεύει ότι είναι καλύτερος σχεδιασμός επειδή μειώνεται το ενδεχόμενο κακού kernel code και αυξάνεται ο έλεγχος.

 

Μια προσπάθεια μεταφοράς του Linux kernel σε αυτό το μοντέλο είναι το L4Linux -αλλά δεν έχω ιδέα πόσο καλά παίζει και τι οφέλη έχει στην πράξη.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για την ακρίβεια οι διαφωνίες του Linus με τον Tanenbaum δεν αναφερόνταν σε αυτό (τη δυνατότητα να φορτώνεις on demand kernel code) αλλά στον σχεδιασμό του πυρήνα, στο τι θα είναι kernel code και τι δε θα είναι. Ο Tanenbaum (microkernel-άς) έλεγε ότι ο πυρήνας πρέπει να αποτελείται από όσο το δυνατόν ελάχιστο κώδικα και όλα τα άλλα (drivers, filesystems κλπ) να τρέχουν ως απλός non-privileged κώδικας επικοινωνόντας μεταξύ τους με IPC. Θεωρητικά πιστεύει ότι είναι καλύτερος σχεδιασμός επειδή μειώνεται το ενδεχόμενο κακού kernel code και αυξάνεται ο έλεγχος.

 

Μια προσπάθεια μεταφοράς του Linux kernel σε αυτό το μοντέλο είναι το L4Linux -αλλά δεν έχω ιδέα πόσο καλά παίζει και τι οφέλη έχει στην πράξη.

 

Πρέπει να σταματήσω να postάρω πρίν πιώ καφέ το πρωί :-(

 

Δεν εννοούσα την δυνατότητα να φορτώνεις modules at run time αλλά τη δυνατότητα να έχεις αυτό που έλεγε και ο καθηγητής Tanenbaum "ένα και μόνο a.out αρχείο" το οποίο θα αποτελεί ολόκληρο τον πυρήνα σου.

Η "αγάπη" μεταξύ τους ήταν και είναι απαράμιλλη. Κάπως έτσι ξεκίνησαν όλα.

 

Edit: Θα επανέλθω με το θέμα του static /dev αργότερα εκτός αν με προλάβει κάποιος :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παντως εγώ τελευταία που κάνω πολλες δοκιμές σε kernels σε Ubuntu Intrepid και ArchLinux τι παρατήρησα :

 

1)Πολύ περισσότερο φαίνεται η διαφορά στους preemptive (1000Hz) rt kernels απο τους 250Hz kernels :P

 

2)Δεν θα δείτε διαφορά όμως μεταξύ ας πούμε ενός zen kernel και ενός tuxonice (Gentoo patched) kernel .

 

Αν θετε ... αποκρίσιμο , πλην αργούτσικο desktop --> kernel στα 1000 Hz

 

Αν θετε λιγότερο αποκρίσιμο, αλλα να μην ζορίζεται σε βαριές δουλειές, 250 Hz, τα 100 Ηz είναι απαγορευτικά για X περιβάλλοντα !

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...