Tôi đang làm việc trên một giải pháp máy khách-khách hàng sử dụng .NET 2.0 Remoting (kích hoạt máy chủ, định dạng nhị phân qua kênh TCP, Vista Ultimate) cho mục đích giao tiếp. Hiện tại tôi đang lược tả ứng dụng và chạy mọi thứ trên cùng một máy. Tôi nhận thấy rằng nếu tôi khởi động ứng dụng, mọi thứ chỉ hoạt động tốt trong vài phút và sau đó đột nhiên mỗi cuộc gọi từ xa mất vài giây để thực thi. Tôi đã đăng nhập vào cả hai đầu và đồng hồ mỗi cuộc gọi. Việc triển khai thực hiện của máy chủ chỉ mất một phần nhỏ trong một giây để thực thi, trong khi toàn bộ cuộc gọi từ xa chậm. Hơn nữa profiling cho thấy rằng remoting suy giảm về phía máy chủ: trong khi bên trong làm việc của dịch vụ từ xa thực hiện trong một phần nhỏ của một giây, các phản ứng rất chậm. Nếu tôi khởi động lại tất cả mọi thứ máy chủ trở lại bình thường trong vài phút nữa.Hiệu suất từ chối xuống cấp theo thời gian
Có ai có trải nghiệm điều gì giống như vậy không?
Cảm ơn!
CẬP NHẬT: Tôi đã kiểm tra, nếu tôi định cấu hình tuổi thọ cho đối tượng ở xa của mình, ví dụ: 1 ngày, tôi vẫn gặp sự cố tương tự.
CẬP NHẬT: Tôi đang sử dụng mẫu được đề xuất bởi Ingo Ramer (HOWTO: Use Interface-based remote objects with config files) cho tất cả nội dung từ chối của tôi, nếu điều này tạo ra bất kỳ sự khác biệt nào.
Khách hàng mã:
public static object CreateInstance(Type type)
{
if (!Initialized)
InitWellKnownTypesCache();
WellKnownClientTypeEntry typeEntry = (WellKnownClientTypeEntry)wellKnownTypesCache[type];
if (null == typeEntry)
throw new RemotingException("Type not found.");
if (string.IsNullOrEmpty(serverObjectActivationUri))
throw new RemotingException("ServerObjectActivationUri wasn't configured. Cannot create server object instance.");
return Activator.GetObject(typeEntry.ObjectType, string.Format(serverObjectActivationUri, typeEntry.ObjectUrl));
}
Server side không có gì nhưng tập tin cấu hình thích hợp trông giống như:
<service>
<wellknown
mode="Singleton"
type="MyDomain.SomeDomain, MyDomain"
objectUri="SomeDomainService"
/>
Tôi không làm bất cứ điều gì ngoài RemotingConfi guration.Configure ("MyDomainService.exe.config", sai); không phải trong máy chủ của tôi và mã máy khách.
Bạn đã lược tả cả hai đầu bằng ANT hoặc một trình lược tả tương tự? –
Tôi đăng nhập thời gian cho mỗi cuộc gọi. – wasker
Tải trọng là gì? Nói cách khác, bạn có thể chia sẻ giao diện của máy chủ với chúng tôi không? Dữ liệu bạn đang truyền qua lại là gì? Nó đang phát triển? Có serialization nặng tham gia? Ứng dụng của bạn đang làm gì khác? Nó trở thành I/O-ràng buộc? Thread-bound? Bộ nhớ bị ràng buộc? – dviljoen