PostgreSQL 9.0.23 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 17. | Tiếp theo |
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
Bộ nhớ và semaphores được cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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ách đọc kèo bóng đá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ớ cách đọc kèo bóng đá 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ớ cách đọc kèo bóng đá sẻ (byte) | 1 |
Shmall | Tổng số lượng bộ nhớ cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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ớ cách đọc kèo bóng đá sẻ quan trọng nhất làShmmax, Kích thước tối đa, tính bằng byte, của một cách đọc kèo bóng đá sẻShmget
như"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 cách đọc kèo bóng đá sẻShmall). LàmPostgreSQLcộng với bất kỳ ứng dụng nào khácShmallđược đo bằng cách đọc kèo bóng đá 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 để cách đọc kèo bóng đá sẻShmmin), nênPostgreSQL(thường chỉ là 1). cách đọc kèo bóng đáshmmni) 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). cách đọc kèo bóng đásemmniXá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.
cách đọc kèo bóng đá cài đặt khác nhau liên quan đến"Semaphore Undo", chẳng hạn nhưsemmnuvàSemume, làmPostgreSQL.
Í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)
Bộ nhớ cách đọc kèo bóng đá 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ả cách đọc kèo bóng đá thay đổi
semaphores.Bạn có thể sẽ muốnPOSTGRESQLKết nối. Đặt cách đọc kèo bóng đá giá trị bạn muốn trong hạt nhân của mình
Tùy chọn "semmni = 40"
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 cách đọc kèo bóng đá cài đặt này tồn tại trên khởi động lại, sửa đổi/etc/sysctl.conf.
cách đọc kèo bóng đá 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 cách đọc kèo bóng đá giá trị này, cần phải khởi động lại chosemmap. cách đọc kèo bóng đá phiên bản cũ hơn sẽkern.ipc.semmap; cách đọc kèo bóng đá 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 đọc kèo bóng đách kích hoạtsysctl'ssecurity.jail.sysvipc_allowed, PostmasterS đang chạy
FreeBSDPhiên bảnOpenBSD(xem bên dưới).
inNetBSD5.0 vàsysctl, ví dụ:
$ sysctl -w kern.ipc.shmmax = 16777216
Để cách đọc kèo bóng đá cài đặt này tồn tại trên cách đọc kèo bóng đá 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ừ cách đọc kèo bóng đá tham số nên được đặt vớiTùy chọnkhôngTùy chọn.
cách đọc kèo bóng đá tùy chọnsysvshmvàsysvsemcần được bật khishmmaxpgs(trong trang). cách đọc kèo bóng đá
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.
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
Kích thước phân đoạn tối đa mặc định là 32 MB, đó làPostgreSQLCài đặt. cách đọc kèo bóng đá"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 cách đọc kèo bóng đá 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, cách đọc kèo bóng đá 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
cách đọc kèo bóng đá mặc định còn lại có kích thước khá hào phóng và
Phương pháp được đề xuất để định cấu hình bộ nhớ cách đọc kèo bóng đá 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ớ cách đọc kèo bóng đá sẻ/etc/sysctl.conf, khác cách đọc kèo bóng đá giá trị sẽ
Hãy cẩn thận rằng cách đọc kèo bóng đá bản phát hành gần đây của OS X bỏ qua cách đọc kèo bóng đá nỗ lựcShmmaxvới một giá trị không
Shmallđược đo bằng 4 kb
Trong cách đọc kèo bóng đá 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, để cách đọc kèo bóng đá giá trị sẽ
Tệp/etc/sysctl.confIS/etc/rcvà thay đổi cách đọc kèo bóng đá giá trị
sysctl -w kern.sysv.shmmax
Lưu ý rằng/etc/rcthường là
Trong OS X 10.2 trở đi, thay vào đó chỉnh sửa cách đọc kèo bóng đá lệnh này/System/Library/StartUpitems/SystemTuning/SystemTuning.
Trong cấu hình mặc định, chỉ có 512 kb cách đọc kèo bóng đá 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ị
WHERE33914_33921là cách đọc kèo bóng đái mớiShmmax, xây dựng lại hạt nhân:
./link_unix
và khởi động lại.
Ít nhất trong phiên bản 2.6, kích thước tối đa mặc định của aPOSTGRESQL. cách đọc kèo bóng đá cài đặt có liên quan/etc/System,,
Đặt shmsys: shminfo_shmmax = 0x2000000
Bạn cần khởi động lại cho cách đọc kèo bóng đá 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ớ cách đọc kèo bóng đá sẻ dướiSolaris.
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ách đọc kèo bóng đá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ớ cách đọc kèo bóng đá sẻ
sử dụng | Byte bộ nhớ được cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 |
Hệ điều hành giống UNIX thực thi cách đọc kèo bóng đá 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ựSetRlimit
chịu trách nhiệmUlimit(vỏ Bourne) hoặcGiới hạn(CSH) IS/etc/login.confĐiều khiển cách đọc kèo bóng đá khác nhauMaxProc, OpenFilesvàDataSize. 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 cách đọc kèo bóng đá 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ở
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 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 đọc kèo bóng đá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_buffersvàwork_mem. Trong cách đọc kèo bóng đá 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 đọc kèo bóng đá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Đã 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.4
VM_ENOUGH_MEMORY
Trong tệpmm/mmap.c) để xác minh những gì làKế toán quá mứcTệp tài liệukhôngBE