Điểm:3

Vmware Esxi - Sự cố hiệu suất phần mềm 32 bit cũ trên đa lõi

lá cờ cn

Tôi đã phát điên trong 2 ngày nay và tôi đang nhờ giúp đỡ.

Tôi có một chương trình được phát triển bằng delphi (khoảng đầu những năm 2000) truy cập cơ sở dữ liệu firebird v3, hiện được cài đặt trên cùng một máy (máy chủ windows 2016 x64 - db và chương trình là x86).

Máy là VM cấu hình trên vmware esxi, mình xin nói luôn: nếu cấu hình VM chỉ 1 vCPU thì chương trình chạy rất tốt, nếu cấu hình 2 vCPU (1 socket và 2 core) trở lên thì hiệu suất giảm đi một nửa.

Vấn đề là khi chỉ để lại một vCPU, cpu luôn ở mức 100% ngay cả khi chỉ dành cho các công việc của máy chủ windows (ví dụ: tìm kiếm các bản cập nhật và các nội dung khác).

Cho tôi vài lời khuyên được không?

PS: Mình chuyển qua firebird x64 không được vì nhiều thư viện là x86.

PPS: HĐH trên VM là Windows Server 2016 Standard ed

joeqwerty avatar
lá cờ cv
**Bạn có lời khuyên nào không?** - Nếu chương trình chạy rất tốt với 1 vCPU thì cứ để nguyên như vậy và bỏ qua việc sử dụng CPU. Nếu không, hãy xây dựng lại ứng dụng của bạn.
vidarlo avatar
lá cờ ar
Tìm xem nút thắt cổ chai dẫn đến hiệu suất giảm một nửa ở đâu. Không có sửa chữa đơn giản cho vấn đề này.
lá cờ cn
Hãy thử đặt mối quan hệ của bộ xử lý thành CPU 0 trong trình quản lý tác vụ hoặc bằng cách sử dụng start/affinity
shodanshok avatar
lá cờ ca
Bạn đã thử định cấu hình máy khách của mình với 2 ổ cắm, mỗi ổ cắm có một lõi chưa?
lá cờ cn
Khi sử dụng 1 vCPU, không chạy ứng dụng của bạn, bạn có được sử dụng 100% CPU chỉ từ các dịch vụ nền của windows không? Có lẽ đó là nơi một cái gì đó là sai. Không chắc CPU vật lý của bạn là gì, nhưng điều đó có vẻ không ổn với tôi.
lá cờ cn
Ok, đây là một phần mềm cũ nhưng hệ điều hành đang chạy trên cái gì? Một trong VM?
MenInTheMiddle avatar
lá cờ cn
Hệ điều hành là phiên bản Windows Server 2016 Standard
Điểm:5
lá cờ cn

Để khách ở một CPU. Và ghi lại lý do trong một số ghi chú về vị khách này trong kho.

Tập trung nhiều hơn vào việc đáp ứng các chỉ số hiệu suất của ứng dụng và ít hơn vào các chỉ số cơ bản gây hiểu lầm như mức sử dụng CPU. Các ứng dụng tương tác có đáp ứng không? Các truy vấn hàng loạt có hoàn thành trong một khoảng thời gian có thể chấp nhận được không? Nếu vậy, đừng lo lắng về CPU.

Chỉnh sửa: "Khóa" mức hiệu suất kém không có trong câu hỏi ban đầu của bạn, đó là bối cảnh quan trọng. Khắc phục sự cố đó có thể đáng để nỗ lực thêm:

  • Lên lịch thời gian bảo trì khi cơ sở dữ liệu bị tắt, để áp dụng các bản cập nhật và các tác vụ khác.
  • Tăng CPU và áp dụng cấu hình CPUAffinity cấp ứng dụng mà các nhận xét khác đã đề cập để khóa nó thành một.
MenInTheMiddle avatar
lá cờ cn
Tôi để khách ở 1 vCPU, mọi thứ đều ổn cho đến khi máy chủ windows quyết định cài đặt các bản cập nhật (Process Windows Modules Installer tăng tốc lên tới 100% cpu khiến quá trình firebird bị khóa hoàn toàn)
Điểm:2
lá cờ ru

Nếu bạn sửa mối quan hệ của quy trình thành một lõi thì lõi kia sẽ miễn phí cho các quy trình khác. Tùy thuộc vào vấn đề lập lịch trình thực tế, có thể cần phải sửa máy chủ Firebird thành cùng một lõi hoặc lõi khác.

Tuy nhiên, vì ESXi cũng ảo hóa các lõi CPU nên nó sẽ tiếp tục di chuyển các lõi vCPU trên các lõi vật lý của bạn. Bạn cũng có thể cần sửa mối quan hệ của máy ảo với các lõi cụ thể.

Bạn nên lưu ý rằng loại điều chỉnh này là do phần mềm được mã hóa kém hoặc lỗi thời nghiêm trọng gây ra. Bạn nên xem xét nghiêm túc việc cập nhật mã.

lá cờ ar
jpa
[Câu hỏi thường gặp về Firebird](https://www.firebirdfaq.org/faq52/) cũng đề xuất thiết lập mối quan hệ CPU, mặc dù thông qua tệp cấu hình của riêng họ.
Zac67 avatar
lá cờ ru
Con số đó - tuy nhiên, do ảo hóa CPU, VM có thể cũng yêu cầu sửa các lõi nhất định.
MenInTheMiddle avatar
lá cờ cn
Tôi đã thử đặt mặt nạ ái lực cpu thành cpu đầu tiên (và tôi cũng cố gắng đặt mặt nạ ái lực thành lõi #0 trong thông số kỹ thuật vm) mà không có kết quả đáng chú ý. Phiên bản cuối cùng của firebird dường như có vấn đề về tham số mặt nạ ái lực cpu trong tệp cấu hình được báo cáo tại [Cho phép sử dụng int 64-bit cho mặt nạ ái lực CPU](https://github.com/FirebirdSQL/firebird/commit/188c1c6176c63cff6eedd85806bd266352df11f0), bạn có xác nhận rằng lỗi có thể là nguyên nhân của việc thiếu kết quả cài đặt mặt nạ ái lực cpu trong firebird.conf không?
Zac67 avatar
lá cờ ru
@MenInTheMiddle Nếu có vấn đề về bộ nhớ đệm, bạn cũng cần khắc phục mối quan hệ của VM trong cài đặt nâng cao ESXi/vSphere.
Điểm:0
lá cờ cn

Đây là một vấn đề đã biết của FireBird.

Tôi đã quản lý một số khách hàng sử dụng FireBird cho nhiều phần mềm khác nhau và khó định cấu hình chỉ số đa luồng với .conf, nhưng trước tiên, bạn phải cài đặt Firebird với các cài đặt bạn cần để sử dụng đa luồng, máy chủ cổ điển.

nhập mô tả hình ảnh ở đây

Đừng quên ứng dụng khách cũng cần có thư viện an toàn đa luồng nếu bạn muốn chắc chắn.

Thư viện khách hàng an toàn chủ đề

Thư viện khách hàng an toàn chủ đề

Dmitry Yemanov
Vladyslav Khorsun
Alex Peshkov

Tham chiếu theo dõi CORE-707.

Các thư viện máy khách, bao gồm cả thư viện được nhúng, hiện có thể được sử dụng trong các ứng dụng đa luồng mà không cần bất kỳ cấp độ ứng dụng nào

đồng bộ hóa.

MenInTheMiddle avatar
lá cờ cn
Cảm ơn vì đã trả lời. Tôi đang sử dụng firebird 3 (siêu máy chủ), phiên bản 3 dường như được tối ưu hóa cho công việc đa lõi (Mục tiêu chính của Firebird 3.0 là thống nhất kiến ​​trúc máy chủ và cải thiện khả năng hỗ trợ cho SMP và các nền tảng phần cứng đa lõi - firebirdsql.org). Dù sao thì tôi cũng sẽ thử với cấu hình máy chủ cổ điển, tôi sẽ cho bạn biết
yagmoth555 avatar
lá cờ cn
@MenInTheMiddle oh ok, tôi không thấy phiên bản 3, sau đó chỉ cần đảm bảo sử dụng mối quan hệ sau đó nếu trên siêu máy chủ, theo mặc định cổ điển, bạn không cần nó, nhưng trên siêu máy chủ thì nó hoạt động, nhưng bạn cần đặt cài đặt nếu tôi nhớ chính xác

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.