Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá cúp c2 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

17.4. kèo bóng đá cúp c2

một lớnPostgreSQLCài đặt có thể nhanh chóng cạn kiệt hệ điều hành khác nhau"Lớn"Cài đặt.) Nếu bạn đã gặp

17.4.1. kèo bóng đá cúp c2 sẻ

Bộ nhớ và semaphores được kèo bóng đá cúp c2 sẻ được gọi chung là"System V IPC"(cùng vớiPostgreSQL). Hầu như tất cả hoạt động hiện đạiWindows, PostgreSQLCung cấp sự thay thế riêng của nó

Việc thiếu hoàn toàn kèo bóng đá cúp c2 cơ sở này thường được biểu hiệnCuộc gọi hệ thống bất hợp pháplỗiPostgreSQLKhông hoạt động mà không có chúng. Cái này

KhiPostgreSQLvượt quá mộtIPCgiới hạn, máy chủ sẽ từ chối bắt đầu và nên để lạiPhần 17.3.1.)Bảng 17-1Giving

Bảng 17-1.Hệ thống 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ớ kèo bóng đá cúp c2 sẻ (byte) Ít nhất một số megabyte (xem văn bản)
Shmmin Kích thước tối thiểu của phân đoạn bộ nhớ kèo bóng đá cúp c2 sẻ (byte) 1
Shmall Tổng số lượng bộ nhớ kèo bóng đá cúp c2 sẻ có sẵn (byte hoặc Nếu byte, giống nhưShmmax;ceil (shmmax/page_size)
SHMSEG Số lượng phân đoạn bộ nhớ được kèo bóng đá cúp c2 sẻ tối đa cho mỗi Chỉ cần 1 phân đoạn, nhưng mặc định là nhiều
shmmni Số lượng phân đoạn bộ nhớ được kèo bóng đá cúp c2 sẻ tối đa nhưSHMSEGPlus Room cho
semmni Số lượng nhận dạng Semaphore tối đa (tức là, ít nhấtceil ((Max_Connections
semmns Số lượng tối đa của toàn bộ hệ thống ceil ((Max_Connections +phòng cộng
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

Tham số bộ nhớ kèo bóng đá cúp c2 sẻ quan trọng nhất làShmmax, Kích thước tối đa, tính bằng byte, của một kèo bóng đá cúp c2 sẻShmgetnhư"Không hợp lệ, có khả năng giới hạn này đã đượcPOSTGRESQLtham số cấu hình, nhưBảng. (Bất kỳ thông báo lỗi nào bạn có thể nhận được sẽ bao gồmPostgreSQLĐể chạy vớiShmmaxnhỏ như 2 MB, bạn cần

Một số hệ thống cũng có giới hạn về tổng số lượng kèo bóng đá cúp c2 sẻShmall). LàmPostgreSQLcộng với bất kỳ ứng dụng nào khácShmallđược đo bằng kèo bóng đá cúp c2 trang thay vì byte trên

Ít có khả năng gây ra vấn đề là kích thước tối thiểu để kèo bóng đá cúp c2 sẻShmmin), nênPostgreSQL(thường chỉ là 1). kèo bóng đá cúp c2shmmni) hoặc trên mỗi quá trình (SHMSEG) khó có thể gây ra vấn đề trừ khi

PostgreSQLSử dụng mộtMax_Connections)autovacuum_max_workers),"Số ma thuật", đếnSEMMNS, do đó phảiMax_Connectionscộngautovacuum_max_workers, cộng với mộtBảng 17-1). kèo bóng đá cúp c2semmniXác định giới hạnCEIL ((Max_Connections + Autovacuum_Max_Workers + 4) /. Hạ thấp số lượng kết nối được phép là một"Không còn khoảng trống nào, 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ựSEMMNS. Tham số này xác định

Thesemmsltham số, trong đóPostgreSQL.

kèo bóng đá cúp c2 cài đặt khác nhau liên quan đến"Semaphore Undo", chẳng hạn nhưsemmnuSemume, làmPostgreSQL.

AIX

Ít nhất là phiên bản 5.1, không cần thiếtShmmax, vì nó xuất hiện đây là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 địnhfsize)nofiles)

BSD/OS

Bộ nhớ kèo bóng đá cúp c2 sẻ.Theo mặc định, chỉ có 4 MB

Tùy chọn "Shmall = 8192"

Shmallđược đo bằng 4 kbkernel_virtual_mbphía trên248. Một khi tất cả kèo bóng đá cúp c2 thay đổi

semaphores.Bạn có thể sẽ muốnPOSTGRESQLKết nối. Đặt kèo bóng đá cúp c2 giá trị bạn muốn trong hạt nhân của mình

Tùy chọn "semmni = 40"
FreeBSD

Cài đặt mặc định chỉ phù hợp với nhỏShmmaxlà 32 MB). Thay đổi có thể được thực hiện thông quasysctlhoặcTrình tảiGiao diện. Sau đâysysctl:

# sysctl kern.ipc.shmall = 32768
# sysctl kern.ipc.shmmax = 134217728

Để làm cho kèo bóng đá cúp c2 cài đặt này tồn tại trên khởi động lại, sửa đổi/etc/sysctl.conf.

kèo bóng đá cúp c2 cài đặt liên quan đến semaphore này chỉ được đọc cho đến naysysctl/boot/loader.conf:

kern.ipc.semmni = 256

Sau khi sửa đổi kèo bóng đá cúp c2 giá trị này, cần phải khởi động lại chosemmap. kèo bóng đá cúp c2 phiên bản cũ hơn sẽkern.ipc.semmap; kèo bóng đá cúp c2 phiên bản mới hơn từ chối nó

Bạn cũng có thể muốn định cấu hình hạt nhân của mình để khóasysctlCài đặtkern.ipc.shm_use_phys.

Nếu chạy trong nhà tù FreeBSD bằng cách kích hoạtsysctl'ssecurity.jail.sysvipc_allowed, PostmasterS đang chạy

FreeBSDPhiên bảnOpenBSD(xem bên dưới).

NetBSD

inNetBSD5.0 vàsysctl, ví dụ:

$ sysctl -w kern.ipc.shmmax = 16777216

Để kèo bóng đá cúp c2 cài đặt này tồn tại trên kèo bóng đá cúp c2 lần khởi động lại, sửa đổi/etc/sysctl.conf.

Bạn cũng có thể muốn định cấu hình hạt nhân của mình để khóasysctlCài đặtkern.ipc.shm_use_phys.

NetBSDPhiên bản trướcOpenBSD(xem bên dưới), ngoại trừ kèo bóng đá cúp c2 tham số nên được đặt vớiTùy chọnkhôngTùy chọn.

OpenBSD

kèo bóng đá cúp c2 tùy chọnSYSVSHMsysvsemcần được bật khishmmaxpgs(trong trang). kèo bóng đá cúp c2

Tùy chọn sysvshm

Bạn cũng có thể muốn định cấu hình hạt nhân của mình để khóasysctlCài đặtkern.ipc.shm_use_phys.

HP-UX

Cài đặt mặc định có xu hướng đủ cho bình thườngHP-UX10, mặc định của nhà máy choSEMMNSlà 128, có thể quá thấp đối với

IPCtham số có thểHệ thống(SAM) dướiCấu hình kernel-Tham số có thể định cấu hình. ChọnTạo hạt nhân mớiKhi nào

Linux

Kích thước phân đoạn tối đa mặc định là 32 MB, đó làPostgreSQLCài đặt. kèo bóng đá cúp c2"LỚN(Sử dụngGetConfĐể xác minh). Điều đó tạo ra giới hạn mặc định là

Cài đặt kích thước bộ nhớ được kèo bóng đá cúp c2 sẻ có thể được thay đổi thông quasysctlGiao diện. Ví dụ,

$ sysctl -w kernel.shmmax = 17179869184
$ sysctl -w kernel.shmall = 4194304

Ngoài ra, kèo bóng đá cúp c2 cài đặt này có thể được bảo tồn giữa/etc/sysctl.conf. Làm điều đó rất cao

Phân phối cổ có thể không cósysctlChương trình, nhưng những thay đổi tương đương có thể/ProcHệ thống tệp:

$ Echo 17179869184/Proc/sys/kernel/shmmax
$ echo 4194304/proc/sys/kernel/shmall

kèo bóng đá cúp c2 mặc định còn lại có kích thước khá hào phóng và

Mac OS X

Phương pháp được đề xuất để định cấu hình bộ nhớ kèo bóng đá cúp c2 sẻ/etc/sysctl.conf, chứa biến

kern.sysv.shmmax = 4194304

Lưu ý rằng trong một số phiên bản OS X,Tất cả nămBộ nhớ kèo bóng đá cúp c2 sẻ/etc/sysctl.conf, thì kèo bóng đá cúp c2 giá trị khác sẽ

Hãy cẩn thận rằng kèo bóng đá cúp c2 bản phát hành gần đây của OS X bỏ qua kèo bóng đá cúp c2 nỗ lựcShmmaxvới một giá trị không

Shmallđược đo bằng 4 kb

Trong kèo bóng đá cúp c2 phiên bản OS X cũ hơn, bạn sẽ cần phải khởi động lại đểshmmniKhi đang bay, sử dụngsysctl. Nhưng nó vẫn tốt nhất để thiết lập/etc/sysctl.conf, để kèo bóng đá cúp c2 giá trị sẽ

Tệp/etc/sysctl.confIS/etc/rcvà thay đổi kèo bóng đá cúp c2 giá trị

sysctl -w kern.sysv.shmmax

Lưu ý rằng/etc/rcthường là

Trong OS X 10.2 và sớm hơn, thay vào đó chỉnh sửa kèo bóng đá cúp c2 lệnh này/System/Library/StartUpitems/SystemTuning/SystemTuning.

SCO OpenServer

Trong cấu hình mặc định, chỉ có 512 kb kèo bóng đá cúp c2 sẻ/etc/conf/cf.d. Để hiển thị hiện tạiShmmax, Chạy:

./configure -y shmmax

Để đặt giá trị mới choshmmax, Chạy:

./configure shmmax =giá trị

WHEREValuelà cái mớiShmmax, xây dựng lại hạt nhân:

./link_unix

và khởi động lại.

Solaris2.6 đến 2.9

Kích thước tối đa mặc định của phân đoạn bộ nhớ kèo bóng đá cúp c2 sẻ làPostgreSQL./etc/systemVí dụ:

Đặt shmsys: shminfo_shmmax = 0x2000000

Bạn cần khởi động lại cho kèo bóng đá cúp c2 thay đổi có hiệu lực. Nhìn thấyhttp: //sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.htmlĐể biết thông tin về bộ nhớ chia sẻ theo kèo bóng đá cúp c2 phiên bản cũ hơn của

Solaris2.10 (Solaris
OpenSolaris

Trong Solaris 10 và OpenSolaris, kèo bóng đá cúp c2 sẻ mặc địnhPOSTGRESQLỨng dụng.Shmmaxcủa một phần tư hệ thốngRAM. Nếu bạn cần tăng điều này trongPostgresNgười dùng. Ví dụ, chạyroot:

36059_36182

Lệnh này thêmuser.postgresdự án và tăngPostgresngười dùng đến 8GB và có hiệu lựcPostgreSQL(không tải lại).POSTGRESQLđược chạy bởiPostgresNgười dùng trongPostgresNhóm. Không có máy chủ khởi động lại là

Thay đổi cài đặt kernel được đề xuất khác cho cơ sở dữ liệu

Project.Max-Shm-ids = (Priv, 32768, Deny)

Ngoài ra, nếu bạn đang chạyPOSTGRESQLBên trong một khu vực, bạn có thểHướng dẫn của Quản trị viên Hệ thống Solaris 10Để biết thêm thông tin vềDự ánPRCTL.

Unixware

trênUnixware7, TheShmmax, Chạy:

/etc/conf/bin/idtune -g shmmax

hiển thị hiện tại, mặc định, tối thiểu vàShmmax, Chạy:

/etc/conf/bin/idtune shmmaxgiá trị

WHEREgiá trịlà cái mớiShmmax, xây dựng lại hạt nhân:

/etc/conf/bin/idbuild -b

và khởi động lại.

Bảng 17-2.POSTGRESQLSử dụng bộ nhớ kèo bóng đá cúp c2 sẻ

sử dụng Byte bộ nhớ được kèo bóng đá cúp c2 sẻ gần đúng (kể từ
Kết nối (1800 + 270 *MAX_LOCKS_PER_TRANSACTION) *Max_Connections
Công nhân Autovacuum (1800 + 270 *MAX_LOCKS_PER_TRANSACTION) *autovacuum_max_workers
Giao dịch chuẩn bị (770 + 270 *MAX_LOCKS_PER_TRANSACTION) *MAX_PREPARED_TRANSACTIONS
Bộ đệm đĩa được kèo bóng đá cúp c2 sẻ (block_size+ 208) *Shared_buffers
bộ đệm Wal (Wal_block_size+ 8) *Wal_buffers
Yêu cầu không gian cố định 770 KB

17.4.2.

Hệ điều hành giống UNIX thực thi kèo bóng đá cúp c2 loại khác nhauPostgreSQLMáy chủ. Của"Hard"và A"Soft"Giới hạn. Giới hạn mềm là những gì thực sựSetRlImitchịu trách nhiệmUlimit(vỏ Bourne) hoặcgiới hạn(CSH) IS/etc/login.confĐiều khiển kèo bóng đá cúp c2 khác nhauMaxProc, OpenFilesDataSize. Ví dụ:

Mặc định: \

(-curlà giới hạn mềm. ỨNG DỤNG-MaxĐể đặt giới hạn cứng.)

Hạt nhân cũng có thể có giới hạn toàn hệ thống trên một số

  • trênLinux /Proc/sys/fs/file-maxXác định/etc/sysctl.conf. Giới hạn tối đa của/usr/src/linux/documentation/proc.txtcho

ThePostgreSQLMáy chủ sử dụng

Giới hạn mặc định của nhà máy trên kèo bóng đá cúp c2 tệp mở thường được đặt thành"thân thiện với xã hội"Giá trị đó

Ở phía bên kia của đồng tiền, một số hệ thống cho phép cá nhânPOSTGRESQL'sMAX_FILES_PER_PROCESSTham số cấu hình để giới hạn mức tiêu thụ mở

17.4.3. Bộ nhớ Linux

Trong Linux 2.4 trở lên, hành vi bộ nhớ ảo mặc địnhPOSTGRESQL.POSTGRESQLBưu điện (Máy chủ chínhPostgreSQLhoặc một quá trình khác gây ra

Nếu điều này xảy ra, bạn sẽ thấy một thông điệp kernel trông

Out of Memory: Quá trình bị giết 12345 (Postgres).

Điều này chỉ ra rằngPostgresQuá trình đã bị chấm dứt do áp suất bộ nhớ. Mặc dùPOSTGRESQLSẽ cần phải

Một cách để tránh vấn đề này là chạyPostgreSQLTrên máy nơi bạn có thể ở

nếuPostgreSQLBản thân nó làShared_bufferswork_mem. Trong kèo bóng đá cúp c2 trường hợp khác, vấn đề có thể làMax_Connectionsvà thay vào đó sử dụng

Trên Linux 2.6 trở lên, có thể sửa đổi"OVERCOMMIT"bộ nhớ. Mặc dù cài đặt này sẽOOM KillerTừ việc được gọi hoàn toàn, nósysctl:

sysctl -w vm.overCommit_memory = 2

hoặc đặt một mục tương đương trong/etc/sysctl.conf. Bạn cũng có thể muốn sửa đổiVM.OverCommit_Ratio. Để biết chi tiết, hãy xem KernelTài liệu/VM/OVERCOMMIT-Kế toán.

Một cách tiếp cận khác, có thể được sử dụng với hoặc không thay đổiVM.OverCommit_Memory, là đặtOOM_ADJGiá trị cho-17, do đó

echo -17/proc/self/oom_adj

Trong tập lệnh khởi động của Postmaster ngay trước khi gọiPostgreSQLvới-Dlinux_oom_adj = 0được thêm vàocppflags. Điều đó sẽ gây ra trẻ em bưu điệnOOM_ADJGiá trị bằng không, để kẻ giết người OOM

Lưu ý:Một số hạt nhân Linux 2.4 của nhà cung cấp làsysctlTham số. Tuy nhiên, cài đặtVM.OverCommit_Memoryđến 2 trên 2.4VM_ENOUGH_MEMORYTrong tệpmm/mmap.c) để xác minh những gì làKế toán quá mứcTệp tài liệukhôngBE