Motion CPU Last und 1Wire Sensoren!

  • Hallo zusammen,

    ich habe ein kleines Problem.
    Mein Raspberry wird für folgende Aufgaben genutzt:

    Access Point für den Garten
    Cups Druckerserver
    Webcam-Server (2 Webcam)
    Bereitstellung der Anrufliste der Fritzbox
    Und zu guter Letzt Messung der Aussen- und Innentemperatur per DS18S20 (x2).

    Die Sensoren werden alle 15 Minuten von einem Python Skript ausgelesen und die Werte werden in einer Datei abgelegt. Das Skript liest den CRC Wert aus und liest so lange aus bis der CRC Wert passt. Dieser Wert wird dann als Grundlage eines Graphen genutzt. Zusätzlich habe ich auf meiner Webseite ein PHP IFrame eingebunden über den ich die Temperaturen zusätzlich abfragen kann.
    Die werte in diesem iFrame werden jedoch leider sehr regelmässig nicht korrekt ausgelesen. Teilweise muss ich die werte 5-6x aktualisieren bevor der Wert passt. Das PHP Skript zeigt dann 0,00 Grad an.
    Sobald ich den Dienst für die Webcam (motion) stoppe gibt es so gut wie keine Messfehler mehr.
    Offenbar erzeugt Motion zu viel CPU Last (ständig zwischen 70 und 80%).

    Hat jemand Konfigurations-Hinweise wie ich die CPU Last auf dem Raspi senken kann?
    Übertaktet ist er bereits.

    Viele Grüße

    Chimux

  • Prüfst du im PHP-Script ebenfalls auf den CRC Wert? Wie sieht dieser aus?

    Kannst du uns das PHP Script evtl. mal zur Verfügung stellen?

    Eventuell kommst du mit "nice" etwas weiter: http://linux.die.net/man/1/nice

    Ich vermute mal, dass du die CPU nicht senken kannst... Diese Software wird einfach so viel Last verursachen... Ist aber nur eine Vermutung, da ich weder die Software kenne, noch selbst Webcams am Raspi betreibe.

    Ist dein Pi übertaktet?

    Linux - Für das Leben nach dem Absturz!

    Einmal editiert, zuletzt von Nightskill (21. August 2013 um 22:13)

  • Hi.

    vielen dank für deine Antwort.
    Ich brauche diesen Wert aber nicht ausgeben da ich das bereits getestet habe.
    Der CRC wert ist "No" wenn ich Messfehler habe.


    Also nochmal zusammengefasst:

    Wenn Motion läuft, dann habe ich bei jedem "Messversuch" 2-3 Messfehler (CRC=NO).
    Stoppe ich Motion, dann habe ich bei vielleicht 20 Messversuchen 1 Messfehler (CRC=NO).

    Da Motion ziemlich viel Prozessorlast verursacht vermute ich, dass fürs Auslesen des Temp Sensors nicht genug Leistung vorhanden ist. Aus diesem Grund wüsste ich gern ob jemand sich gut genug mit Motion auskennt um Hinweise geben zu können welche Parameter im Config File evtl. eine Reduzierung der CPU Last verusachen könnten (z.b. anderes Video Format,...?).

    Veränderungen in der 1Wire "Technik" werden nicht Zielführend sein.

    Vielen dank dennoch.

  • So wie ich es sehe ist dein einziges Problem, dass bei der PHP Seite falsche Werte angezeigt werden...
    Warum kannst du die Anzeige nicht einfach abhängig vom CRC machen? Wenn dieser "no" ist soll er eben erneut prüfen...

    Per Google konnte ich in einer Minute übrigens folgende Aussage finden:

    Zitat


    framerate

    Type: Integer
    Range / Valid values: 2 - 100
    Default: 100 (no limit)
    Option Topic
    Maximum number of frames to be captured from the camera per second.

    The faster you fetch pictures from the camera the more CPU load you get and the more pictures get included when Motion is detected.


    Siehe: http://www.mit.edu/activities/ani….html#frequency

    Meinen Tipp mit "nice" werfe ich auch erneut in den Raum...

    Edit:
    Folgendes könnte ebenfalls interessant sein:

    Zitat


    low_cpu

    Type: Integer
    Range / Valid values: 0 - 100
    Default: 0 (disabled)
    Option Topic
    When this option is not zero motion will be in a low cpu mode while not detecting motion. In low cpu mode Motion reduces the framerate to the value given for this option. Value zero means disabled.

    This is smart for running a server that also does other tasks such as running Apache, MySQL etc. Motion grabs this lower number of frames per second until it detects motion. Then it speeds up to normal speed and take pictures as set by the option "framerate".


    Ebenfalls auf der oben verlinkten Seite...

    Linux - Für das Leben nach dem Absturz!

    Einmal editiert, zuletzt von Nightskill (22. August 2013 um 17:38)

  • Warum ich im php Skript keine crc Abfrage will? Weil ich den Fehler lösen und nicht umgehen will.
    Wenn ich bei 2 Sensoren 5 Abfragen Brauch die jeweils mindestens 1 Sek brauchen plus etwas sleep zeit, dann braucht die Seite 5*2*2 Sekunden zum Laden. Und das alle 120 Sekunden. Vielleicht wird es jetzt anschaulicher warum ich den Fehler lieber lösen möchte.

    Nice habe ich nicht richtig verstanden. Ich muss mein Skript mit Nixe starten damit es eine hohe prio bekommt. Den php Aufruf kann ich doch aber damit nicht steuern? Äh ok oder ich gebe Motion ne niedrige prio, könnte ich mal versuchen.

    Den Hinweis mit Low_cpu hatte ich gefunden, hat aber Mix gebracht. Ich Teste mal weniger fps. Danke sehr.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!