Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

distcc - Trực tuyến trên Đám mây

Chạy distcc trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là bản phân phối lệnh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


distcc - trình biên dịch C / C ++ / ObjC được phân phối với phần mở rộng distcc-pump

SYNOPSIS


ditcc [MÁY LỌC TÙY CHỌN]

ditcc [MÁY LỌC TÙY CHỌN]

[MÁY LỌC TÙY CHỌN]

ditcc [ QUẬN TÙY CHỌN]

MÔ TẢ


distcc phân phối việc biên dịch mã C trên nhiều máy trên mạng. distcc
sẽ luôn tạo ra kết quả giống như trình biên dịch cục bộ, cài đặt đơn giản và
sử dụng, và nó thường nhanh hơn nhiều so với trình biên dịch cục bộ.

Phiên bản này kết hợp phân phối đơn giản cũng như một cải tiến được gọi là chế độ bơm hoặc
bơm phân phối.

Đối với mỗi công việc, distcc ở chế độ thuần túy sẽ gửi mã nguồn hoàn chỉnh được xử lý trước và
đối số biên dịch trên mạng từ máy khách đến máy chủ biên dịch. Trong máy bơm
chế độ, distcc gửi mã nguồn và các tệp tiêu đề được bao gồm một cách đệ quy (ngoại trừ những
từ các thư mục tiêu đề hệ thống mặc định), để cả tiền xử lý và biên dịch
có thể diễn ra trên các máy chủ biên dịch. Điều này tăng tốc độ phân phối các bản tổng hợp bằng cách
lên đến một thứ tự độ lớn so với phân phối đơn giản.

Quá trình biên dịch được điều khiển bởi một máy khách, thường là máy trạm của nhà phát triển
hoặc máy tính xách tay. Ứng dụng khách distcc chạy trên máy này, cũng như bộ xử lý tiền xử lý (nếu
chế độ máy bơm của distcc không được sử dụng), trình liên kết và các giai đoạn khác của quá trình xây dựng. Bất kì
số lượng máy tình nguyện hoạt động như máy chủ biên dịch và giúp khách hàng xây dựng
chương trình, bằng cách chạy disccd(1) daemon, trình biên dịch C và trình hợp dịch theo yêu cầu.

distcc có thể chạy qua các ổ cắm TCP (trên cổng 3632 theo mặc định) hoặc qua một đường hầm
lệnh chẳng hạn như ssh(1). Đối với các kết nối TCP, các tình nguyện viên phải chạy disccd(1) yêu tinh
trực tiếp hoặc từ inetd. Đối với kết nối SSH, bản phân phối phải được cài đặt nhưng phải
không lắng nghe các kết nối.

Kết nối TCP chỉ nên được sử dụng trên các mạng an toàn vì không có người dùng
xác thực hoặc bảo vệ mã nguồn hoặc mã đối tượng. Kết nối SSH thường là 25%
chậm hơn do chi phí bộ xử lý để mã hóa, mặc dù điều này có thể thay đổi rất nhiều
tùy thuộc vào CPU, mạng và chương trình được xây dựng.

distcc được thiết kế để sử dụng với GNU Make's -j tùy chọn chạy một số trình biên dịch
xử lý đồng thời. distcc trải rộng các công việc trên cả CPU cục bộ và từ xa.
Bởi vì distcc có thể phân phối hầu hết công việc trên toàn mạng,
mức đồng thời có thể được sử dụng hơn cho các bản dựng cục bộ. Theo quy tắc chung, -j giá trị
nên được đặt thành khoảng gấp đôi tổng số CPU máy chủ khả dụng nhưng phải tuân theo
hạn chế của khách hàng. Cài đặt này cho phép xen kẽ tối đa các tác vụ đang bị chặn
chờ đợi đĩa hoặc mạng IO. Lưu ý rằng distcc cũng có thể hoạt động với điều khiển bản dựng khác
các công cụ, chẳng hạn như SCons, trong đó các cài đặt đồng thời tương tự phải được điều chỉnh.

Sản phẩm -j cài đặt, đặc biệt là đối với các giá trị lớn của -NS, phải tính đến tải CPU trên
khách hàng. Các biện pháp bổ sung có thể cần thiết để giảm tải khách hàng. Ví dụ,
liên kết đồng thời nên được hạn chế nghiêm ngặt bằng cách sử dụng các khóa phụ. Ảnh hưởng của
hoạt động xây dựng khác, chẳng hạn như biên dịch Java khi xây dựng mã hỗn hợp, phải
được xem xét. Các --localslots_cpp tham số được đặt theo mặc định là 16. Điều này giới hạn
số lượng quy trình đồng thời thực hiện tiền xử lý ở chế độ phân phối đơn giản (không bơm).
Do đó, lớn hơn -j các giá trị hơn 16 có thể được sử dụng mà không làm quá tải máy khách một CPU
do tiền xử lý. Các giá trị lớn như vậy có thể tăng tốc các phần của công trình không
liên quan đến tổng hợp C, nhưng chúng có thể không hữu ích để phân bổ hiệu quả ở chế độ đơn giản.

Ngược lại, sử dụng chế độ máy bơm và giả sử 40 máy chủ, cài đặt của -j80 hoặc lớn hơn có thể là
thích hợp ngay cả với các máy khách một CPU.

Chúng tôi khuyên bạn nên cài đặt cùng một phiên bản trình biên dịch trên tất cả các máy
tham gia xây dựng. Các trình biên dịch không tương thích có thể gây ra liên kết hoặc biên dịch bí ẩn
những thất bại.

BẮT ĐẦU NHANH


1 Đối với mỗi máy, tải xuống bản phân phối, giải nén và cài đặt.

2 Trên mỗi máy chủ, chạy disccd --daemon với --cho phép các tùy chọn để hạn chế
truy cập.

3 Đặt tên của các máy chủ trong môi trường của bạn:
$ export DISTCC_HOSTS = 'localhost đỏ xanh lục lam'

4 Xây dựng!
$ make -j8 CC = distcc

BẮT ĐẦU NHANH CHO DISTCC-BƠM PHƯƠNG THỨC


Tiếp tục như trên, nhưng ở Bước 3, chỉ định rằng các máy chủ từ xa phải gánh vác
tiền xử lý và các tệp được gửi qua mạng phải được nén:

$ export DISTCC_HOSTS = '- ngẫu nhiên hóa localhost red, cpp, lzo green, cpp, lzo
xanh lam, cpp, lzo '

Sản phẩm --ngẫu nhiên tùy chọn thực thi việc sử dụng thống nhất các máy chủ biên dịch. Trong khi bạn sẽ nhận được
một số lợi ích từ chế độ bơm của distcc chỉ với một số máy chủ, bạn sẽ nhận được lợi ích ngày càng tăng
với nhiều CPU máy chủ hơn (lên đến hàng trăm!). Bao bọc bản dựng của bạn bên trong lệnh bơm,
ở đây giả sử 10 máy chủ:

$ distcc-pump make -j20 CC = distcc

LÀM THẾ NÀO ĐỒNG BẰNG (KHÔNG BƠM) DISTCC LÀM RA SAO


distcc chỉ chạy trình biên dịch và trình hợp dịch từ xa. Với bản phân phối đơn giản,
bộ tiền xử lý phải luôn chạy cục bộ vì nó cần truy cập vào các tệp tiêu đề khác nhau trên
máy cục bộ có thể không có, hoặc có thể không giống, trên tình nguyện viên. Các
tương tự, trình liên kết cần kiểm tra các thư viện và tệp đối tượng, và vì vậy phải chạy cục bộ.

Trình biên dịch và trình hợp dịch chỉ lấy một tệp đầu vào duy nhất (nguồn được xử lý trước) và
tạo ra một đầu ra duy nhất (tệp đối tượng). distcc vận chuyển hai tệp này qua
mạng và do đó có thể chạy trình biên dịch / trình hợp dịch từ xa.

May mắn thay, đối với hầu hết các chương trình chạy bộ tiền xử lý tương đối rẻ, và
trình liên kết được gọi là tương đối không thường xuyên, vì vậy hầu hết công việc có thể được phân phối.

distcc kiểm tra dòng lệnh của nó để xác định giai đoạn nào trong số các giai đoạn này đang được gọi và
công việc có thể được phân phối hay không.

LÀM THẾ NÀO DISTCC-BƠM PHƯƠNG THỨC LÀM RA SAO


Ở chế độ bơm, distcc cũng chạy bộ tiền xử lý từ xa. Để làm như vậy, bộ tiền xử lý phải
có quyền truy cập vào tất cả các tệp mà nó sẽ được truy cập nếu đang chạy cục bộ. Trong
chế độ máy bơm, do đó, distcc tập hợp tất cả các tiêu đề được bao gồm đệ quy, ngoại trừ
những cái là tiêu đề hệ thống mặc định và gửi chúng cùng với tệp nguồn tới
máy chủ biên dịch.

Trong chế độ distcc-pump, máy chủ giải nén tập hợp tất cả các tệp nguồn trong một
thư mục, chứa một cây thư mục phản chiếu phần của hệ thống tệp
có liên quan đến tiền xử lý, bao gồm các liên kết tượng trưng.

Sau đó, trình biên dịch được chạy từ đường dẫn trong thư mục tạm thời tương ứng với
thư mục làm việc hiện tại trên máy khách. Để tìm và truyền hàng trăm tệp
thường là một phần của một tổng hợp duy nhất, chế độ máy bơm sử dụng bao gồm gia tăng
thuật toán phân tích. Máy chủ bao gồm là một chương trình Python thực hiện điều này
thuật toán. Lệnh distcc-pump khởi động máy chủ bao gồm để trong suốt quá trình xây dựng
nó có thể trả lời bao gồm các truy vấn bằng lệnh distcc.

Máy chủ bao gồm sử dụng phân tích tĩnh của ngôn ngữ macro để xử lý
biên dịch và tính toán bao gồm. Nó sử dụng thuộc tính mà khi một tệp tiêu đề nhất định có
đã được phân tích về bao gồm, không cần thiết phải làm lại nếu tất cả bao gồm
các tùy chọn (I's) là không thay đổi (cùng với các điều kiện khác).

Đối với các bản dựng lớn, trung bình mỗi tập tin tiêu đề được bao gồm hàng trăm lần. Với
chế độ distcc-pump, mỗi tệp như vậy chỉ được phân tích một vài lần, có lẽ chỉ một lần, thay vào đó
đã được xử lý trước hàng trăm lần. Ngoài ra, mỗi tệp nguồn hoặc tệp tiêu đề bây giờ là
chỉ được nén một lần, vì máy chủ bao gồm ghi nhớ các tệp đã nén. Như một
kết quả là, thời gian được sử dụng để chuẩn bị tổng hợp có thể giảm đến một mức độ lớn
qua quá trình xử lý trước của bản phân phối đơn giản.

Bởi vì distcc ở chế độ bơm có thể đẩy tệp ra nhanh hơn khoảng mười lần, hãy xây dựng
tốc độ có thể tăng gấp 3 lần hoặc hơn đối với các bản dựng lớn so với chế độ phân phối đơn giản.

NHỮNG HẠN CHẾ CHO Bơm PHƯƠNG THỨC


Sử dụng chế độ máy bơm yêu cầu cả máy khách và máy chủ phải sử dụng phiên bản 3.0 trở lên của distcc và
distccd (tương ứng).

Phần gia tăng bao gồm phân tích chế độ máy bơm phân phối dựa trên giả định cơ bản
rằng các tệp nguồn và tiêu đề không thay đổi trong quá trình xây dựng. Một vài bản dựng phức tạp
các hệ thống, chẳng hạn như Linux kernel 2.6, không hoàn toàn đáp ứng yêu cầu này. Đến
khắc phục các vấn đề như vậy và các trường hợp góc khác, chẳng hạn như đường dẫn tệp tuyệt đối trong bao gồm, xem
các bao gồm_máy chủ(1) trang người đàn ông.

Một giả định quan trọng khác là cấu hình bao gồm của tất cả các máy phải
giống hệt nhau. Do đó, các tiêu đề trong đường dẫn hệ thống mặc định phải giống nhau trên tất cả các máy chủ
và tất cả các khách hàng. Nếu cài đặt trình biên dịch GNU tiêu chuẩn được sử dụng, thì yêu cầu này
áp dụng cho tất cả các thư viện có tệp tiêu đề được cài đặt trong / usr / bao gồm or
/ usr / local / bao gồm /. Lưu ý rằng việc cài đặt các gói phần mềm thường dẫn đến bổ sung
các tệp tiêu đề được đặt trong các thư mục con của một trong hai.

Nếu giả định này không đúng, thì có thể phá vỡ các bản dựng bằng máy bơm phân phối
hoặc tệ hơn, nhận được kết quả sai mà không có cảnh báo. Hiện tại điều kiện này không
đã xác minh và nó nằm trong danh sách CẦN LÀM của chúng tôi để giải quyết vấn đề này.

Một cách dễ dàng để đảm bảo rằng các cấu hình bao gồm giống hệt nhau là sử dụng một
trình biên dịch xác định đường dẫn tìm kiếm hệ thống mặc định được giới hạn cho các thư mục của
cài đặt trình biên dịch.

Xem bao gồm_máy chủ(1) hướng dẫn sử dụng để biết thêm thông tin về các triệu chứng và nguyên nhân vi phạm
giả định về chế độ bơm phân phối.

TÙY CHỌN TÓM TẮT


Hầu hết các tùy chọn được chuyển đến distcc được hiểu là các tùy chọn của trình biên dịch. Các tùy chọn sau
được hiểu bởi chính distcc. Nếu bất kỳ tùy chọn nào trong số này được chỉ định, distcc sẽ không
gọi trình biên dịch.

--Cứu giúp Hiển thị hướng dẫn tóm tắt.

--phiên bản
Hiển thị phiên bản máy khách distcc.

--show-host
Hiển thị danh sách máy chủ mà distcc sẽ sử dụng. Xem phần Thông số kỹ thuật máy chủ.

--scan-bao gồm
Hiển thị danh sách các tệp mà distcc sẽ gửi đến máy từ xa, như
được tính toán bởi máy chủ bao gồm. Đây là một ước lượng bảo thủ (quá mức) của
các tệp sẽ được đọc bởi trình biên dịch C. Tùy chọn này chỉ hoạt động ở chế độ bơm.
Xem phần "Cách hoạt động của Chế độ máy bơm Distcc" để biết chi tiết về cách tính toán điều này.

Danh sách xuất ra bởi ditcc --scan-bao gồm sẽ chứa một mục trên mỗi dòng. Mỗi
dòng chứa một danh mục theo sau bởi một đường dẫn. Danh mục này là một trong FILE, SYMLINK,
DIRECTORY hoặc SYSTEMDIR:

FILE cho biết tệp nguồn hoặc tệp tiêu đề sẽ được gửi đến máy chủ phân phối
chủ nhà.

BIỂU TƯỢNG chỉ ra một liên kết tượng trưng sẽ được gửi đến máy chủ máy chủ phân phối.

MỤC chỉ ra một thư mục có thể cần thiết để biên dịch nguồn
tập tin. Ví dụ: có thể cần một thư mục "foo" vì bao gồm
biểu mẫu #include "foo /../ bar.h". Những thư mục như vậy sẽ được tạo trên bản phân phối
Máy chủ lưu trữ.

HỆ THỐNG chỉ ra một thư mục bao gồm hệ thống, tức là một thư mục nằm trên
đường dẫn bao gồm mặc định của trình biên dịch, chẳng hạn như "/ usr / bao gồm"; các thư mục như vậy là
giả sử có mặt trên máy chủ máy chủ distcc và vì vậy sẽ không được gửi đến
máy chủ distcc.

-j Hiển thị mức đồng thời của distcc, như được tính toán từ danh sách máy chủ; nó là
số lượng công việc chưa hoàn thành tối đa do ứng dụng khách này cấp cho tất cả các máy chủ. Qua
mặc định, con số này sẽ gấp bốn lần số lượng máy chủ trong danh sách máy chủ lưu trữ, trừ khi
/ LIMIT tùy chọn đã được sử dụng trong danh sách máy chủ lưu trữ. Xem phần Thông số kỹ thuật máy chủ.

CÀI ĐẶT DISTCC


Có ba cách khác nhau để gọi distcc, phù hợp với các trường hợp khác nhau:

distcc có thể được cài đặt dưới tên của trình biên dịch thực, để chặn các cuộc gọi đến
nó và chạy chúng từ xa. Trình biên dịch "giả mạo" này có khả năng tương thích rộng nhất
với các cây nguồn hiện có và thuận tiện khi bạn muốn sử dụng distcc cho tất cả
biên dịch. Thực tế là distcc đang được sử dụng là minh bạch đối với makefiles.

distcc có thể được thêm vào trước các dòng lệnh của trình biên dịch, chẳng hạn như "distcc cc -c hello.c"
hoặc CC = "distcc gcc". Điều này rất tiện lợi khi bạn chỉ muốn sử dụng distcc cho một số
biên dịch hoặc để dùng thử, nhưng có thể gây ra sự cố với một số cấu hình hoặc
phiên bản libtool giả sử $ CC không chứa khoảng trắng.

Cuối cùng, distcc có thể được sử dụng trực tiếp như một trình biên dịch. "cc" luôn được sử dụng làm
tên của trình biên dịch thực trong chế độ "ngầm" này. Điều này có thể thuận tiện cho
sử dụng tương tác khi chế độ "rõ ràng" không hoạt động nhưng không thực sự được khuyến khích
để sử dụng mới.

Hãy nhớ rằng bạn không nên sử dụng hai phương thức để gọi distcc cùng một lúc. nếu bạn
đang sử dụng thư mục giả mạo, không thay đổi CC và / hoặc CXX, chỉ cần đặt thư mục sớm
trên PATH của bạn. Nếu bạn không sử dụng thư mục giả trang, bạn cần phải thay đổi CC
và / hoặc CXX, hoặc sửa đổi (các) makefile để gọi distcc một cách rõ ràng.

MẶT NẠ


Ý tưởng cơ bản là tạo một "thư mục hóa trang" chứa các liên kết từ tên của
trình biên dịch thực sang tệp nhị phân distcc. Thư mục này được chèn sớm trên PATH, vì vậy
rằng các lệnh gọi đến trình biên dịch bị chặn và thay vào đó, distcc sẽ được chạy. distcc sau đó loại bỏ
chính nó từ PATH để tìm trình biên dịch thực sự.

Ví dụ:

# mkdir / usr / lib / distcc / bin
# cd / usr / lib / distcc / bin
# ln -s ../../../bin/distcc gcc
# ln -s ../../../bin/distcc cc
# ln -s ../../../bin/distcc g ++
# ln -s ../../../bin/distcc c ++

Sau đó, để sử dụng distcc, người dùng chỉ cần đưa thư mục / usr / lib / distcc / bin vào sớm
PATH và đã đặt danh sách máy chủ lưu trữ trong DISTCC_HOSTS hoặc một tệp. distcc sẽ xử lý
nghỉ ngơi.

Lưu ý rằng thư mục giả trang này phải xuất hiện trên PATH sớm hơn thư mục
chứa các trình biên dịch thực tế có cùng tên và bất kỳ chương trình phụ trợ nào
các cuộc gọi trình biên dịch này (chẳng hạn như hoặc ld) cũng phải được tìm thấy trên PATH trong một thư mục
sau thư mục masquerade kể từ khi distcc gọi ra trình biên dịch thực với PATH
giá trị có tất cả thư mục lên đến và bao gồm cả thư mục giả trang bị cắt bỏ.

Có thể gặp "lỗi đệ quy" trong chế độ giả trang, có nghĩa là distcc
bằng cách nào đó tìm thấy chính nó một lần nữa, không phải là trình biên dịch thực sự. Điều này có thể chỉ ra rằng bạn có hai
thư mục giả trang trên PATH, có thể do có hai cài đặt phân phối trong
các địa điểm khác nhau. Nó cũng có thể chỉ ra rằng bạn đang cố kết hợp "masqueraded" và
hoạt động "rõ ràng".

Có thể tránh được lỗi đệ quy bằng cách sử dụng các tập lệnh shell thay vì các liên kết. Ví dụ, trong
/ usr / lib / distcc / bin tạo một tệp cc chứa:

#!/ Bin / sh
distcc / usr / bin / gcc "$ @"

Bằng cách này, chúng tôi không phụ thuộc vào việc distcc phải xác định vị trí gcc thực bằng cách điều tra
biến PATH. Thay vào đó, vị trí trình biên dịch được cung cấp rõ ràng.

SỬ DỤNG DISTCC CÙNG VỚI CCACHE


ccache là một chương trình tăng tốc độ xây dựng phần mềm bằng cách lưu vào bộ nhớ đệm các kết quả biên dịch.
ccache thường được gọi trước distcc, do đó, kết quả được truy xuất từ ​​một
bộ nhớ đệm. Một số thử nghiệm có thể được yêu cầu để trang điểm mang phong cách riêng có thể thực hiện
mọi thứ hoạt động cùng nhau.

Phương pháp đáng tin cậy nhất là đặt

CCACHE_PREFIX = "distcc"

Điều này yêu cầu ccache chạy distcc như một trình bao bọc xung quanh trình biên dịch thực. ccache vẫn sử dụng
trình biên dịch thực để phát hiện nâng cấp trình biên dịch.

ccache sau đó có thể được chạy bằng cách sử dụng thư mục masquerade or bằng cách thiết lập

CC = "ccache gcc "

Kể từ phiên bản 2.2, ccache không lưu biên dịch trong bộ nhớ cache từ nguồn được xử lý trước và như vậy sẽ
không bao giờ nhận được lần truy cập bộ nhớ cache nếu nó được chạy từ phân phối hoặc phân phối. Nó chỉ được chạy trên
phía khách hàng và trước khi phân phối được sử dụng.

Chế độ bơm của distcc không tương thích với ccache.

HOST ĐẶC TÍNH KỸ THUẬT


Một "danh sách máy chủ lưu trữ" cho distcc biết máy nào sẽ sử dụng để biên dịch. Theo thứ tự, trông distcc
trong $ DISTCC_HOSTS biến môi trường, người dùng $ DISTCC_DIR / máy chủ tập tin và
tệp máy chủ toàn hệ thống. Nếu không tìm thấy danh sách máy chủ, distcc sẽ phát ra cảnh báo và biên dịch
tại địa phương

Danh sách máy chủ lưu trữ là một danh sách các thông số kỹ thuật máy chủ được phân tách bằng khoảng trắng đơn giản. Điều đơn giản nhất
và dạng phổ biến nhất là tên máy chủ, chẳng hạn như

localhost đỏ màu xanh lá màu xanh da trời

distcc thích máy chủ ở đầu danh sách, vì vậy máy nên được liệt kê trong
thứ tự giảm dần của tốc độ. Đặc biệt, khi chỉ có thể chạy một biên dịch duy nhất (chẳng hạn
như từ một tập lệnh cấu hình), máy đầu tiên được liệt kê được sử dụng (nhưng hãy xem --ngẫu nhiên dưới đây).

Đặt localhost vào đúng điểm trong danh sách là điều quan trọng để đạt được hiệu suất tốt.
Bởi vì chi phí để chạy các công việc cục bộ thấp, nên localhost thường phải là đầu tiên.
Tuy nhiên, điều quan trọng là khách hàng có đủ chu kỳ miễn phí để chạy các công việc cục bộ và
ứng dụng khách distcc. Nếu khách hàng chậm hơn tình nguyện viên, hoặc nếu có nhiều
tình nguyện viên, sau đó khách hàng nên được đưa vào danh sách hoặc không. Như một vị tướng
quy tắc, nếu tốc độ CPU tổng hợp của máy khách nhỏ hơn một phần năm tổng số, thì
khách hàng nên được đưa ra khỏi danh sách.

Nếu bạn có một cụm bản dựng được chia sẻ lớn và một tệp máy chủ được chia sẻ duy nhất, các quy tắc trên
sẽ khiến một số máy đầu tiên trong tệp máy chủ được thử trước mặc dù chúng
có khả năng bận hơn các máy ở sau trong danh sách. Để tránh điều này, hãy đặt từ khóa
--ngẫu nhiên vào danh sách máy chủ. Điều này sẽ làm cho danh sách máy chủ lưu trữ được ngẫu nhiên hóa,
nên cải thiện hiệu suất một chút cho các cụm xây dựng lớn.

Có hai tên máy chủ đặc biệt - địa điểm--localslots_cpp cái nào hữu ích cho
điều chỉnh phụ tải trên máy cục bộ. Các - địa điểm máy chủ lưu trữ chỉ định bao nhiêu công việc
không thể chạy từ xa mà có thể chạy đồng thời trên máy cục bộ, trong khi
--localslots_cpp kiểm soát bao nhiêu bộ tiền xử lý sẽ chạy song song trên cục bộ
cỗ máy. Điều chỉnh các giá trị này có thể cải thiện hiệu suất. Liên kết trong các dự án lớn có thể mất
số lượng lớn bộ nhớ. Chạy trình liên kết song song, không thể thực thi từ xa,
có thể buộc máy phải hoán đổi, điều này làm giảm hiệu suất so với việc chỉ chạy các công việc trong
trình tự mà không hoán đổi. Nhận số lượng bộ tiền xử lý song song vừa phải
cho phép bạn sử dụng các hệ số song song lớn hơn với make, vì máy cục bộ hiện có một số
machanism để đo lường việc sử dụng tài nguyên cục bộ.

Cuối cùng là mục chủ

Hiệu suất phụ thuộc vào chi tiết của nguồn và cấu hình được sử dụng cho dự án, và
tốc độ máy và mạng. Thử nghiệm với các cài đặt khác nhau cho danh sách máy chủ lưu trữ
-j yếu tố có thể cải thiện hiệu suất.

Cú pháp là

DISTCC_HOSTS = HOSTSPEC ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPTION
| ZEROCONF
LOCAL_HOST = localhost [/ LIMIT]
| --localslots =
| --localslots_cpp =
SSH_HOST = [USER] @HOSTID [/ LIMIT] [: COMMAND] [TÙY CHỌN]
TCP_HOST = HOSTID [: PORT] [/ LIMIT] [TÙY CHỌN]
OLDSTYLE_TCP_HOST = HOSTID [/ LIMIT] [: PORT] [TÙY CHỌN]
MÁY CHỦ = TÊN MÁY CHỦ | IPV4 | IPV6
OPTIONS =, OPTION [OPTIONS]
TÙY CHỌN = lzo | cpp
GLOBAL_OPTION = --ngẫu nhiên hóa
ZEROCONF = + zeroconf

Dưới đây là một số ví dụ riêng lẻ về cú pháp:

localhost
Từ "localhost" theo nghĩa đen được diễn giải một cách đặc biệt để làm cho quá trình biên dịch trở nên
được thực thi trực tiếp, thay vì được chuyển đến daemon trên máy cục bộ. Nếu bạn làm
muốn kết nối với daemon trên máy cục bộ để thử nghiệm, sau đó cung cấp
địa chỉ IP của máy hoặc tên máy chủ thực. (Điều này sẽ chậm hơn.)

IPV6 Địa chỉ IPv6 theo nghĩa đen được đặt trong dấu ngoặc vuông, chẳng hạn như [:: 1]

IPV4 Địa chỉ IPv4 theo nghĩa đen, chẳng hạn như 10.0.0.1

TÊN MÁY CHỦ
Tên máy chủ sẽ được tra cứu bằng trình phân giải.

:HẢI CẢNG Kết nối với một số cổng thập phân được chỉ định, thay vì mặc định là 3632.

@HOSTID
Kết nối với máy chủ qua SSH, thay vì TCP. Các tùy chọn cho kết nối SSH có thể
được đặt trong ~ / .ssh / config

NGƯỜI DÙNG@ Kết nối với máy chủ qua SSH dưới dạng tên người dùng được chỉ định.

:YÊU CẦU
Kết nối qua SSH và sử dụng một đường dẫn cụ thể để tìm máy chủ phân phối. Đây là
thường chỉ cần thiết nếu vì lý do nào đó bạn không thể cài đặt distccd vào một thư mục
trên PATH mặc định cho các kết nối SSH. Sử dụng điều này nếu bạn gặp các lỗi như "distccd:
lệnh không tìm thấy "trong chế độ SSH.

/GIỚI HẠN Giới hạn thập phân có thể được thêm vào bất kỳ thông số kỹ thuật máy chủ nào để hạn chế số lượng
công việc mà máy khách này sẽ gửi đến máy. Giới hạn mặc định là bốn mỗi
host (hai cho localhost), nhưng có thể bị máy chủ hạn chế thêm. Bạn nên
chỉ cần tăng điều này cho các máy chủ có nhiều hơn hai bộ xử lý.

, lzo Bật nén LZO cho máy chủ TCP hoặc SSH này.

, cpp Bật chế độ bơm phân phối cho máy chủ này. Lưu ý: lệnh xây dựng phải được gói trong
tập lệnh distcc-pump để khởi động máy chủ bao gồm.

--ngẫu nhiên
Ngẫu nhiên hóa thứ tự của danh sách máy chủ lưu trữ trước khi thực thi.

+ zeroconf
T tùy chọn is có thể có sẵn if ditcc biên soạn với avahi hỗ trợ kích hoạt at
cấu hình thời gian. Khi mục nhập đặc biệt này xuất hiện trong danh sách máy chủ, distcc sẽ
sử dụng Avahi Zeroconf DNS Service Discovery (DNS-SD) để định vị bất kỳ bản phân phối nào có sẵn
máy chủ trên mạng cục bộ. Điều này tránh sự cần thiết phải liệt kê máy chủ lưu trữ một cách rõ ràng
tên hoặc địa chỉ IP của máy chủ phân phối. Máy chủ phân phối phải có
đã được bắt đầu với tùy chọn "--zeroconf" để phân phối. Một lưu ý quan trọng là
trong triển khai hiện tại, chế độ bơm (", cpp") và nén (", lzo") sẽ
không bao giờ được sử dụng cho các máy chủ đặt qua zeroconf.

Dưới đây là một ví dụ minh họa một số khả năng:

localhost / 2 @ bigman / 16: / opt / bin / distccd máy cũ: 4200/1
# người lái xe is xuống
xa / 3, lzo

Nhận xét được cho phép trong thông số kỹ thuật của máy chủ. Nhận xét bắt đầu bằng dấu thăng / bảng Anh (#)
và chạy đến cuối dòng.

Nếu máy chủ trong danh sách không thể truy cập được, distcc sẽ phát ra cảnh báo và bỏ qua máy chủ đó cho
khoảng một phút.

NÉN


Sản phẩm lzo tùy chọn máy chủ lưu trữ chỉ định rằng nén LZO nên được sử dụng để truyền dữ liệu,
bao gồm nguồn được xử lý trước, mã đối tượng và các thông báo lỗi. Nén thường là
tiết kiệm trên mạng chậm hơn 100Mbps, nhưng kết quả có thể khác nhau tùy thuộc vào mạng,
bộ xử lý và cây nguồn.

Bật tính năng nén làm cho máy khách và máy chủ distcc sử dụng nhiều thời gian CPU hơn, nhưng ít hơn
lưu lượng mạng. Thời gian CPU được thêm vào là không đáng kể đối với chế độ bơm. Nén
tỷ lệ thường là 4: 1 cho nguồn và 2: 1 cho mã đối tượng.

Sử dụng tính năng nén yêu cầu cả máy khách và máy chủ phải sử dụng ít nhất phiên bản 2.9 của distcc.
Không yêu cầu cấu hình máy chủ: máy chủ luôn trả lời bằng các câu trả lời nén cho
yêu cầu nén.

Chế độ máy bơm yêu cầu máy chủ phải bật tùy chọn máy chủ lzo.

TÌM KIẾM CON ĐƯỜNG


Nếu tên trình biên dịch là một đường dẫn tuyệt đối, nó được chuyển nguyên văn đến máy chủ và
trình biên dịch được chạy từ thư mục đó. Ví dụ:

ditcc /usr/local/bin/gcc-3.1415 -c chào c

Nếu tên trình biên dịch không phải là tuyệt đối, hoặc không đủ tiêu chuẩn, thì PATH của distccd sẽ được tìm kiếm.
Khi distcc được chạy từ một thư mục masquerade, chỉ có tên cơ sở của trình biên dịch là
được sử dụng. PATH của khách hàng chỉ được sử dụng để chạy bộ tiền xử lý và không ảnh hưởng đến
đường dẫn của máy chủ.

THỜI ĐIỂM


Cả máy khách và máy chủ distcc đều áp đặt thời gian chờ khi truyền dữ liệu qua mạng.
Điều này nhằm mục đích phát hiện các máy chủ bị hỏng hoặc không thể truy cập được và ngăn quá trình biên dịch
treo vô thời hạn nếu máy chủ bị ngắt kết nối khi đang sử dụng. Nếu hết thời gian chờ phía máy khách
hết hạn, công việc sẽ được chạy lại cục bộ.

Hiện tại không thể định cấu hình thời gian chờ.

CHẨN ĐOÁN


Thông báo lỗi hoặc cảnh báo từ trình biên dịch cục bộ hoặc từ xa được chuyển đến chẩn đoán
đầu ra trên máy khách.

distcc có thể cung cấp thông tin gỡ lỗi mở rộng khi tùy chọn dài dòng được sử dụng. Điều này
được điều khiển bởi DISTCC_VERBOSE biến môi trường trên máy khách và --dài dòng
tùy chọn trên máy chủ. Để khắc phục sự cố, hãy kiểm tra cả lỗi máy khách và máy chủ
tin nhắn.

EXIT


Mã thoát của distcc thường là mã của trình biên dịch: không để biên dịch thành công
và khác XNUMX.

distcc phân biệt giữa các lỗi "chính hãng", chẳng hạn như lỗi cú pháp trong nguồn và
các lỗi "tình cờ" chẳng hạn như sự cố mạng khi kết nối với tình nguyện viên. Trong trường hợp
đối với lỗi ngẫu nhiên, distcc sẽ thử lại quá trình biên dịch cục bộ trừ khi DISTCC_FALLBACK
tùy chọn đã bị vô hiệu hóa.

Nếu trình biên dịch thoát ra với một tín hiệu, distcc trả về mã thoát 128 cộng với tín hiệu
con số.

lỗi nội bộ distcc gây ra mã thoát từ 100 đến 127. Đặc biệt

100 Lỗi phân phối chung.

101 Đối số không hợp lệ.

102 Bind không thành công.

103 Kết nối không thành công.

104 Trình biên dịch bị lỗi.

105 Hết bộ nhớ.

106 Đặc điểm kỹ thuật của máy chủ tồi

107 Lỗi I / O

108 Đã cắt ngắn.

109 Lỗi Giao thức.

110 Không tìm thấy trình biên dịch đã cho trên máy chủ từ xa. Kiểm tra xem $ CC đã được đặt chưa
thích hợp và nó được cài đặt trong một thư mục trên đường dẫn tìm kiếm cho
bản phân phối.

111 Cuộc gọi đệ quy tới phân phối.

112 Không hủy được đặc quyền.

113 Quyền truy cập mạng bị từ chối.

114 Đang được sử dụng bởi một quy trình khác.

115 Không có tệp nào như vậy.

116 Không có máy chủ nào được xác định và dự phòng bị tắt.

118 Hết giờ.

Sử dụng distcc trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    Chim lửa
    Chim lửa
    Firebird RDBMS cung cấp các tính năng ANSI SQL
    & chạy trên Linux, Windows &
    một số nền tảng Unix. Đặc trưng
    đồng thời và hiệu suất tuyệt vời
    & sức mạnh...
    Tải xuống Firebird
  • 2
    KompoZer
    KompoZer
    KompoZer là một trình soạn thảo HTML wysiwyg sử dụng
    cơ sở mã của Mozilla Composer. Như
    Sự phát triển của Nvu đã bị dừng lại
    vào năm 2005, KompoZer sửa nhiều lỗi và
    thêm một f ...
    Tải xuống KompoZer
  • 3
    Tải xuống Manga miễn phí
    Tải xuống Manga miễn phí
    Trình tải xuống Manga miễn phí (FMD) là một
    ứng dụng mã nguồn mở được viết bằng
    Object-Pascal để quản lý và
    tải manga từ các trang web khác nhau.
    Đây là một tấm gương ...
    Tải xuống Trình tải xuống Manga miễn phí
  • 4
    Aetbootin
    Aetbootin
    UNetbootin cho phép bạn tạo khả năng khởi động
    Ổ đĩa USB trực tiếp cho Ubuntu, Fedora và
    các bản phân phối Linux khác mà không có
    ghi đĩa CD. Nó chạy trên Windows, Linux,
    và ...
    Tải xuống UNetbootin
  • 5
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM dễ sử dụng
    Gói phần mềm mã nguồn mở ERP và CRM
    (chạy với máy chủ web php hoặc
    phần mềm độc lập) dành cho doanh nghiệp,
    nền tảng ...
    Tải xuống Dolibarr ERP - CRM
  • 6
    Máy khách SQL SQuirreL
    Máy khách SQL SQuirreL
    SQuirreL SQL Client là một SQL đồ họa
    ứng dụng khách được viết bằng Java sẽ cho phép
    bạn có thể xem cấu trúc của một JDBC
    cơ sở dữ liệu tuân thủ, duyệt dữ liệu trong
    những cái bàn...
    Tải xuống ứng dụng khách SQuirreL SQL
  • Khác »

Lệnh Linux

Ad