Khi bạn đang nói về hiệu suất trên máy chủ, có một vài cách khác nhau để xem xét nó. Có thời gian đáp ứng rõ ràng (tương tự độ trễ mạng) và thông lượng (tương tự băng thông mạng).
Một số phiên bản của Windows Server có cài đặt Cân bằng nguồn được bật theo mặc định. Như Jeff đã chỉ ra. Windows 2008 R2 là một trong số đó. Rất ít CPU ngày nay là lõi đơn nên giải thích này áp dụng cho hầu hết mọi máy chủ Windows mà bạn sẽ gặp phải ngoại trừ máy ảo lõi đơn. (nhiều hơn về những người sau).
Khi gói năng lượng Cân bằng được kích hoạt, CPU sẽ cố gắng điều tiết lại lượng điện năng sử dụng. Cách thức thực hiện việc này là bằng cách vô hiệu hóa một nửa số lõi CPU trong một quy trình được gọi là "đỗ xe". Chỉ một nửa số CPU sẽ có sẵn tại một thời điểm để nó sử dụng ít năng lượng hơn trong thời gian lưu lượng truy cập thấp. Đây không phải là một vấn đề trong chính nó.
Vấn đề là gì khi CPU không hoạt động, bạn đã nhân đôi số chu kỳ CPU có sẵn cho hệ thống và đột nhiên mất cân bằng tải trên hệ thống, lấy từ (ví dụ) sử dụng 70% đến mức sử dụng 35%. Hệ thống nhìn vào đó và sau khi sự bùng nổ của lưu lượng được xử lý, nó nghĩ rằng "Này, tôi nên quay số này lại một chút để tiết kiệm điện". Và nó cũng vậy.
Đây là phần xấu. Để ngăn chặn sự phân phối nhiệt và năng lượng không đồng đều trong các lõi CPU, nó có xu hướng đỗ các CPU không được sử dụng gần đây. Và để điều đó hoạt động chính xác, CPU cần phải xóa mọi thứ từ các thanh ghi CPU (bộ đệm L1, L2 & L3) đến một số vị trí khác (rất có thể là bộ nhớ chính).
Lấy ví dụ giả thuyết, giả sử bạn có CPU 8 nhân với C1-C8.
- Hoạt động: C1, C3, C5, C7
- Đỗ: C2, C4, C6, C8
Khi điều này xảy ra, tất cả chúng sẽ hoạt động trong một khoảng thời gian và sau đó hệ thống sẽ đỗ chúng như sau:
- Hoạt động: C2, C4, C6, C8
- Đỗ: C1, C3, C5, C7
Nhưng khi làm như vậy, có một lượng chi phí khá lớn liên quan đến việc xóa tất cả dữ liệu từ bộ đệm L1-L3 để thực hiện điều này để các lỗi lạ không xảy ra với các chương trình được tuôn ra từ đường ống CPU.
Có khả năng là một tên chính thức cho nó, nhưng tôi muốn giải thích nó như là đập CPU. Về cơ bản, các bộ xử lý đang dành nhiều thời gian hơn để thực hiện công việc bận rộn di chuyển dữ liệu xung quanh bên trong hơn là họ đang giải quyết các yêu cầu công việc.
Nếu bạn có bất kỳ loại ứng dụng nào cần độ trễ thấp cho các yêu cầu của ứng dụng đó, bạn cần phải tắt cài đặt Cân bằng nguồn. Nếu bạn không chắc đây có phải là sự cố không, hãy làm như sau:
- Mở "Trình quản lý tác vụ"
- Nhấp vào tab "Hiệu suất".
- Nhấp vào "Giám sát tài nguyên mở"
- Chọn tab "CPU"
- Nhìn vào phía bên phải của cửa sổ tại các CPU khác nhau.
Nếu bạn thấy bất kỳ ai trong số họ đang đỗ xe, bạn sẽ nhận thấy rằng một nửa trong số họ đang đỗ bất cứ lúc nào, tất cả họ sẽ bốc cháy, và nửa còn lại sẽ đỗ. Nó xen kẽ qua lại. Do đó, CPU của hệ thống đang bị đập.
Máy ảo: Vấn đề này thậm chí còn tồi tệ hơn khi bạn đang chạy một máy ảo vì có thêm chi phí của trình ảo hóa. Nói chung, để VM chạy, phần cứng cần có một khe thời gian có sẵn cho mỗi lõi tại mỗi thời điểm.
Nếu bạn có một phần cứng 16 lõi, bạn có thể chạy VM bằng cách sử dụng hơn 16 tổng số lõi nhưng với mỗi lần, chỉ có tối đa 16 CPU ảo sẽ đủ điều kiện cho lát cắt thời gian đó và trình ảo hóa phải phù hợp với tất cả các lõi cho VM vào thời gian đó. Nó không thể được trải ra trên nhiều thời gian. (Một thời gian thực chất là một tập hợp các chu kỳ CPU X. Nó có thể là 1000 hoặc có thể là 100k chu kỳ)
Ví dụ: phần cứng 16 lõi với 8 VM. 6 có 4 CPU ảo (4C) và 2 có 8 CPU ảo (8C).
Thời gian 1: 4x4C Thời gian 2: 2x8C Thời gian 3: 2x4C + 1x8C Thời gian 4: 1x8C + 2x4C
Điều mà nhà ảo thuật không thể làm là chia một nửa số tiền giao cho một khoảng thời gian cho 4 CPU đầu tiên của 8 vCPU VM và sau đó vào thời gian tiếp theo, đưa phần còn lại cho 4 vCPU còn lại của VM đó. Đó là tất cả hoặc không có gì trong một khoảng thời gian.
Nếu bạn đang sử dụng Hyper-V của Microsoft, các cài đặt điều khiển nguồn có thể được bật trong HĐH máy chủ, nghĩa là nó sẽ truyền xuống hệ thống máy khách, do đó cũng ảnh hưởng đến chúng.
Khi bạn thấy cách thức hoạt động của nó, thật dễ dàng để xem cách sử dụng cài đặt Điều khiển nguồn cân bằng gây ra các vấn đề về hiệu suất và máy chủ chậm chạp. Một trong những vấn đề cơ bản là yêu cầu đến cần chờ quá trình đỗ / bỏ CPU hoàn thành trước khi máy chủ có thể đáp ứng yêu cầu đến, cho dù đó là truy vấn cơ sở dữ liệu, yêu cầu máy chủ web hay bất cứ điều gì khác .
Đôi khi, hệ thống sẽ đỗ hoặc hủy CPU ở giữa một yêu cầu. Trong những trường hợp này, yêu cầu sẽ bắt đầu vào đường ống CPU, được loại bỏ khỏi nó và sau đó một lõi CPU khác sẽ nhận quy trình từ đó. Nếu đó là một yêu cầu đủ lớn, điều này có thể xảy ra nhiều lần trong suốt quá trình yêu cầu, thay đổi truy vấn cơ sở dữ liệu 5 giây thành truy vấn cơ sở dữ liệu 15 giây.
Điều lớn nhất bạn sẽ thấy khi sử dụng Cân bằng sức mạnh là các hệ thống sẽ cảm thấy chậm hơn để đáp ứng mọi yêu cầu bạn đưa ra.