Postgresql soi kèo bóng đá truoctran liệu 8.0.26 | ||||
---|---|---|---|---|
Prev | Backward nhanh | 10614_10661 | Chuyển tiếp nhanh | Tiếp theo |
A LỚNPostgreSQL11139_11307"Lớn"Cài đặt.) Nếu bạn đã gặp loại vấn đề này, hãy tiếp tục đọc.
Bộ nhớ và semaphores được chia sẻ được gọi chung là"System V IPC"(cùng với hàng đợi tin nhắn, không liên quan đếnPostgreSQL). Hầu như tất cả hoạt động hiện đại các hệ thống cung cấp các tính năng này, nhưng không phải tất cả chúng đều có chúng đã bật hoặc đủ kích thước theo mặc định, đặc biệt là các hệ thống với di sản BSD. (ChoqnxvàBEOSCổng,PostgreSQLCung cấp sự thay thế riêng của nó triển khai các cơ sở này.)
Việc thiếu hoàn toàn các cơ sở này thường được biểu hiện bởi mộtCuộc gọi hệ thống bất hợp pháplỗi Khi máy chủ bắt đầu. Trong trường hợp đó không còn gì để làm nhưng để cấu hình lại hạt nhân của bạn.PostgreSQLsẽ không hoạt động mà không có chúng.
KhiPostgreSQLvượt quá một của những khó khăn khác nhauIPCgiới hạn, máy chủ sẽ từ chối bắt đầu và nên để lại Thông báo lỗi hướng dẫn mô tả vấn đề gặp phải Và phải làm gì về nó. (Xem thêmPhần 16.3.113029_13118Bảng 16-2Giving một cái nhìn tổng quan. Các phương pháp để thiết lập chúng, tuy nhiên, khác nhau. Gợi ý cho một số nền tảng được đưa ra dưới đây. Được cảnh báo rằng Nó thường là cần thiết để khởi động lại máy của bạn và thậm chí có thể tái biên vị soi kèo bóng đá truoctran, để thay đổi các cài đặt này.
Bảng 16-2.Hệ thống V IPCtham số
tên | Mô tả | Giá trị hợp lý |
---|---|---|
Shmmax | Kích thước tối đa của phân đoạn bộ nhớ chia sẻ (byte) | 250 kb + 8.2 kb *Shared_buffers+ 14.2 kb *Max_Connectionslên đến vô cực |
Shmmin | Kích thước tối thiểu của phân đoạn bộ nhớ chia sẻ (byte) | 1 |
Shmall | Tổng số lượng bộ nhớ chia sẻ có sẵn (byte hoặc trang) | Nếu byte, giống nhưShmmax; Nếu trang,ceil (shmmax/page_size) |
SHMSEG | 14946_15012 | Chỉ cần 1 phân đoạn, nhưng mặc định là nhiều cao hơn |
shmmni | Số lượng phân đoạn bộ nhớ được chia sẻ tối đa toàn hệ thống | nhưSHMSEGPlus Room cho Các ứng dụng khác |
semmni | Số lượng nhận dạng Semaphore tối đa (tức là, bộ) | ít nhấtceil (max_connections / 16) |
semmns | Số lượng tối đa của Semaphores toàn hệ thống | CEIL (MAX_CONNENTS / 16) * * 17Plus Room cho các ứng dụng khác |
semmsl | Số lượng semaphores tối đa cho mỗi bộ | ít nhất 17 |
semmap | Số lượng mục trong Bản đồ Semaphore | xem văn bản |
semvmx | giá trị tối đa của semaphore | ít nhất 1000 (mặc định thường là 32767, không thay đổi trừ khi bị ép buộc) |
Điều quan trọng nhất
Tham số bộ nhớ được chia sẻ làShmmax, The
Kích thước tối đa, tính theo byte, của một phân đoạn bộ nhớ chung. Nếu bạn nhận được
Một thông báo lỗi từShmget
nhưĐối số không hợp lệ, nó có khả năng
rằng giới hạn này đã bị vượt quá. Kích thước của các yêu cầu
Phân đoạn bộ nhớ được chia sẻ thay đổi cả với số lượng yêu cầu
bộ đệm (-Btùy chọn) và số lượng
Kết nối được phép (-NTùy chọn),
Mặc dù trước đây là quan trọng nhất. (Bạn có thể, như một
giải pháp tạm thời, hạ thấp các cài đặt này để loại bỏ
thất bại.) như một xấp xỉ thô, bạn có thể ước tính
Kích thước phân đoạn cần thiết như được đề xuất trongBảng 16-2. Bất kì
Thông báo lỗi bạn có thể nhận được sẽ chứa kích thước của thất bại
Yêu cầu phân bổ.
Một số hệ thống cũng có giới hạn về tổng số lượng chia sẻ bộ nhớ trong hệ thống (Shmall). Làm chắc chắn điều này đủ lớn choPostgreSQLcộng với bất kỳ ứng dụng nào khác đang sử dụng các phân đoạn bộ nhớ được chia sẻ. (Thận trọng:Shmallđược đo bằng các trang thay vì byte trên nhiều hệ thống.)
17975_18059Shmmin), nên nhiều nhất là khoảng 256 kb choPOSTGRESQL(thường chỉ là 1). Các Số lượng phân đoạn tối đa toàn bộ hệ thống (Shmmni) hoặc mỗi quá trình (SHMSEG) khó có thể gây ra vấn đề trừ khi Hệ thống của bạn đã đặt chúng thành 0.
PostgreSQLSử dụng một
Semaphore mỗi kết nối được phép (-NTùy chọn), trong các bộ 16. Mỗi bộ như vậy cũng sẽ chứa thứ 17
semaphore có chứa"Phép thuật
con số", để phát hiện va chạm với các bộ semaphore được sử dụng bởi
các ứng dụng khác. Số lượng semaphores tối đa trong
Hệ thống được đặt bởiSEMMNS, mà
do đó phải cao nhất bằngMax_Connectionscộng thêm một cái cho mỗi 16
Các kết nối được phép (xem công thức trongBảng 16-2). Các
tham sốsemmniXác định giới hạn
về số lượng bộ semaphore có thể tồn tại trên hệ thống tại
một lần. Do đó tham số này phải ít nhấtceil (MAX_CONNENTS / 16). Hạ thấp số lượng
kết nối được phép là một cách giải quyết tạm thời cho các thất bại,
thường được nói một cách khó hiểukhông
Không gian còn lại trên thiết bị, từ chức năngSemget
.
Trong một số trường hợp, cũng có thể cần phải tăngSEMMAPít nhất là theo thứ tựSEMMNS19781_20271
TheSEMMSLTham số, trong đó xác định số lượng semaphores có thể có trong một tập hợp, phải ở ít nhất 17 choPostgreSQL.
Các cài đặt khác nhau liên quan đến"Semaphore Undo", chẳng hạn nhưsemmnuvàSemume, là không quan tâm đếnPostgreSQL.
Bộ nhớ chia sẻ.Theo mặc định, chỉ có 4 MB Bộ nhớ chia sẻ được hỗ trợ. Hãy nhớ rằng đã chia sẻ Bộ nhớ không thể ngắm; Nó bị khóa trong ram. ĐẾN Tăng số lượng bộ nhớ chia sẻ được hỗ trợ bởi hệ thống, thêm một cái gì đó như sau vào hạt nhân của bạn Tệp cấu hình:
Tùy chọn "Shmall = 8192" Tùy chọn "shmmax = \ (shmall*page_size \)"
Shmallđược đo bằng 4kb các trang, do đó, giá trị 1024 đại diện cho 4 MB được chia sẻ ký ức. Do đó, những điều trên làm tăng tối đa Vùng bộ nhớ chia sẻ đến 32 MB. Đối với những người chạy 4.3 hoặc sau đó, có lẽ bạn cũng sẽ cần tăngkernel_virtual_mbtrên mặc định248. Một khi tất cả các thay đổi đã được thực hiện, biên dịch lại soi kèo bóng đá truoctran và khởi động lại.
Đối với những bản phát hành 4.0 trở lên, sử dụngBPatchĐể tìmsysptsizeGiá trị trong hạt nhân hiện tại. Điều này được tính toán động tại thời điểm khởi động.
$BPatch -r Sysptsize 0x9 = 9
Tiếp theo, thêmsysptsizenhư a Giá trị mã hóa cứng trong tệp cấu hình soi kèo bóng đá truoctran. Tăng giá trị bạn tìm thấy bằng cách sử dụngBPatch. Thêm 1 cho mỗi 4 MB bổ sung bộ nhớ chia sẻ mà bạn mong muốn.
Tùy chọn "sysptsize = 16"
sysptsizeKhông thể thay đổi quasysctl.
semaphores.Bạn có thể sẽ muốn Tăng số lượng semaphores là tốt; mặc định Tổng số hệ thống 60 sẽ chỉ cho phép khoảng 50PostgreSQLKết nối. Đặt các giá trị bạn muốn trong hạt nhân của mình Tệp cấu hình, ví dụ:
Tùy chọn "semmni = 40" Tùy chọn "semmns = 240"
Các tùy chọnsysvshmvàsysvsemCần được bật khi soi kèo bóng đá truoctran được biên soạn. (Họ theo mặc định.) Kích thước tối đa của bộ nhớ chia sẻ được xác định bởi tùy chọnshmmaxpgs(trong trang). Các sau đây cho thấy một ví dụ về cách đặt tham số:
Tùy chọn sysvshm Tùy chọn shMMAXPGS = 4096 Tùy chọn ShmSeg = 256 tùy chọn sysvsem Tùy chọn semmni = 256 Tùy chọn SEMMNS = 512 Tùy chọn semmnu = 256 Tùy chọn semmap = 256
(trênOpenBSDKhóa từ thực sựTùy chọnsố ít.)
Bạn cũng có thể muốn định cấu hình hạt nhân của mình để khóa bộ nhớ chia sẻ vào ram và ngăn không cho nó được trang bị ra để hoán đổi. Sử dụngsysctlCài đặtkern.ipc.shm_use_phys.
Cài đặt mặc định có xu hướng đủ cho bình thường cài đặt. TRÊNHP-UX10, mặc định của nhà máy choSEMMNSlà 128, có thể quá thấp đối với Các trang web cơ sở dữ liệu lớn hơn.
IPCtham số có thể được đặt trongHệ thống Trình quản lý hành chính(SAM) dướiCấu hình soi kèo bóng đá truoctran-Tham số có thể định cấu hình. ĐánhTạo hạt nhân mới25283_25313
Giới hạn bộ nhớ chia sẻ mặc định (cảShmmaxvàShmall) là 32 MB trong 2,2 hạt nhân, nhưng nó có thể được thay đổi trongProcTệp hệ thống (không khởi động lại). Ví dụ: cho phép 128 MB:
$ echo 134217728/proc/sys/soi kèo bóng đá truoctran/shmall $ echo 134217728/proc/sys/soi kèo bóng đá truoctran/shmmax
Bạn có thể đặt các lệnh này vào một tập lệnh chạy tại thời gian khởi động.
Ngoài ra, bạn có thể sử dụngsysctl, Nếu có sẵn, để kiểm soát chúng tham số. Tìm một tệp được gọi là/etc/sysctl.confvà thêm các dòng như theo dõi nó:
soi kèo bóng đá truoctranshmall = 134217728 soi kèo bóng đá truoctranshmmax = 134217728
Tệp này thường được xử lý vào thời điểm khởi động, nhưngsysctlcũng có thể được gọi rõ ràng sau này.
Các tham số khác có kích thước đủ cho bất kỳ ứng dụng. Nếu bạn muốn tự mình nhìn thấy/usr/src/linux/bao gồm/asm-xxx/shmparam.hvà/usr/src/linux/include/linux/sem.h.
Trong OS X 10.2 trở đi, chỉnh sửa tệp27085_27141và thay đổi các giá trị trong các lệnh sau:
27246_27384
Trong OS X 10.3, các lệnh này đã được chuyển sang/etc/rcvà phải được chỉnh sửa ở đó. Bạn sẽ cần phải khởi động lại để thay đổi có hiệu lực. Lưu ý rằng/etc/rcthường là Được ghi đè bởi các bản cập nhật OS X (chẳng hạn như 10.3.6 đến 10.3.7) bạn sẽ phải làm lại chỉnh sửa của mình sau mỗi cập nhật.
Shmallđược đo bằng 4kb các trang trên nền tảng này.
Trong cấu hình mặc định, chỉ có 512 kb chia sẻ bộ nhớ trên mỗi phân đoạn được cho phép, đủ cho-B 24 -N 12. Để tăng Cài đặt, trước tiên thay đổi thành thư mục/etc/conf/cf.d. Để hiển thị hiện tại Giá trị củaShmmax, Chạy
./configure -y shmmax
Để đặt giá trị mới choShmmax, Chạy
./configure shmmax =Giá trị
WHEREgiá trịlà cái mới Giá trị bạn muốn sử dụng (tính bằng byte). Sau khi cài đặtShmmax, xây dựng lại hạt nhân:
./link_unix
và khởi động lại.
Ít nhất là phiên bản 5.1, không cần thiết Để thực hiện bất kỳ cấu hình đặc biệt nào cho các tham số nhưShmmax, vì nó xuất hiện được định cấu hình để cho phép tất cả bộ nhớ được sử dụng như được chia sẻ ký ức. Đó là loại cấu hình thường được sử dụng cho các cơ sở dữ liệu khác nhưdb/2.
Tuy nhiên, nó có thể cần thiết để sửa đổi toàn cầuUlimitThông tin trong/etc/an ninh/giới hạn, là khó khăn mặc định giới hạn cho kích thước tệp (fsize) và số lượng tệp (nofiles) có thể quá thấp.
Ít nhất trong phiên bản 2.6, kích thước tối đa mặc định của a Các phân đoạn bộ nhớ được chia sẻ quá thấp đối vớiPostgreSQL30041_30095/etc/System, Ví dụ:
30197_30444
Bạn cần khởi động lại cho các thay đổi có hiệu lực.
Xem thêmhttp: //sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.htmlĐể biết thông tin về bộ nhớ chia sẻ dướiSolaris.
trênUnixware7, The Kích thước tối đa cho các phân đoạn bộ nhớ được chia sẻ là 512 KB trong Cấu hình mặc định. Cái này là đủ cho khoảng-B 24 -N 12. Để hiển thị Giá trị hiện tại củaShmmax, Chạy
/etc/conf/bin/idtune -g shmmax
hiển thị hiện tại, mặc định, tối thiểu và giá trị tối đa. Để đặt giá trị mới choShmmax, Chạy
/etc/conf/bin/idtune shmmaxgiá trị
WHEREgiá trịlà cái mới Giá trị bạn muốn sử dụng (tính bằng byte). Sau khi cài đặtShmmax, xây dựng lại hạt nhân:
/etc/conf/bin/idbuild -b
và khởi động lại.
Hệ điều hành giống UNIX thực thi các loại khác nhau
giới hạn soi kèo bóng đá truoctran có thể can thiệp vào hoạt động của của bạnPostgreSQLMáy chủ. Của
Tầm quan trọng đặc biệt là giới hạn đối với số lượng quy trình cho mỗi
người dùng, số lượng tệp mở cho mỗi quy trình và số lượng
bộ nhớ có sẵn cho mỗi quá trình. Mỗi trong số này có một"Hard"và A"Soft"Giới hạn. Giới hạn mềm là những gì thực sự
Đếm nhưng nó có thể được người dùng thay đổi đến giới hạn cứng.
Giới hạn cứng chỉ có thể được thay đổi bởi người dùng gốc. Hệ thống
gọiSetRlimit
chịu trách nhiệm
Đặt các tham số này. Lệnh tích hợp của shellUlimit(vỏ Bourne) hoặcgiới hạn(CSH) IS
Được sử dụng để kiểm soát các giới hạn soi kèo bóng đá truoctran từ dòng lệnh. TRÊN
Hệ thống có nguồn gốc BSD Tệp/etc/login.confĐiều khiển soi kèo bóng đá truoctran khác nhau
giới hạn đặt trong quá trình đăng nhập. Xem tài liệu hệ điều hành
Để biết chi tiết. Các tham số có liên quan làMaxProc, OpenFilesvàDataSize. Ví dụ:
Mặc định: \ ... : datasize-cur = 256m: \ : MaxProc-Cur = 256: \ : OpenFiles-Cur = 256: \ ...
(-curlà giới hạn mềm. ỨNG DỤNG-MaxĐể đặt giới hạn cứng.)
33682_33747
trênLinux /Proc/sys/fs/file-max33880_34073/etc/sysctl.conf. Giới hạn tối đa của các tệp trên mỗi quy trình được sửa vào thời điểm soi kèo bóng đá truoctran biên soạn; nhìn thấy/usr/src/linux/documentation/proc.txtcho Thêm thông tin.
ThePOSTGRESQLMáy chủ sử dụng một quy trình cho mỗi kết nối để bạn nên cung cấp ít nhất như nhiều quy trình được cho phép kết nối, ngoài những gì Bạn cần cho phần còn lại của hệ thống của bạn. Đây thường không phải là một vấn đề nhưng nếu bạn chạy một số máy chủ trên một máy có thể bị chặt chẽ.
Giới hạn mặc định của nhà máy trên các tệp mở thường được đặt thành"thân thiện với xã hội"giá trị đó Cho phép nhiều người dùng cùng tồn tại trên máy mà không cần sử dụng Phần không phù hợp của các soi kèo bóng đá truoctran hệ thống. Nếu bạn chạy nhiều Máy chủ trên máy đây có lẽ là thứ bạn muốn, nhưng trên Máy chủ chuyên dụng Bạn có thể muốn tăng giới hạn này.
Ở phía bên kia của đồng tiền, một số hệ thống cho phép cá nhân các quy trình để mở một số lượng lớn các tập tin; Nếu nhiều hơn một vài Các quy trình làm như vậy sau đó giới hạn toàn hệ thống có thể dễ dàng vượt quá. Nếu bạn thấy điều này xảy ra, và bạn không muốn thay đổi giới hạn toàn hệ thống, bạn có thể đặtPOSTGRESQL'SMAX_FILES_PER_PROCESSTham số cấu hình để giới hạn mức tiêu thụ mở Tệp.
Trong Linux 2.4 trở lên, hành vi bộ nhớ ảo mặc định không tối ưu cho35859_35871. Bởi vì cách mà hạt nhân thực hiện bộ nhớ Overcommit, soi kèo bóng đá truoctran có thể chấm dứtPostgreSQLMáy chủ (ThePostmasterQuy trình) Nếu bộ nhớ yêu cầu của Một quy trình khác khiến hệ thống hết ảo ký ức.
Nếu điều này xảy ra, bạn sẽ thấy một thông điệp soi kèo bóng đá truoctran trông như thế này (tham khảo tài liệu và cấu hình hệ thống của bạn trên nơi tìm kiếm một tin nhắn như vậy):
Out of Memory: Quá trình bị giết 12345 (Postmaster).
Điều này chỉ ra rằngPostmasterQuá trình đã bị chấm dứt do áp suất bộ nhớ. Mặc dù Các kết nối cơ sở dữ liệu hiện có sẽ tiếp tục hoạt động Thông thường, không có kết nối mới sẽ được chấp nhận. Để phục hồi,POSTGRESQLSẽ cần phải đã khởi động lại.
Một cách để tránh vấn đề này là chạyPostgreSQL36898_37004
Trên Linux 2.6 trở lên, một giải pháp tốt hơn là sửa đổi hành vi của soi kèo bóng đá truoctran để nó không"OVERCOMMIT"bộ nhớ. Điều này được thực hiện bằng cách chọn chế độ quá mức nghiêm ngặt thông quasysctl:
hoặc đặt một mục tương đương trong/etc/sysctl.conf. Bạn cũng có thể muốn sửa đổi cài đặt liên quanVM.OverCommit_Ratio. Để biết chi tiết, hãy xem soi kèo bóng đá truoctran Tệp tài liệu37606_37646.
37663_37759sysctltham số. Tuy nhiên, cài đặtVM.OverCommit_Memoryđến 2 trên soi kèo bóng đá truoctran có
Không có mã liên quan sẽ làm cho mọi thứ tồi tệ hơn không tốt hơn.
Bạn nên kiểm tra nguồn soi kèo bóng đá truoctran thực tế
mã (xem hàmVM_ENOUGH_MEMORY
Trong tệpmm/mmap.c) để xác minh những gì được hỗ trợ trong
Sao chép trước khi bạn thử điều này trong cài đặt 2.4. Sự hiện diện của
TheKế toán quá mứcTệp soi kèo bóng đá truoctran liệu nênkhôngđược coi là bằng chứng cho thấy
tính năng là ở đó. Nếu trong bất kỳ nghi ngờ nào, hãy tham khảo ý kiến chuyên gia nhân hoặc
Nhà cung cấp hạt nhân của bạn.