Αύξηση της τιμής του kernel.shmmax και kernel.shmall

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό DelStratos » 09 Ιουν 2012, 03:15

Καλησπέρα σας,

Δουλεύω με Ubuntu 12.04 LTS, 32 bit, σε ένα Dell XPS 8500 (i7, 8 Gb ram) (τώρα στέλνω από το laptop-υπογραφή όπου και σε αυτό υπάρχει το ίδιο πρόβλημα). Δουλεύουν όλα πάρα πολύ καλά και χωρίς προβλήματα συμβατότητας με hardware. Χρησιμοποιώ ένα λογισμικό στο οποίο φορτώνω μεγάλο όγκο δεδομένων (τουλάχιστον 1Gb). Τα project με τα δεδομένα αναγνωρίζονται από αυτό το λογισμικό χωρίς κανένα πρόβλημα. Όταν όμως πάω να φορτώσω τα δεδομένα και να δουλέψω πάνω σε αυτά υπάρχει ένα όριο στη μνήμη που μπορώ να φορτώσω (αυτό το βλέπω μέσο του λογισμικού που δουλεύω). Αυτό το όριο είναι 768 Mg και εντελώς τυχαία (πάνω στο ψάξιμο) βρήκα ότι αυτό το όριο είναι το ίδιο με τη default τιμή της shmmax που έχουν το ubuntu 32bit. Έτσι προσπάθησα να αυξήσω τη τιμή της shmmax, διχως να τα καταφέρω φοβούμενος μήν κάνω κάποιο σφάλμα (συνήθως την πατάω ;) ). Το ερώτημα μου είναι πώς μπορώ να αυξήσω αυτή την τιμή (2 GB νομίζω θα είναι καλά) και αν χρειάζεται να αυξήσω και τη τιμή του shmall.

Ελπίζω να το πόσταρα στη σωστή θεματαλογία,
Ευχαριστώ,
Στράτος
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 11.10 oneiric 32bit (en_IE.UTF-8), Ubuntu 3.0.0-20-generic
3 Intel Pentium CPU P6100 2.00GHz ‖ RAM 3890 MiB ‖ Dell Inc. 052F31 - Dell Inc. Inspiron N5010
4 ATI Madison [AMD Radeon HD 5000M Series] [1002:68c1]
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02) ⋮ wlan0: Broadcom BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
DelStratos
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 09 Ιουν 2012, 02:47
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό simosx » 09 Ιουν 2012, 03:29

Καλώς ήρθες στο φόρουμ της ελληνικής κοινότητας Ubuntu-gr!

DelStratos έγραψε:Χρησιμοποιώ ένα λογισμικό στο οποίο φορτώνω μεγάλο όγκο δεδομένων (τουλάχιστον 1Gb).

Γενικά μπορείς να αλλάξεις την τιμή στο shmmax και στο shmall, οπότε αυξάνοντάς την θα μπορέσει να λειτουργήσει η εφαρμογή.
Το έχεις δοκιμάσει με τις οδηγίες που υπάρχουν στο διαδίκτυο, π.χ. http://publib.boulder.ibm.com/infocente ... 10410_.htm
Δεν αναφέρεις όμως ποιο είναι το πρόγραμμα που παρουσιάζει το ζήτημα.
Αν μπορείς να γράψεις ένα προγραμματάκι που να διαβάζει ένα τεράστιο αρχείο και να παρουσιάζει το σφάλμα που αναφέρεις, τότε θα ήταν πολύ εύκολο να επιλύσουμε το πρόβλημα.

Off topic:
DelStratos έγραψε:
Ελπίζω να το πόσταρα στη σωστή θεματαλογία,

Εδώ είναι η ενότητα για το HowTo, όπου μπαίνουν οδηγοί/guide για τη χρήση του Ubuntu. Κανονικά θα έπρεπε να μπει στην ενότητα προγραμματισμού· θα το βάλει κάποιος συντονιστής.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό the_eye » 09 Ιουν 2012, 10:56

Μεταφέρθηκε στην κατάλληλη ενότητα



Αν θα δούλευες με 64bit σύστημα θα είχες πιστεύω καλύτερες ταχύτητες στην επεξεργασία και πολύ πιθανό να μην εμφανίζεται το πρόβλημά σου.
Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 24.04.2
3 Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11724
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό simosx » 09 Ιουν 2012, 12:39

the_eye έγραψε:

Αν θα δούλευες με 64bit σύστημα θα είχες πιστεύω καλύτερες ταχύτητες στην επεξεργασία και πολύ πιθανό να μην εμφανίζεται το πρόβλημά σου.


Κατά το http://ark.intel.com/products/50175/Int ... _00-GHz%29 ο επεξεργαστής του υπολογιστή στην υπογραφή υποστηρίζει 64-bit, οπότε θα μπορούσε να μπει Ubuntu 12.04 64-bit.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό vasster » 09 Ιουν 2012, 18:14

Σίγουρα είναι λάθος επιλογή τα 32b. Δεν υπάρχει περίπτωση να χρησιμοποιεί το σύστημα σου την υπόλοιπη μνήμη. Γύρνα σε 64b αφού θέλεις να κάνεις δουλειές με πολλά data ή να χρησιμοποιήσεις ένα βαρύ πρόγραμμα. 32b για data crunching δεν είναι σωστό, πηγαίνεις γυρεύοντας για προβλήματα.

Βασικά, πιστεύω ότι το πρόβλημα σου είναι τα default memory limits (και η πιθανότητα του να μην έχεις ορίσει swap file, θεωρώντας ότι 8 GB μνήμη δεν γεμίζει - δεν είναι σωστό, να ορίσεις τουλάχιστον 8 και ακόμα καλύτερα 16 GB swap). Ψάξε και διάβασε για το OOM-Killer. Μια συμβουλή για πιθανά γρήγορη λύση είναι να ορίσεις άμεσα ένα μεγάλο χώρο σαν swap. Αν το σύστημα δεν μπορεί να ικανοποιήσει τις απαιτήσεις ενός προγράμματος για virtual μνήμη, δεν θα του επιτρέπει allocations και πιθανά θα γίνει στόχος του OOM-killer όταν θεωρηθεί ότι συμπεριφέρεται μη ικανοποιητικά καταναλώνοντας περισσότερη μνήμη από αυτή που μπορεί να του δώσει.

@edit
Μετά από το τεστ που έκανα για allocation μνήμης με τα προγράμματα από το http://linuxdevcenter.com/pub/a/linux/2006/11/30/linux-out-of-memory.html, διαπίστωσα ότι άλλαξε η συμπεριφορά στο μηχάνημα μου σε σχέση με παλαιότερα. Πιο πριν, περίπου στο 1 GB allocated memory, έμπαινε ο oom-killer και αντίο πρόγραμμα. Τώρα το πρώτο πρόγραμμα δεσμεύει 500 GB εικονικής μνήμης πριν αρχίσει όλο το μηχάνημα να κολλάει. Δυστυχώς δεν είχα την υπομονή να περιμένω για τον oom-killer αφού πλέον φαίνεται ότι δεν ενεργοποιείται.

@second edit
Τελικά μετά από ακόμα λίγο πειραματισμό διαπίστωσα ότι ο oom-killer ενεργοποιείται. Με swap κλειστό ο oom-killer ξυπνάει και σκοτώνει το πρόγραμμα στα 4G που έχω ram. Για όποιον ενδιαφέρεται τα δύο προγράμματα είναι τα παρακάτω:

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

#define MEGABYTE 1024*1024

int main(int argc, char *argv[])
{
void *myblock = NULL;
int count = 0;

while (1)
{
myblock = (void *) malloc(MEGABYTE);
if (!myblock) break;
printf("Currently allocating %d MB\n", ++count);
}

exit(0);
}


Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

#define MEGABYTE 1024*1024

int main(int argc, char *argv[])
{
void *myblock = NULL;
int count = 0;

while(1)
{
myblock = (void *) malloc(MEGABYTE);
if (!myblock) break;
memset(myblock,1, MEGABYTE);
printf("Currently allocating %d MB\n",++count);
}
exit(0);

}
Τελευταία επεξεργασία από vasster και 09 Ιουν 2012, 20:02, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
Ubuntu 17.04 (Zesty Zapus) 4.10.0-19-generic 64bit (en_US.UTF-8, Unity ubuntu)
Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 15915 MiB ‖ MSI H170M PRO-VDH (MS-7982) - MSI MS-7982
Intel Sky Lake Integrated Graphics [8086:1912] {i915_bpo}
enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlx784476b5edea: 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
vasster
punkTUX
punkTUX
 
Δημοσιεύσεις: 253
Εγγραφή: 23 Μάιος 2010, 09:51
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό Learner » 09 Ιουν 2012, 19:01

vasster έγραψε:Σίγουρα είναι λάθος επιλογή τα 32b. Δεν υπάρχει περίπτωση να χρησιμοποιεί το σύστημα σου την υπόλοιπη μνήμη. Γύρνα σε 64b αφού θέλεις να κάνεις δουλειές με πολλά data ή να χρησιμοποιήσεις ένα βαρύ πρόγραμμα. 32b για data crunching δεν είναι σωστό, πηγαίνεις γυρεύοντας για προβλήματα.


Η μνήμη που αναγνωρίζει το Ubuntu 32bit και το Ubuntu 64bit είναι η ίδια. Το 32bit χρησιμοποιεί τον pae-kernel ο οποίος έχει περιορισμό μνήμης τα 64GB.
Σε ότι αφορά την ταχύτητα όμως , ναι ίσως υπάρχει διαφορά.

DelStratos έγραψε:Έτσι προσπάθησα να αυξήσω τη τιμή της shmmax, διχως να τα καταφέρω φοβούμενος μήν κάνω κάποιο σφάλμα

Πως προσπάθησες να το κάνεις αυτό ; την τιμή του shmmax μπορείς να την ορίσεις μέσα στο /etc/sysctl.conf . Μπες σαν διαχειριστής στο αρχείο και πρόσθεσε την παρακάτω γραμμή
Κώδικας: Επιλογή όλων
kernel.shmmax = η τιμή που θέλεις σε bytes
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό vasster » 09 Ιουν 2012, 20:28

@Learner
Σε 32b kernel και με PAE, ένα πρόγραμμα δεν μπορεί να χρησιμοποιήσει ούτε καν τα 4GB γιατί απλά περιορίζεται από το εύρος των καταχωρητών. Το σύστημα μόνο μπορεί να χρησιμοποιήσει την παραπάνω μνήμη αλλά και αυτή στην ουσία την θεωρεί σαν πιο πολλές σελίδες των 4GB. Τα προγράμματα δεν μπορούν να χρησιμοποιήσουν την παραπάνω μνήμη γιατί απλά οι pointers έχουν εύρος 32b. Θα έπρεπε να έχουν μεγαλύτερο εύρος πράγμα το οποίο συμβαίνει στα 64b.
Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
Ubuntu 17.04 (Zesty Zapus) 4.10.0-19-generic 64bit (en_US.UTF-8, Unity ubuntu)
Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 15915 MiB ‖ MSI H170M PRO-VDH (MS-7982) - MSI MS-7982
Intel Sky Lake Integrated Graphics [8086:1912] {i915_bpo}
enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlx784476b5edea: 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
vasster
punkTUX
punkTUX
 
Δημοσιεύσεις: 253
Εγγραφή: 23 Μάιος 2010, 09:51
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό Learner » 09 Ιουν 2012, 20:42

vasster έγραψε:@Learner
Σε 32b kernel και με PAE, ένα πρόγραμμα δεν μπορεί να χρησιμοποιήσει ούτε καν τα 4GB γιατί απλά περιορίζεται από το εύρος των καταχωρητών. Το σύστημα μόνο μπορεί να χρησιμοποιήσει την παραπάνω μνήμη αλλά και αυτή στην ουσία την θεωρεί σαν πιο πολλές σελίδες των 4GB. Τα προγράμματα δεν μπορούν να χρησιμοποιήσουν την παραπάνω μνήμη γιατί απλά οι pointers έχουν εύρος 32b. Θα έπρεπε να έχουν μεγαλύτερο εύρος πράγμα το οποίο συμβαίνει στα 64b.


Επομένως με απλά λόγια , η μνήμη που αναγνωρίζει το σύστημα είναι η ίδια , αλλά η μνήμη που χρησιμοποιούν τα προγράμματα δεν είναι η ίδια. Σωστά ;
Αυτό που βρήκα (ψάχνοντας) είναι πως το default για το kernel.shmmax σε 32bit μπορεί να γίνει 256ΜΒ ενώ σε 64bit 1GB, δεν ξέρω κατά πόσο παίζει ρόλο αυτό , με αυτό που λες εσύ .. αλλά .....
τι θέλω και μιλάω με προγραμματιστές ; :P

Πάντως μπορεί να δοκιμάσει να αλλάξει το kernel.shmmax πριν προβεί σε εκ νέου εγκατάσταση.
Τελευταία επεξεργασία από Learner και 22 Ιουν 2012, 04:42, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Προσθήκη του [u]μπορεί να γίνει[/u]
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό DelStratos » 22 Ιουν 2012, 01:37

Σας ευχαριστώ πάρα πολύ όλους σας για τις απαντήσεις και συγνώμη για την καθυστέρηση να απαντήσω. Αυτό που έκανα ήταν να εγκαταστήσω από την αρχή το Ubuntu 12,04 LTS και αυτήν τη φορά τα 64bit. Ετσι από default το kernel.shmax είναι μεγαλύτερο για 64bit και έτσι λύθηκε το πρόβλημα. Απλά για ενημέρωση σας και στις 2 περιπτώσεις 32bit ή 64bit η swap μνήμη ήταν 16gb.

Ευχαριστώ πολύ και πάλι.
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 11.10 oneiric 32bit (en_IE.UTF-8), Ubuntu 3.0.0-20-generic
3 Intel Pentium CPU P6100 2.00GHz ‖ RAM 3890 MiB ‖ Dell Inc. 052F31 - Dell Inc. Inspiron N5010
4 ATI Madison [AMD Radeon HD 5000M Series] [1002:68c1]
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02) ⋮ wlan0: Broadcom BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
DelStratos
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 09 Ιουν 2012, 02:47
Εκτύπωση

Re: Αύξηση της τιμής του kernel.shmmax και kernel.shmall

Δημοσίευσηαπό Learner » 22 Ιουν 2012, 01:42

Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα. Με τον τρόπο αυτό βοηθάμε κάποιον να βρει εύκολα τη λύση σε παρόμοιο θέμα απλά πατώντας πάνω στο πράσινο τικ.

About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9766
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

Επόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι