by butsch
10. April 2017 22:28
Mcafee / Symantec / Trend / Kaspersky
German: Windows Prioritätsinversion
English: Windows Priority Inversion
FAQ / Fragen
- Immer wenn ich mich am Windows 7/8/10/XP anmelde ist dies langsam. Dies ist sicher der Virenschutz?
- Immer wenn ich einen Server starte zieht der Virenschutz XX 100% CPU Last?
- Warum braucht der Task/Service "******.exe" so viel CPU Last? Wenn ich das deinstallieren/abstelle ist es schneller?
- Mcafee Task needs % CPU time why?
- Wenn ich Option Y beim Virenschutz abstelle dann läuft es schneller. Es ist der Virenschutz Schuld.
Warum
- Jeder Fehler/Delay Bug den eine Software macht > MACHT der Mcafee VSE/ENS oder Symantec SEP dann nochmals Performance mässig hinten drauf. z.B. gibt es im Healthcare Bereich Software welche beim Öffnen einer Anmeldemaske 400 Files ab einem Share zieht. Die Software macht kein Update, noch kontrolliert sie LDAP/DB usw. Sie ist einfach hundsmiserabel programmiert. Dies wäre nicht weiter schlimm würde Sie mit einem Windows Installer Paket als MSI installiert werden und nicht ab einem Share laufen.
- Die CPU Last in Bezug auf Priority wird durch Windows gehandelt. Auch wenn die Mcafee Services oder der Scanner mit einer "Low Priority" kommen kann ein anderer Task diese tangieren sofern Sie die gleiche Resource handeln. So kann jedes EXE, dass mit HIGH Priority läuft andere die vorne in der Queue sind und hochstufen (Also nicht das EXE sondern Windows selber macht dies)
- Also: prio1.exe kommt mit PRIO HIGH und hat es dringend auf einem File Share. Windows Stuft dann die Virenschutz Tasks auch hoch damit diese fertig werden mit was immer sie machen. Das blöde ist nur, dass diese Services immer was machen.
Lösung
Finde die Software welche schlecht programmiert ist und a) Patche diese b) Ersetze resp. eliminiere diese.
Fazit
Schuld ist selten der Virenschutz….Höchstens Ransomware und dass der Virenschutz im 2017 keine Exception mehr haben darf.
WIKIPEDIA: https://de.wikipedia.org/wiki/Priorit%C3%A4tsinversion
Schneller machen: So einfach geht es dann. Und mein meinesoftware.exe ist die schnellste: https://social.msdn.microsoft.com/Forums/vstudio/en-US/daae2f48-d2c9-44f1-b981-3d5397cf156c/how-to-change-the-application-priority?forum=netfxbcl (Ob andere Sachen noch laufen interessieren mich nicht….)
MSDN:
https://msdn.microsoft.com/en-us/library/system.diagnostics.process.priorityclass.aspx
Dr. DOBBS Journal, Eric Bruno beschreibt dies (Kennt das noch jemand von den Hipstern-codern heute?): http://www.drdobbs.com/jvm/what-is-priority-inversion-and-how-do-yo/230600008
Priority Inversion |
https://msdn.microsoft.com/library/ms684831(v=VS.85).aspx
|
Priority inversion occurs when two or more threads with different priorities are in contention to be scheduled. Consider a simple case with three threads: thread 1, thread 2, and thread 3. Thread 1 is high priority and becomes ready to be scheduled. Thread 2, a low-priority thread, is executing code in a critical section. Thread 1, the high-priority thread, begins waiting for a shared resource from thread 2. Thread 3 has medium priority. Thread 3 receives all the processor time, because the high-priority thread (thread 1) is waiting for shared resources from the low-priority thread (thread 2). Thread 2 will not leave the critical section, because it does not have the highest priority and will not be scheduled.
The scheduler solves this problem by randomly boosting the priority of the ready threads (in this case, the low priority lock-holders). The low priority threads run long enough to exit the critical section, and the high-priority thread can enter the critical section. If the low-priority thread does not get enough CPU time to exit the critical section the first time, it will get another chance during the next round of scheduling. |
Zwei Beispiele aus der Praxis:
- Immer wenn ich mich am System anmelde ist dies langsam und der Virenschutz zieht 50% oder 100% CPU Time bei einem Core? (Bei 4/8 Stück….)
- Immer wenn ich einen Server starte zieht der Virenschutz XX 100% CPU Last?
Dies ist im Grunde weil WINLOGON mit einer PRIO von 13 läuft und die Erlaubnis hat ANDERE Task zu forcieren (Windows selber)
Lauft dann z.B ein Virenschutz welcher SERVCIES und STARTUP Files/Keys wegen MBR-Malware scannt wird dieses vom hinteren TASK angepasst auf eine höhere Priorität.
An sich ist NICHT der Virenschutz dann langsam sondern die Software welche das ganze PRIO durch einander bringt.
Hier sieht man die TASK welche mit einer höheren PRIO laufen. WINLOGON damit beim LOGON alles klappt plus z.B. ein Forticlient SSL VPN.
8186c614-cef7-4180-ab55-78a124d5097c|4|5.0|27604f05-86ad-47ef-9e05-950bb762570c
Tags: