Làm cách nào để tăng tốc cài đặt và gỡ cài đặt gói MSI?


14

Khi cài đặt và gỡ cài đặt các gói Windows Installer hoặc các tệp MSI khi chúng được gọi, tiến trình cài đặt sẽ xuất hiện chậm hơn đáng kể so với các gói cài đặt khác.

Tại sao lại như vậy, và tôi có thể làm gì để tăng tốc mọi thứ ?


1
Bạn biết gì không, tôi ngay lập tức bỏ phiếu vì đã cố gắng cung cấp một số lời khuyên thực tế và kỹ thuật từ thế giới triển khai cho thế giới quản trị hệ thống. Lời khuyên trong chủ đề này là cả về mặt logic và kỹ thuật tính đến thời điểm viết. Phê bình xây dựng chào đón.
Stein smul

Về cơ bản, bạn đã viết một bài viết về một số khía cạnh của công nghệ MSI. Điều đó thật tuyệt, tôi đoán vậy. Tôi chưa bao giờ, với tư cách là một sysadmin, thực sự cần thiết để giải quyết vấn đề "Cài đặt phần mềm của tôi quá chậm."
mfinni

Đây là một câu trả lời cập nhật cho một câu hỏi tôi đã thấy nhiều lần trên trang web này và các trang web trao đổi ngăn xếp khác.
Stein Åsmul

3
@mfinni - không có nghĩa là nó không có chủ đề. Có rất nhiều vấn đề mà tôi thấy trên trang web này mà tôi không gặp phải.
Mark Henderson

Ông đã hỏi tại sao ông lại bỏ phiếu mà không bình luận. Tôi đã không bỏ phiếu, nhưng đã đưa ra một câu trả lời mà tôi thấy là một lý do có thể tại sao.
mfinni

Câu trả lời:


15

Tóm tắt nhanh

  • Thuộc tính cần cho tốc độ để điều chỉnh:
    • MSIFASTINSTALL (thử nó, có thể3hoặc7)
    • FASTOEM (suy nghĩ hai lần, phải đọc tài liệu)
    • DISABLEROLLBACK (hiểu ý nghĩa của nó, có thể khiến các hành động tùy chỉnh trong gói MSI không chạy được! Nó phụ thuộc vào thiết kế MSI - tìm kiếm các hành động tùy chỉnh cam kết khôi phục )
  • Phần mềm bảo mật có thể bị đình chỉ để tăng tốc độ cài đặt.
    • Cố gắng vô hiệu hóa trong khi cài đặt - quét trình cài đặt của bạn trên virustotal.com .
  • Hãy thử chạy từ một hình ảnh hành chính ( thông tin thay thế ) (không cần trích xuất tập tin).
    • Chạy từ một hình ảnh hành chính địa phương sẽ là nhanh nhất.
    • Mạng có độ trễ cao có thể làm chậm cài đặt nếu bạn sử dụng hình ảnh quản trị mạng?
      • Chi phí tiềm năng cao cho mỗi tệp (tệp nhỏ).
      • Tải xuống một CAB có thể nhanh hơn (kiểm tra vi rút có thể mất nhiều thời gian ở đây)?
  • Khôi phục hệ thống có thể bị vô hiệu hóa trên toàn cầu trên máy (không chỉ thông qua MSIFASTINSTALL).

Thông tin lai lịch

Phần lớn sự chậm chạp của phiên Windows Installer là do khả năng khôi phục của nó . Đầu tiên, nó tạo một điểm khôi phục trước khi cài đặt hoặc gỡ cài đặt (với điều kiện khôi phục hệ thống chưa bị vô hiệu hóa). Sau đó, nó sẽ sao lưu tất cả các tệp và khóa đăng ký bị ảnh hưởng trong khi gỡ cài đặt và cài đặt để đảm bảo rằng hệ thống có thể được khôi phục về trạng thái ban đầu nếu xảy ra lỗi. Các phiên bản sau của Windows Installer có các cách để vô hiệu hóa một số sự phức tạp này và tăng tốc mọi thứ. Xem thông tin kỹ thuật dưới đây.

Một yếu tố tốc độ khác là tất cả các thành phần và tính năng trong MSI sẽ được đăng ký trong sổ đăng ký . Điều này liên quan đến khá nhiều chi phí , nhưng là cần thiết để đạt được các lợi ích quản trị hệ thống và triển khai quan trọng của công ty . Không có công nghệ triển khai nào khác có mức độ kiểm soát này.

Các tệp MSI lớn với các tệp nguồn nhúng có thể cần nhiều thời gian để trích xuất các tệp cài đặt của nó vào thư mục tạm thời. Điều này đôi khi có thể là nút cổ chai lớn nhất của tất cả. Nên chạy cài đặt quản trị viên để trích xuất các tệp nguồn từ gói đó để chúng xuất hiện song song với chính tệp MSI, loại bỏ nhu cầu trích xuất tệp cục bộ trên mỗi máy và do đó tiết kiệm thời gian triển khai. Đây là một bài viết khác mô tả trích xuất tập tin từ các gói MSI bằng các thuật ngữ đơn giản .


Thông tin kĩ thuật


CẬP NHẬT (Feb.2018): Bạn có thể đặt thuộc tính có tên FASTOEM trong các trường hợp rất đặc biệt (xem nội dung được liên kết) để tăng tốc độ triển khai. Tôi chưa bao giờ thử điều này, nhưng nó rất đáng để đọc. Tôi nghi ngờ bạn sẽ thành công khi sử dụng nó một cách hiệu quả, nhưng nó có thể đáng để thử.


Bản cập nhật mới nhất cho Windows Installer tại thời điểm viết, Windows Installer 5 (có sẵn trên Windows Server 2012, Windows 8, Windows Server 2008 R2 hoặc Windows 7), có tính năng mới MSIFASTINSTALL có thể được sử dụng để tăng tốc độ cài đặt một gói MSI lớn . Xem liên kết ở trên để biết giá trị hợp lệ. Tôi sẽ đề nghị 3 cho không điểm khôi phục , và chỉ FileCosting (quá trình xác định các yêu cầu không gian đĩa). Hoặc 7 để cũng giảm tần suất của tin nhắn tiến độ.

" Chi phí " thông thường có rất nhiều tính năng, thành phần, đĩa và đăng ký so sánh và tính toán giữa những gì tồn tại trên hệ thống và những gì đang được cài đặt. Theo tôi, hầu hết điều này hiếm khi cần thiết (dung lượng ổ đĩa thường dồi dào trên PC khách - và trong thực tế năm 2018 với đĩa SD nhỏ hơn, vấn đề không gian có thể xuất hiện trở lại ...), nhưng rõ ràng an toàn hơn khi để đầy chi phí chạy.

msiexec.exe / Tôi "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3

Cũng có thể đặt thuộc tính DISABLEROLLBACK để tắt hỗ trợ rollback trong trình cài đặt MSI. Tôi thực sự khuyên bạn không nên sử dụng điều này trừ khi bạn đang dàn dựng một PC mới. Đây là một trường hợp đặc biệt khi bạn chỉ có thể bắt đầu lại nếu có gì đó không thành công. Đối với một máy tính đang sử dụng thực tế, tôi không khuyên bạn nên kích hoạt tính chất này.

Điều trớ trêu là việc vô hiệu hóa rollback sẽ tăng tốc mọi thứ nhiều nhất nếu bạn đang chạy gói cập nhật lớn thay thế nhiều tệp hoặc bất kỳ gỡ cài đặt lớn nào (vì việc gỡ cài đặt sẽ di chuyển tất cả các tệp đã xóa sang vùng rollback). Nó có thể khá quan trọng, nhưng không an toàn. Bạn chỉ cần đặt thuộc tính này tại dòng lệnh: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Cài đặt hành chính

Và cuối cùng, như đã đề cập ở trên trong thông tin cơ bản, hãy chạy cài đặt quản trị tệp MSI để trích xuất các tệp để việc trích xuất không xảy ra cục bộ trên mỗi máy. Điều này giả định rằng bạn đang ở trên một mạng khá nhanh và việc sao chép tệp xảy ra mà không có quá nhiều độ trễ. Tôi cho rằng một mạng không dây có độ trễ cao có thể khiến mọi thứ chậm hơn với các tệp nhỏ được trích xuất phải được sao chép từng cái một. Bạn chạy cài đặt quản trị bằng cách chuyển a / a đến tệp cài đặt:

setup.exe / a

hoặc là

msiexec / a "D: \ winzip112.msi"

Sau đó, bạn cần làm theo lời nhắc và chọn vị trí trích xuất cho các tệp. Xem superuser.com cho một chủ đề thảo luận về tính năng này.


Một số liên kết :

Tốc độ:


không phải thế MSIFASTINSTALLsao không có ERđuôi.
n611x007

Tôi đã thêm thuộc tính MSIFASTINSTALL = 3 trong dự án Wix của mình. Tuy nhiên, không có sự khác biệt trong thời gian cài đặt. <Id Id = "MSIFASTINSTALL" Value = "3" /> Tôi có làm gì sai không?
Kathir Subramaniam

1
Nó chủ yếu cải thiện thời gian "khởi đầu" cho MSI - việc tạo điểm khôi phục hệ thống có thể chậm. Nó cũng giúp tính toán các yêu cầu không gian, nhưng bản thân việc cài đặt thực tế không nhanh hơn nhiều. Chờ trong khi tôi tìm một câu trả lời khác mà tôi có thể gửi cho bạn.
Stein Åsmul


Như bạn sẽ thấy: không có viên đạn bạc, nhưng một số điều chỉnh bạn có thể thực hiện. Làm thế nào lớn là thiết lập của bạn?
Stein Åsmul
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.