πρόβλημα : γεμάτος δίσκος
νεοφερμένος στα linux mint εδώ και λίγους μήνες- και με λίγες γνώσεις για το εν λόγω σύστημα. να πω δε ότι εχω κρατήσει και τα δύο λειτουργικά συστήματα στον υπολογιστή μου- linux και windows 10, ενημερωμένα και τα δύο. σήμερα και ενώ χρησιμοπουσα τα linux, ο υπολογιστής έγινε σταδιακά πολύ αργός, μ…
μπορείς να σβήσεις αυτά τα αρχεία. στην συνέχει μπες στο σύστημα και εγκατέστησε το πακέτο logrotate και δεν θα ξανασυμβεί. κανονικά θε έπρεπε να ήταν εγκατεστημένο.

για περισσότερα

[εικόνα]

[log files: καταγραφές, ρουφιάνοι και ανακύκλωση](https://cerebrux.net/2018/08/09/log-files-%ce%ba%ce%b1%cf%84%ce%b1%ce%b3%cf%81%ce%b1%cf%86%ce%ad%cf%82-%cf%81%ce%bf%cf%85%cf%86%ce%b9%ce%ac%ce%bd%ce%bf%ce%b9-%ce%ba%ce%b1%ce%b9-%ce%b1%ce%bd%ce%b1%ce%ba%cf%8d%ce%ba%ce%bb%cf%89/)

μας παρακολουθούν… όχι εκεί έξω… αλλά ο ίδιος σου…
Μπορεί. Αλλά έχετε μεγαλύτερα προβλήματα. `gettimeofday()`μπορεί να οδηγήσει σε λανθασμένη χρονισμούς αν υπάρχουν διεργασίες στο σύστημά σας που αλλάζουν το χρονόμετρο (δηλαδή, ntpd). Σε ένα «κανονικό» linux, όμως, πιστεύω ότι η ανάλυση της `gettimeofday()`είναι 10us. Μπορεί να μεταβείτε προς τα εμπρός και προς τα πίσω και το χρόνο, κατά συνέπεια, με βάση τις διεργασίες που τρέχουν στο σύστημά σας. Το γεγονός αυτό καθιστά ουσιαστικά την απάντηση στην ερώτησή σας δεν είναι.


Θα πρέπει να εξετάσουμε `clock_gettime(CLOCK_MONOTONIC)`για το χρονοδιάγραμμα διαστήματα. Πάσχει από πολλά λιγότερα προβλήματα λόγω τα πράγματα όπως multi-core συστήματα και εξωτερικές ρυθμίσεις του ρολογιού.


Επίσης, εξετάζει την `clock_getres()`λειτουργία. Προσωπικά, δεν θα ανησυχείτε για αυτό μέχρι να δείτε ένα πρόβλημα. Messing με την προεπιλεγμένη πύθωνα εγκατάσταση σε ένα σύστημα * Nix μπορεί να προκαλέσει περισσότερα προβλήματα από ό, τι αξίζει. Μπορώ να πω από προσωπική εμπειρία ότι ποτέ δεν πραγματικά καταλάβει τι python έχει κάνει για τον κόσμο nix μέχρι να έχετε ένα πρόβλημα με αυτό.


Μπορείτε επίσης να προσθέσετε μια δεύτερη εγκατάσταση python, αλλά ότι επίσης προκαλεί περισσότερα προβλήματα από ό, τι αξίζει ΙΜΟ.


Έτσι υποθέτω ότι το καλύτερο θέμα για να ξεκινήσετε με, θα είναι γιατί ακριβώς θέλετε να χρησιμοποιήσετε την έκδοση 64 bit του πύθωνα; Όποια και αν είναι λύση που χρησιμοποιείτε, αφού λέτε ότι η βάση δεδομένων σας θα είναι write-βαρύ θα πρέπει να βεβαιωθείτε ότι ολόκληρος ο πίνακας δεν εγκλωβίζονται στις εγγραφές. Αυτό αποκλείει MyISAM, που κάποιοι έχουν προτείνει. MyISAM θα ​​κλειδώσει το τραπέζι σε μια ενημέρωση, διαγραφή ή εισαγωγή. Αυτό σημαίνει ότι κάθε πελάτης που θέλει να διαβάσει από τον πίνακα, θα πρέπει να περιμένουμε για το γράφουν για να ολοκληρωθεί. Ξέρω τι να αγνοήσει το INSERT χαμηλής προτεραιότητας κάνει όμως, πιθανώς κάποια hack γύρω από το τραπέζι κλείδωμα :-)


Αν απλά πρέπει να χρησιμοποιήσετε MySQL, θα θελήσετε InnoDB, η οποία δεν κλειδώσει εγγραφής. Δεν ξέρω πώς MySQL κάνει πίνακες InnoDB VACUUM του (InnoDB είναι MVCC όπως η PostgreSQL και έτσι πρέπει να καθαρίσει) ... αλλά θα πρέπει να το λάβουμε υπόψη, αν κάνετε πολλές ενημερώσεις ή διαγραφές. > 
> Ο λόγος είναι ότι υπάρχουν μειονεκτήματα από τη χρήση συμπιεστών EXE. Κυρίως:
> 
> 
> Κατά την εκκίνηση ενός συμπιεσμένου EXE / DLL, όλα του κώδικα αποσυμπιέζεται από την εικόνα δίσκου στη μνήμη σε ένα πέρασμα, το οποίο μπορεί να προκαλέσει αλώνισμα δίσκο, αν το σύστημα είναι χαμηλή μνήμη και αναγκάζεται να αποκτήσετε πρόσβαση στο αρχείο μετάθεσης. Σε αντίθεση, με ασυμπίεστο EXE / DLL, το λειτουργικό σύστημα διαθέτει μνήμη για σελίδες κώδικας για τη ζήτηση (δηλαδή, όταν εκτελούνται).
> 
> 
> Πολλαπλές περιπτώσεις ένα συμπιεσμένο EXE / DLL δημιουργήσετε πολλαπλές παρουσίες του κώδικα στη μνήμη. Εάν έχετε ένα συμπιεσμένο EXE που περιέχει 1 ΜΒ του κώδικα (πριν από τη συμπίεση) και ο χρήστης ξεκινά 5 περιπτώσεις από αυτό, περίπου 4 MB μνήμης σπαταλιέται. Ομοίως, εάν έχετε ένα αρχείο DLL που είναι 1 MB και χρησιμοποιείται από 5 εφαρμογές που εκτελούνται, περίπου 4 MB μνήμης σπαταλιέται. Με ασυμπίεστο EXE / DLL, κωδικός αποθηκεύεται μόνο στη μνήμη μία φορά και μοιράζεται μεταξύ των περιπτώσεων.
> 
> 
> 


<http://www.jrsoftware.org/striprlc.php#execomp> Υπάρχουν τόσοι πολλοί παράγοντες για την απόδοση του server (CPU, RAM, I / O, μνήμη cache, τοπικές ή εξωτερική βάση δεδομένων, δικτύωση, κλπ) που δεν μπορείτε να guesstimate ακόμη και το ποσό των servers που απαιτούνται για ένα συγκεκριμένο έργο.


Θεωρώ ότι όποιος προσπαθεί να το καταλάβουν αυτό θα είναι κάτω τούτοις λάθος δρόμο, επειδή συχνά έχουν κάποια ρεαλιστική ιδέα ότι η περιοχή πρόκειται να κάνει αυτό πρόκειται να είναι εξωφρενικά δημοφιλές.


Η συμβουλή μου, μόνο την κατασκευή της εφαρμογής σας και να χρησιμοποιήσετε 1 διακομιστές, ας υποθέσουμε μπορεί να χρειαστεί ένα σύμπλεγμα διακομιστών, έτσι χτίσει το λογισμικό σας ανάλογα (η οποία με τη ΝΕΤ σημαίνει λίγο πολύ ότι δεν κάνει τίποτα διαφορετικό). Μόνο αγοράσουν περισσότερους servers όταν έχετε μια πραγματική ανάγκη, την αγορά / ενοικίαση διακομιστών σε αναμονή θα οδηγήσει πάντα να σπαταλούνται τα χρήματα, δεν είστε Amazon, ούτε το Google, δεν μπορούμε να υποθέσουμε με ακρίβεια τη μελλοντική επέκταση μέχρι να έχετε τα σημερινά στοιχεία.


Νομίζω ότι θα βρείτε 1 καλή server είναι εκπληκτικά γρήγορο και μπορεί να χειριστεί πολλούς χρήστες. Λάβετε υπόψη StackOverflow (τελευταία είδα) λειτουργεί μόνο σε 2 servers? ένα web server και ένα διακομιστή βάσης δεδομένων ... αυτό είναι όλο. Έχω γράψει μερικά κομμάτια άποψη για LINQ-to-οντότητες, και τη σχέση της με LINQ-to-SQL:


<http://www.hackification.com/2008/12/03/linq-to-entities-the-blackberry-storm-of-orms/>
[http://www.hackification.com/2008/12/04/linq- to-φορείς-παρακολούθησης /](http://www.hackification.com/2008/12/04/linq-to-entities-follow-up/)


Περίληψη: LINQ-to-SQL δεν είναι το ίδιο με το LINQ-to-οντότητες. L2S έχει ένα μικρό χαρακτηριστικό γνώρισμα-σύνολο, αλλά τι κάνει, το κάνει πολύ καλά. L2E έχει ως στόχο να καλύψει μια πολύ ευρύτερη χαρακτηριστικό-set, αλλά η τρέχουσα έκδοση φαίνεται να έχει κάποια κραυγαλέα κενά (π.χ. τεμπέληδες φόρτωση). v2 της L2E θα πρέπει να είναι πολύ καλύτερα? η τρέχουσα έκδοση (IMHO) μοιάζει περισσότερο με μια βήτα. Πρόσφατα εισήχθη Python στην εταιρεία μου, που κάνει το έργο παροχής συμβουλών για το ταχυδρομείο. Το έκανα αυτό, περιμένοντας μέχρι υπήρχε ένα έργο για το οποίο θα ήμουν ο μόνος προγραμματιστής, στη συνέχεια, να πάρει άδεια για να κάνουν αυτό το νέο έργο στην Python. Στη συνέχεια έκανα ένα άλλο μικρό έργο σε Python με εξίσου εντυπωσιακά αποτελέσματα. Επιπλέον, θα χρησιμοποιηθεί Python για το σύνολο των μικρών μιας χρήσης αναθέσεις μου ( «μπορεί να σας αναλύσει τα στατιστικά σε αυτά τα αρχεία σε ένα αρχείο CSV που διοργανώθηκε από την ημερομηνία και τον τόπο;», κ.λπ.) και είχε ένα γρήγορο χρόνο ολοκλήρωσης για όλα αυτά.


Θα Ευαγγελισθέντες επίσης Python λίγο? Πήγα έξω από το δρόμο μου να μην είναι αντιπαθητικός γι 'αυτό, αλλά θα ήθελα μερικές φορές να περιγράψετε γιατί μου άρεσε τόσο πολύ, μίλησε για τα προσωπικά σχέδια μπορώ να το χρησιμοποιήσω στον ελεύθερο χρόνο μου και γιατί είναι φοβερό για μένα, κ.λπ.


Τελικά ξεκινήσαμε ένα άλλο έργο και έπεισε όλους να χρησιμοποιήσετε την Python για αυτό. Φρόντισα να επισημάνω σε όλους σε πολλά έγγραφα, συμπεριλαμβανομένων των ειδικών ιστοσελίδες που σχετίζονται με αυτό που εργαζόμαστε, και κάθε φορά που είχε μια ερώτηση, θα ήθελα να εξηγήσω πώς να το κάνουμε τα πράγματα σωστά, εξηγώντας την προσέγγιση Pythonic στα πράγματα, κ.λπ. .


Αυτό λειτούργησε πολύ καλά. Ωστόσο, αυτό θα μπορούσε να είναι κάπως διαφορετικό από αυτό που περιγράφουν. Στην περίπτωσή μου άρχισε με μέτρια μικρά έργα και Python χρησιμοποιείται μόνο για νέα έργα. Επίσης, κανένας από τους συναδέλφους μου ήταν πραγματικά Perl ή PHP γκουρού? όλοι γνώριζαν αυτές τις γλώσσες και είχε τα χρησιμοποιούν για λίγο, αλλά δεν χρειάστηκε πολλή προσπάθεια για να γίνουν πιο παραγωγικοί στην Python από ό, τι θα ήταν πριν.


Έτσι, αν μιλάμε για νέα έργα με άτομα που χρησιμοποιούν σήμερα PHP, αλλά δεν είναι σούπερ-εμπειρογνώμονες και δεν αγαπούν αυτή τη γλώσσα, τότε νομίζω ότι στραφούν σε Python είναι μια μη-brainer. Ωστόσο, αν μιλάμε για την εργασία με ένα μεγάλο υπάρχοντα κώδικα PHP βάση με πολύ πολύ έμπειρους προγραμματιστές PHP που είναι ευχαριστημένοι με τις τρέχουσες ρυθμίσεις τους, στη συνέχεια, εναλλαγή γλωσσών δεν είναι πιθανώς μια καλή ιδέα. Είστε πιθανώς κάπου στο ενδιάμεσο, οπότε θα πρέπει να σταθμίσουν τις ανταλλαγές? ελπίζω η απάντησή μου θα σας βοηθήσει να το κάνουμε αυτό. Ανεξάρτητα από το μέγεθος της μνήμης RAM, θα πρέπει ακόμα ένα αρχείο σελιδοποίησης είναι τουλάχιστον 1,5 φορές το ποσό της φυσικής μνήμης RAM. Αυτό ισχύει ακόμα και αν έχετε ένα μηχάνημα RAM 1 TB, θα χρειαστεί 1,5 TB αρχείο σελιδοποίησης στο δίσκο (ακούγεται τρελό, αλλά είναι αλήθεια).


Όταν μια διεργασία ρωτά μνήμη MEM\_COMMIT μέσω VirtualAlloc / VirtualAllocEx, το μέγεθος ζήτησε πρέπει να διατηρούνται στο αρχείο σελιδοποίησης. Αυτό ήταν αλήθεια το πρώτο σύστημα Win NT, και εξακολουθεί να ισχύει και σήμερα δείτε [Διαχείριση εικονικής μνήμης σε Win32](http://msdn.microsoft.com/en-us/library/ms810627.aspx) :



> 
> Όταν μνήμης δεσμεύεται, οι φυσικές σελίδες της μνήμης που διατίθεται **και χώρος αυτός προορίζεται σε ένα αρχείο σελιδοποίησης** .
> 
> 
> 


Γυμνά κάποιες ακραίες περιπτώσεις περίεργο, SQL Server θα ζητήσει πάντα για τις σελίδες MEM\_COMMIT. Και με δεδομένο το γεγονός ότι η SQL χρησιμοποιεί ένα [Δυναμική Διαχείριση Μνήμης](http://msdn.microsoft.com/en-us/library/ms178145.aspx) πολιτική που διατηρεί εκ των προτέρων όσο πισίνα ρυθμιστικό δυνατόν (αποθεματικά και *δεσμεύεται* από την άποψη της VAS), ο SQL Server θα ζητήσει κατά την εκκίνηση ένα τεράστιο κράτηση του χώρου στο αρχείο σελιδοποίησης. Αν το αρχείο σελιδοποίησης δεν είναι σωστά μεγέθους λάθη 801/802 θα αρχίσουν να εμφανίζονται στο αρχείο ERRORLOG και τις λειτουργίες του SQL του.


Αυτό προκαλεί πάντα κάποια σύγχυση, καθώς οι διαχειριστές εσφαλμένα υποθέτουν ότι ένα μεγάλο RAM εξαλείφει την ανάγκη για ένα αρχείο σελιδοποίησης. Στην πραγματικότητα το αντίθετο συμβαίνει, μια μεγάλη μνήμη RAM αυξάνει την ανάγκη για αρχείο σελιδοποίησης, μόνο και μόνο επειδή από τις εσωτερικές λειτουργίες της διαχείρισης μνήμης των Windows NT. Το διατηρούνται αρχείο σελιδοποίησης, ελπίζω, δεν έχει χρησιμοποιηθεί ποτέ. > 
> Μου αρέσει η ιδέα ότι δεν χρειάζεται για την κατάρτιση των προγραμμάτων κάθε φορά που κάνετε μια αλλαγή. Καταλαβαίνω ότι οι ερμηνεύεται γλώσσες πιθανότατα συνηθισμένος χτυπήσει την ίδια απόδοση αυτή τη στιγμή να πάρει.
> 
> 
> 


Αυτό είναι το μεγαλύτερο πρόβλημα? μπορεί να ζείτε με το χτύπημα απόδοση. Θα μπορούσατε να δοκιμάσετε να χρησιμοποιήσετε την Python και την [επέκτασή του με την τρέχουσα C ++ σας modules](http://www.python.org/doc/ext/intro.html) για τα βαρέα τμήματα των επιδόσεων. Παρόλα αυτά, η αλλαγή ολόκληρου του συστήματός σας φαίνεται σαν μια μεγάλη προσπάθεια, αν ο μόνος λόγος είναι η έλλειψη της C ++ ταλέντο. Πρόσληψη ανθρώπους που ξέρουν C ++ φαίνεται να είναι η φθηνότερη επιλογή. [Το έργο NPTL](http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library) που εφαρμόστηκε για πρώτη φορά Pthreads σε Linux ήταν ένα ξεχωριστό έργο αρχικά προσθέτοντας υποστήριξη του πυρήνα και παρέχει τη δική της βιβλιοθήκη.


Όταν ήταν αρκετά σταθερό συγχωνεύθηκε στο glibc. Θα ήθελα να υποθέσουμε ότι οι δύο αυτές εκδόσεις είναι πανομοιότυπες σε όλες τις εγκαταστάσεις λογικά up-to-ημερομηνία.


Στο Ubuntu 8.10 το αποτέλεσμα είναι κάπως έτσι:



```
$ Getconf GNU\_LIBC\_VERSION
glibc 08/02/90
$ Getconf GNU\_LIBPTHREAD\_VERSION
NPTL 08/02/90

```