Qualivision, Zürich, 1.10.2013

Fragen und Antworten

  • SysV init: Wie kann man die Grace Period zwischen SIGTERM und SIGKILL beeinflussen?

    man shutdown: shutdown -t 42

    (Herausgefunden durch lesen des Sourcecodes, und nachfolgendes Lesen der Manpage :-) )

  • Wie kann man shutdown verhindern bzw. eine Applikation fragen, ob’s genehm wäre?

  • Wird der Nice-Value an Children vererbt? Wie ist das mit Realtime-Attributen?

    • man -s 2 setpriority (setzt den Nice-Value):

      A child created by fork(2) inherits its parent’s nice value. The nice value is preserved across execve(2).

    • man -s 2 sched_setscheduler (setzt Realtime Policy und Priority)

      Child processes inherit the scheduling policy and parameters across a fork(2). The scheduling policy and parameters are preserved across execve(2).

      … aber …

      Since Linux 2.6.32, the SCHED_RESET_ON_FORK flag can be ORed in policy when calling sched_setscheduler(). As a result of including this flag, children created by fork(2) do not inherit privileged scheduling policies. This feature is intended for media-playback applications, and can be used to prevent applications evading the RLIMIT_RTTIME resource limit (see getr- limit(2)) by creating multiple child processes.

  • Wie geht das mit Threads anstelle von Prozessen?

    • Threads teilen sich den Nice-Value des Prozesses (man -s 7 pthreads).

    • Realtime Attribute werden by Default vom startenden an den gestarteten Thread weitergegeben — ausser dies wird explizit unterbunden. Siehe dazu man -s 3 pthread_attr_setinheritsched.

      PTHREAD_INHERIT_SCHED

      Threads that are created using attr inherit scheduling attributes from the creating thread; the scheduling attributes in attr are ignored.

      PTHREAD_EXPLICIT_SCHED

      Threads that are created using attr take their scheduling attributes from the values specified by the attributes object.

      The default setting of the inherit scheduler attribute in a newly initialized thread attributes object is PTHREAD_INHERIT_SCHED.

  • Gibt es unter Linux sowas ähnliches wie `Filter-Driver <http://en.wikipedia.org/wiki/Filter_driver>`__ unter Windows?

    (Wird offenbar genutzt, um die miserable Performance von Netzwerkdrivern unter hoher Interruptlast zu verbessern)

    Unter Linux sollte das nicht nötig sein. Man hat sich dort diesbezüglich was überlegt: unter eben solcher Last schaltet das Netzwerkdriver-Framework um auf Polling Mode.

  • Gibt es Open-Source Modbus Implementationen?

  • Wie konfiguriert man `Jumbo Frames <http://en.wikipedia.org/wiki/Jumbo_frame>`__

    Man setzt die MTU auf mehr als 1500 Bytes,

    # ip link set dev eth0 mtu 9000
    

    oder

    # ifconfig eth0 mtu 9000
    

    Persistent abgelegt wird die Konfiguration auf Debian in /etc/network/interfaces:

    auto eth0
    iface eth0 inet static
       ...
       mtu 9000
       ...
    

    Vorsicht mit Routern, die die Pakete fragmentieren,

    # traceroute --mtu ...
    
  • Wie monitore ich eine Netzwerkverbindung bzw. deren Güte?

    Ohne es genau zu wissen glaube ich, dass SAR (“System Activity Reporter”) aus dem sysstat Paket das macht (Vorsicht, das Layout der Homepage ist schmerzvoll).

    Hier ein netter Artikel.