Güvenlik ile WCF ölçeklendirmeyi anlamadım/Neden lsass.exe CPU% kadar yüksek?

Her 3 dakikada bir çağrı yapan yaklaşık 500 müşteri ile bir WCF servisim var. Lsass.exe işlemi, hizmet açıkken CPU'm% 95'ini kullanıyor.
Bir test yaptım ve bir müşteri her çağrı yaptığında, lsass CPU% 7'ye kadar çıkıyor. Bu yüzden, bir çift yüzün aynı vea çağrı gönderdiğinde sunucunun neden bir görüşmeye başladığını anlıyorum. Anlamıyorum, lsass neden hiç kullanılmıyor? Sertifikaları kullanarak Message level güvenliği ile WSHttpBinding temelli bir CustomBinding kullanıyorum. Örnek/Eşzamanlılık PerCall/Single'dır (her iki değişkenin hiçbir değişikliğiyle hemen hemen herşeyi denedim) ve IIS 6'da barındırılır.
Tahminimce, her çağrı için lsass sertifikayı kontrol ediyor ve bu bir şekilde çok fazla CPU mu alıyor? Bunu azaltmanın bir yolu var mı? İnsanların WCF hizmetlerini çok daha büyük sayılara ölçeklediklerini biliyorum, bu yüzden yanlış yapıyorum?

Not; Bazı ekstra bilgiler: İzlemeye başladım ve genellikle giriş yapan ilk şey

<traceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning">
    <traceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.Activation.WebHostNoCBTSupport.aspx
        Extended protection is not supported or not enabled on this platform. Please install the appropriate patch ve enable it if you want extendedProtection support for https with windows authentication.
        /LM/W3SVC/920256058/Root/WCFServices/smt-7-129642078492968750
        System.ServiceModel.Activation.MetabaseSettingsIis6/17731154

Ve ayrıca bir demet var:

http://msdn.microsoft.com/en-US/library/System.ServiceModel.Security.SecuritySessionDemuxFailure.aspx
The incoming message is not part of an existing security session.

ve

System.ServiceModel.Security.SecurityNegotiationException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Cannot find the negotiation state for the context 'uuid-4caa56ff-3d38-4905-9151-ce12acdd676c-6778'.

ve

System.ServiceModel.Security.TlsnegoTokenAuthenticator
http://myserviceendpoint
System.ServiceModel.Security.SecurityNegotiationException: Cannot find the negotiation state for the context 'uuid-4caa56ff-3d38-4905-9151-ce12acdd676c-6778'.at System.ServiceModel.Security.NegotiationTokenAuthenticator`1.ProcessRequestCore(Message request) at System.ServiceModel.Security.NegotiationTokenAuthenticator`1.NegotiationHost.NegotiationSyncInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp; outputs)

IIS günlüğüm dolu

200 0 64
500 0 64
200 0 1236
500 0 1236

Çoğunlukla son iki

Edit: Service config:

<?xml version="1.0"?>

  
    
  
  
    
  
  
  
    
    
      
    
  

  
    
      
        
        
        
        
      
    
    
      
        
          
          
            
          
        
      
      
        
          <transactionFlow />
          
            
            
            
          
          
            
          
          
        
      
    
    
      
        
          
            
            
              
            
          
          
          
          
        
      
    
    
  

İstemcilerin hepsi CustomBinding kullanıyor. Sorun hala WS bağlama ile gerçekleşir. Aslında, hizmetin beklemede olan oturumlarının çalıştığı bir sorunu çözmek için CustomBinding'i yaptım.

5
Hizmetinizin yapılandırmasını da gösterin.
katma yazar Ladislav Mrnka, kaynak

1 cevap

Böylece sonunda herşeyi tekrar tekrar, az çok çalıştım. Sorunum, tüm istemcilerin bir kerede çağrı yapmaya çalıştığı ve sunucuyu aşırı yüklemesiydi. IIS uygulamasının tüm gelen trafiği reddetmesi için ayarladıktan sonra IP'lerin gruplarını, hepsinin bağlanabilmesi için sonuna kadar yavaşça geri ekledim.

Lsass hala kabul edilemez yüksek miktarda CPU kullanıyor. Daha hızlı olan ve lsass'ı çıldırmayan farklı bir güvenlik yöntemi (sertifikalar dışında) bulmam gerekecek çünkü yüzlerce müşterimiz var.

0
katma