2015-08-11 13 views
8

Wir haben eine .net-Webanwendung, die auf IIS 7.5 gehostet wird. Früher lief diese Anwendung auf einem 32-Bit-Anwendungspool, aber vor einiger Zeit haben wir in den 64-Bit-Anwendungspool gewechselt.Sitzungen werden nach kurzer Zeit im 64-Bit-Anwendungspool beendet

In letzter Zeit haben sich die Benutzer darüber beschwert, dass ihre Sitzung nach 1-2 Minuten im Leerlauf beendet wird, was wir heute bestätigt haben.

In der Datei web.config ist das Sitzungszeitlimit auf 60 Minuten festgelegt. Außerdem haben wir im Task-Manager festgestellt, dass der w3wp-Prozess für diese Anwendung etwa 2-2,4 GB Arbeitsspeicher verbraucht. Das Problem besteht also möglicherweise darin, dass der Anwendungspool versucht, etwas Arbeitsspeicher zu recyceln?

Das Recycling 21:00 Uhr eine begrenzte Dauer eingestellt und 04.00

Was könnte der Grund für diese Probleme mit Sitzungen sein?

EDIT:

ich einige Zähler inspiziert und die grundlegende Speicherabbild getan analysieren, aber ich sehe keine Probleme.

Permfon data

Im Dump eeheap analysieren ich nur Generation 2 Objekte über 10-30MB für jeden Haufen, und ich habe 24 von ihnen

Heap 0 (0000000003083a90) Generation 0 beginnt bei 0x00000000fff568b8 Generation 1 startet sehen bei 0x00000000ffa6acf0 Generation 2 beginnt bei 0x00000000ff471000 ephemeren Segmentzuordnung Kontext: kein Segment beginnen 00000000ff470000 zugewiesene Größe 00000000ff471000 00000000ffff8de0 0xb87de0 (12.090.848) Large Object Heap beginnt bei 0x00000006ff471000 Segmentgröße 00000006ff470000 00000006ff471000 00000006ff7495c8 0x2d85c8 (2.983.368) Heap-Größe zugewiesen beginnen: Größe: 0xe60 3a8 (15074216) Bytes.

Heap 1 (00000000030889c0) Generation 0 beginnt bei 0x000000013fc36ed8 Generation 1 beginnt bei 0x000000013f949348 Generation 2 beginnt bei 0x000000013f471000 ephemeren Segmentzuordnung Kontext: keine Segment zugeordnet beginnen Größe 000000013f470000 000000013f471000 000000014035e7b8 0xeed7b8 (15.652.792) Große Objektheap beginnt bei 0x0000000703471000 Segment zugeordnet beginnen Größe 0000000703470000 0000000703471000 00000007035c5d58 0x154d58 (1396056) Heapgröße: Größe: 0x1042510 (17048848) Byte.

EDIT: 2015-08-19 09:00 Das sind die Zähler für 09:00 2015-08-19

Was mich beunruhigt ist, warum der Speicher im Task-Manager zeigt 2,5GB, wenn die Bytes in allen Heaps zeigt nur etwa 100 MB und warum die Private Bytes (216 MB) größer sind als Bytes in allen Heaps? Die Last in diesem aktuellen Moment ist ungefähr 40 Benutzer auf diesem Server.

PERFMON AT 2015-08-19 09:00

EDIT 2015-08-19 14:09

Nach einiger Zeit ich, dass es sehe ein Problem mit Baugruppen sein könnte. Wie kann ich das mit windbg überprüfen, wenn ich auf .NET 4.5 bin, wo es keinen! Dda Befehl gibt?

PERFMON ASSEMBLIES

+0

Haben Sie nicht verwalteten Code dort? –

+0

Hosten Sie die Website in einer Lastausgleich-Infrastruktur? Verwenden Sie InProc-Sitzungen oder Sql? – nimeshjm

+0

Ich denke, dass es in dieser Anwendung keinen unverwalteten Code gibt. Für die Load-Balanced-Infrastruktur verwenden wir die Windows-Standardfunktion mit zwei Servern, die diese Anwendung hosten. Ja, der Sitzungsmodus ist InProc. – shin

Antwort

0

Versuchen Sie, die laufende App zu einem anderen Pool kopieren, aber in diesem neuen deaktivieren Sie alle Baugruppen/Referenzen, die Sie nicht brauchen, um zu sehen, was das tut.

Wie Sie sagten, ich denke, dass einige Assembler Ihren Anwendungspool abstürzen, vielleicht weil vielleicht nicht 64-Bit-Unterstützung.

Versuchen Sie, alle Referenzen zu deaktivieren, die Sie nicht verwenden, alle aktualisieren usw.

Verwandte Themen