Να πάρετε MUSIChi να σωθείτε
Στάλθηκε από το X9007 μου χρησιμοποιώντας Tapatalk
Θα πάρουμε και ένα mini pc με 200-300 στην καλύτερη. Μετά δε θα μας κάνει το τροφοδοτικό και θα βάλουμε να μας φτιάξουν κανα γραμμικό και θα σκάσουμε καμια κατοστάρα ακόμα. Μετά θα ζεσταίνεται το πισάκι και θα κάνει θόρυβο και θα ψάχνουμε καλά ανεμιστήρια ή καμια passive θήκη και αφού τα λύσουμε όλα αυτά θα πάρουμε και ένα fidelizer plus με 40 δολλάρια αλλά θα μας τρώει να δοκιμάσουμε και το fidelizer pro που κάνει καμιά 30ριά ακόμα και κάνει black box optimization. Και μετά... Και μετά.... Και μετά......
Και αφού τα κάνουμε όλα αυτά και γράφουμε σελίδες επί σελίδων σε ένα τόπικ σαν αυτό, θα μπει κάποιος στο ξαφνικό και θα μας πει να πάρουμε ένα Odroid C2 με Linux/MPD για να "σωθούμε". Και φτου.... Πάλι από την αρχή.
Για να σοβαρευτώ, αυτό που προσπαθούν να κάνουν τα παιδιά εδώ και κάποιες σελίδες, δε διαφέρει σε τίποτα από όλα τα optimizations που διαφημίζει το κάθε fidelizer.. Ή μάλλον τώρα που το σκέφτομαι καλύτερα διαφέρει, γιατί τα παιδιά θα παιδευτούν λιγάκι και θα μάθουν και κάτι και στην τελική θα έχουν περιποιηθει με τα χεράκια τους το transport τους και μεθαύριο θα μπορούν να στήσουν και ένα high end pc transport με super duper χαρακτηριστικά κομμένο και ραμμένο στα χέρια τους.
Στο θέμα μας τώρα. Όλο το optimization που κάνετε όσοι προσπαθείτε, έχει μια βασική προυπόθεση. Αυτή είναι το να ξέρετε τι ήδη έχει κάνει η ομάδα του Runeaudio. Όλα αυτά τα profιiles που προεπιλέγετε είναι πιθανόν να έχουν αντικρουόμενες ρυθμίσεις με αυτές που προσπαθείτε να βάλετε εσείς. Επίσης υπάρχει περίπτωση εσείς να κάνετε μια ρύθμιση η οποία αναιρείται γιατί αμέσως μετά την εντολή σας τρέχει ένα συστημικό script και τα αλλάζει όλα αυτά.
Σας έχω αναφέρει σε πολλά posts ότι το RPI δεν δέχεται IRQ affinity optimization και δεν έχετε δώσει βάση. Αυτό τι σημαίνει; Σημαίνει ότι τα interrupts που σκάνε στα 4 cores από τις διάφορες συσκευές και υποσυστήματα (USB, ethernet, SD card κλπ) δεν μπορούν να αναδρομολογηθούν στο core που θέλετε εσείς (όπως συμβαίνει πχ σε ένα pc ή σε πολλά άλλα boards). Κατ επέκταση, αυτό που έδειξα παραπάνω, όπου ένα script αναδρομολογεί τα interrupts του USB πχ στο 4o core δεν μπορεί να γίνει. Ότι interrupt πέφτει πχ στο 4ο core, θα πέφτει πάντα εκεί.
Ως συνέπεια του παραπάνω, το πρώτο πράγμα που θα κοιτούσα εγώ αν σώνει και καλά ήθελα να ρίξω καρφωτά τον mpd και τα threads του σε ένα isolated core, θα ήταν αυτό το core να δέχεται τα λιγότερα δυνατά interrupts. To γεγονός ότι το απομονώνετε δε σημαίνει ότι δεν πέφτουν interrupts.
Πως γίνεται αυτό;;
Με την εντολή αυτή θα δείτε τι πέφτει ανά core. Εγώ λοιπόν θα έτρεχα αυτή την εντολή μην έχοντας κάνει optimization στο σύστημά μου, θα παρακολουθούσα τι συμβαίνει και μετά θα αποφάσιζα ποιο core θα "τάξω" στον MPD.
Κάτι τελευταίο. Να ξέρετε ότι με όλα αυτά, ενδέχετε να προσπαθείτε να κάνετε καλό και να τα κάνετε μαντάρα. Αν ανατρέξετε σε παλιά μου posts και στο νήμα αυτό αλλά και στου Archphile, θα δείτε ότι παλεύω μήνες με αυτά για το επόμενο Archphile. Υπάρχει όμως μια ΜΕΓΑΛΗ διαφορά. Στο Archphile ούτε web server τρέχω, ούτε mysql server ούτε php-fpm, ούτε..., ούτε... κλπ... Έχω πραγματικά ελάχιστα processes και παίζω μπάλα δεξιά και αριστερά να τα βολέψω στα διαθέσιμα cores. Εσείς έχετε ΠΟΛΛΑ processes και δεν μπορείτε να ξέρετε πως θα συμπεριφερθεί το σύστημά σας τελικά αν τα στριμώξετε όλα σε ένα core ή δεν ξέρω και γω τι άλλο κάνετε.
Εγώ απλά θα σας πώ, ότι με τερματισμένο υποτίθεται optimization που είχα ανακατεθύνει σχεδόν κάθε process εκεί που θεωρούσα ότι είναι και σωστό, κατέληξα σε ένα test σύστημα όπου έδινα εντολή ssh και άκουγα "κλικ" από τα ηχεία. Είναι πολύ πιθανότερο ο scheduler ενός OS να κάνει καλύτερες επιλογές απ' ότι αν μαζευτούμε 5 άμπαλοι μαζί και να ρίχνουμε ιδέες που θα ήταν καλύτερα να σκάει το τάδε interrupt ή το δείνα process!
Αυτά είχα να πω.
Καλή συνέχεια στο κάψιμο και στην αναζήτησή σας. Το "σκάλισμα" δεν έβλαψε κανέναν!