PostgreSQL: kèo chấp bóng đá hôm nay liệu: 9.4: PostgreSQL 9.4 | |||
---|---|---|---|
prev | UP | Chương 17. Thiết lập và vận hành máy chủ | Tiếp theo |
cách đọc kèo bóng đáĐôi khi có thể làm cạn kiệt các giới hạn tài nguyên hệ điều hành khác nhau, đặc biệt là khi nhiều bản sao của máy chủ đang chạy trên cùng một hệ thống hoặc trong các cài đặt rất lớn. Phần này giải thích các cách đọc kèo bóng đá được sử dụng bởicách đọc kèo bóng đáVà các bước bạn có thể thực hiện để giải quyết các vấn đề liên quan đến tiêu thụ cách đọc kèo bóng đá.
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 đếncách đọc kèo bóng đá). Ngoại trừ trênWindows, trong đócách đọc kèo bóng đáCung cấp triển khai thay thế cho cách đọc kèo bóng đá cơ sở này, cách đọc kèo bóng đá cơ sở này được yêu cầu để chạycách đọc kèo bóng đá.
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ện bằng mộtCuộc gọi hệ thống bất hợp phápLỗi khi bắt đầu máy chủ. Trong trường hợp đó không có cách nào khác ngoài việc cấu hình lại hạt nhân của bạn.cách đọc kèo bóng đásẽ không hoạt động mà không có chúng. Tuy nhiên, tình huống này rất hiếm, trong số cách đọc kèo bóng đá hệ điều hành hiện đại.
Khicách đọc kèo bóng đávượt quá một trong những cứng 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 đề và phải làm gì với nó. (Xem thêmPhần 17.3.1.) cách đọc kèo bóng đá tham số kernel có liên quan được đặt tên nhất quán trên cách đọc kèo bóng đá hệ thống khác nhau;Bảng 17-1đưa ra một cái nhìn tổng quan. cách đọc kèo bóng đá phương pháp để thiết lập chúng, tuy nhiên, khác nhau.
Lưu ý:trướccách đọc kèo bóng đá9.3, lượng bộ nhớ chia sẻ hệ thống v cần thiết để khởi động máy chủ lớn hơn nhiều. Nếu bạn đang chạy phiên bản cũ hơn của máy chủ, vui lòng tham khảo cách đọc kèo bóng đá liệu cho phiên bản máy chủ của bạn.
Bảng 17-1.System 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ớ được chia sẻ (byte) | ít nhất 1kb (nhiều hơn nếu chạy nhiều bản sao của máy chủ) |
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 | Số lượng phân đoạn bộ nhớ được chia sẻ tối đa cho mỗi quá trình | Chỉ cần 1 phân đoạn, nhưng mặc định cao hơn nhiều |
Shmmni | Số lượng phân đoạn bộ nhớ được chia sẻ tối đa toàn bộ hệ thống | nhưSHMSEGPlus Room cho cách đọc kèo bóng đá ứ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 + Autovacuum_Max_Workers + Max_Worker_Processes + 5) / 16) |
SEMMNS | Số lượng tối đa của toàn bộ hệ thống | CEIL ((Max_Connections + Autovacuum_Max_Workers + Max_Worker_Processes + 5) / 16)Plus Room cho cách đọc kèo bóng đá ứ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 cần thiết) |
cách đọc kèo bóng đáYêu cầu một vài byte bộ nhớ chia sẻ hệ thống v (thường là 48 byte, trên nền tảng 64 bit) cho mỗi bản sao của máy chủ. Trên hầu hết cách đọc kèo bóng đá hệ điều hành hiện đại, số tiền này có thể dễ dàng được phân bổ.Shmmax, Kích thước tối đa trong byte của phân đoạn bộ nhớ được chia sẻ hoặcShmall, Tổng số lượng hệ thống v chung bộ nhớ. Lưu ý rằngShmallđược đo bằng cách đọc kèo bóng đá trang thay vì byte trên nhiều hệ thống.
Ít có khả năng gây ra sự cố là kích thước tối thiểu cho cách đọc kèo bóng đá phân đoạn bộ nhớ được chia sẻ (Shmmin), nên có nhiều nhất khoảng 32 byte chocách đọc kèo bóng đá(thường chỉ là 1). Số lượng phân đoạn tối đa toàn bộ hệ thống (Shmmni) hoặc trên mỗi quá trình (SHMSEG) Không thể gây ra vấn đề trừ khi hệ thống của bạn được đặt thành 0.
cách đọc kèo bóng đáSử dụng một semaphore cho mỗi kết nối được phép (Max_Connections), cho phép quy trình công nhân tự động (autovacuum_max_workers) và cho phép quy trình nền (Max_Worker_Processes), trong cách đọc kèo bóng đá bộ 16. Mỗi bộ như vậy cũng sẽ chứa một semaphore thứ 17 có chứa"Số ma thuật", để phát hiện va chạm với cách đọc kèo bóng đá bộ semaphore được sử dụng bởi cách đọc kèo bóng đá ứng dụng khác. Số lượng semaphores tối đa trong hệ thống được đặt bởisemmns, do đó phải cao ít nhất làMax_Connectionscộngautovacuum_max_workerscộngMax_Worker_Processes, cộng với một thêm cho mỗi 16 kết nối được phép cộng với công nhân (xem công thức trongBảng 17-1). 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 cùng một lúc. Do đó tham số này phải ít nhấtceil ((Max_Connections + Autovacuum_Max_Workers + Max_Worker_Processes + 5) / 16). Giảm 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ách đọc kèo bóng đá thất bại, thường bị từ chối một cách khó hiểu"Không còn khoảng trống nào 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ựsemmns. Nếu hệ thống có tham số này (nhiều người không), nó xác định kích thước của bản đồ cách đọc kèo bóng đá semaphore, trong đó mỗi khối tiếp giáp của các semaphores có sẵn cần một mục nhập.
Thesemmsltham số, xác định số lượng semaphores có thể có trong một tập hợp, phải có ít nhất 17 chocách đọc kèo bóng đá.
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, không ảnh hưởngcách đọc kèo bóng đá.
Ít nhất là phiên bản 5.1, không cần thiết phải thực hiện bất kỳ cấu hình đặc biệt nào cho cách đọc kèo bóng đá tham số nhưShmmax, vì nó xuất hiện điều này được cấu hình để cho phép tất cả bộ nhớ được sử dụng làm bộ nhớ chia sẻ. Đó là loại cấu hình thường được sử dụng cho cách đọc kèo bóng đá 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à giới hạn cứng mặc định cho kích thước tệp (fsize) và số lượng tệp (nofiles) có thể quá thấp.
Cài đặt IPC mặc định có thể được thay đổi bằng cách sử dụngsysctlhoặcTrình tảiGiao diện. cách đọc kèo bóng đá tham số sau có thể được đặt bằng cách sử dụngsysctl:
# 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 cách đọc kèo bóng đá lầ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 khisysctlđược quan tâm, nhưng có thể được đặt trong/boot/loader.conf:
kern.ipc.semmni = 256
Sau khi sửa đổi tệp đó, việc khởi động lại là bắt buộc để cách đọc kèo bóng đá cài đặt mới có hiệu lực.
Bạn cũng có thể muốn định cấu hình cách đọc kèo bóng đá của mình để khóa bộ nhớ chia sẻ vào RAM và ngăn không cho nó được phân trang để hoán đổi. Điều này có thể được thực hiện bằng cách sử dụngsysctlCà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 trong các nhà tù khác nhau nên được chạy bởi những người dùng hệ điều hành khác nhau. Điều này cải thiện bảo mật vì nó ngăn người dùng không root can thiệp vào bộ nhớ được chia sẻ hoặc semaphores trong các nhà tù khác nhau và nó cho phép mã dọn dẹp IPC cách đọc kèo bóng đá hoạt động đúng.
FreeBSDPhiên bản trước 4.0 hoạt động như cũOpenBSD(xem bên dưới).
inNetBSD5.0 trở lên, cách đọc kèo bóng đá tham số IPC có thể được điều chỉnh bằng cách sử dụngsysctl, ví dụ:
# sysctl -w kern.ipc.semmni = 100
Để 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.
Bạn thường muốn tăngkern.ipc.semmnivàkern.ipc.semmns, nhưNetBSDCài đặt mặc định cho những thứ này là nhỏ một cách khó chịu.
Bạn cũng có thể muốn định cấu hình cách đọc kèo bóng đá của mình để khóa bộ nhớ chia sẻ vào RAM và ngăn không cho nó được phân trang để hoán đổi. Điều này có thể được thực hiện bằng cách sử dụngsysctlCài đặtkern.ipc.shm_use_phys.
NetBSDPhiên bản trước 5.0 hoạt động như cũOpenBSD(xem bên dưới), ngoại trừ cách đọc kèo bóng đá tham số kernel nên được đặt bằng từ khóaTùy chọnkhôngTùy chọn.
inOpenBSD3.3 trở lên, cách đọc kèo bóng đá tham số IPC có thể được điều chỉnh bằng cách sử dụngsysctl, ví dụ:
# sysctl kern.seminfo.semmni = 100
Để 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.
Bạn thường muốn tăngkern.seminfo.semmnivàkern.seminfo.semmns, nhưOpenBSDCài đặt mặc định cho những thứ này là nhỏ một cách khó chịu.
trong cũOpenBSDPhiên bản, bạn sẽ cần xây dựng một hạt nhân tùy chỉnh để thay đổi cách đọc kèo bóng đá tham số IPC. Đảm bảo rằng cách đọc kèo bóng đá tùy chọnsysvshmvàsysvsemcũng được bật. (Chúng theo mặc định.) Sau đây hiển thị một ví dụ về cách đặt cách đọc kèo bóng đá tham số khác nhau trong tệp cấu hình kernel:
Tùy chọn sysvshm
Cài đặt mặc định có xu hướng đủ cho cách đọc kèo bóng đá cài đặt bình thường. TRÊNHP-UX10, mặc định của nhà máy choSEMMNSlà 128, có thể quá thấp đối với cách đọc kèo bóng đá trang web cơ sở dữ liệu lớn hơn.
IPCtham số có thể được đặt trongTrình quản lý quản trị hệ thống(SAM) dướiCấu hình cách đọc kèo bóng đá-Tham số có thể định cấu hình. ChọnTạo hạt nhân mớiKhi bạn hoàn thành.
Kích thước phân đoạn tối đa mặc định là 32 MB và tổng số tối đa mặc định là 2097152 trang. Một trang hầu như luôn luôn là 4096 byte ngoại trừ trong cách đọc kèo bóng đá cấu hình hạt nhân bất thường với"trang khổng lồ"(Sử dụnggetConf page_sizeđể xác minh).
Cài đặt kích thước bộ nhớ được chia sẻ có thể được thay đổi thông quasysctlGiao diện. Ví dụ: để cho phép 16 gb:
$ sysctl -w cách đọc cách đọc kèo bóng đáshmmax = 17179869184 $ sysctl -w cách đọc kèo bóng đá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 cách đọc kèo bóng đá lần khởi động lại trong tệp/etc/sysctl.conf. Làm điều đó rất được khuyến khích.
Phân phối cổ có thể không cósysctlChương trình, nhưng có thể thực hiện cách đọc kèo bóng đá thay đổi tương đương bằng cách thao túng/ProcHệ thống tệp:
$ echo 17179869184/proc/sys/cách đọc kèo bóng đá/shmmax $ echo 4194304/proc/sys/cách đọc kèo bóng đá/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à thường không yêu cầu thay đổi.
Phương thức được đề xuất để định cấu hình bộ nhớ chia sẻ trong OS X là để tạo một tệp có tên/etc/sysctl.conf, chứa cách đọc kèo bóng đá bài tập biến như:
kern.sysv.shmmax = 4194304
Lưu ý rằng trong một số phiên bản OS X,Tất cả nămcách đọc kèo bóng đá tham số bộ nhớ chia sẻ phải được đặt trong/etc/sysctl.conf, khác cách đọc kèo bóng đá giá trị sẽ bị bỏ qua.
Hãy cẩn thận với 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ực đặtShmmaxvới giá trị không phải là bội số chính xác của 4096.
Shmallđược đo bằng 4 trang kb trên nền tảng này.
Trong cách đọc kèo bóng đá phiên bản OS X cũ hơn, bạn sẽ cần khởi động lại để có những thay đổi trong cách đọc kèo bóng đá tham số bộ nhớ được chia sẻ có hiệu lực. Tính đến 10,5, có thể thay đổi tất cả trừshmmniKhi đang bay, sử dụngsysctl. Nhưng tốt nhất là thiết lập cách đọc kèo bóng đá giá trị ưa thích của bạn thông qua/etc/sysctl.conf, để cách đọc kèo bóng đá giá trị sẽ được giữ trên cách đọc kèo bóng đá lần khởi động lại.
Tệp/etc/sysctl.confchỉ được vinh danh trong OS X 10.3.9 trở lên. Nếu bạn đang chạy bản phát hành 10.3.x trước đó, bạn phải chỉnh sửa tệp/etc/rcvà thay đổi cách đọc kèo bóng đá giá trị trong cách đọc kèo bóng đá lệnh sau:
sysctl -w kern.sysv.shmmax
Lưu ý rằng/etc/rcthường được ghi đè bởi cách đọc kèo bóng đá bản cập nhật hệ thống OS X, vì vậy bạn sẽ phải làm lại cách đọc kèo bóng đá chỉnh sửa này sau mỗi lần cập nhật.
Trong OS X 10.2 và trước đó, thay vào đó chỉnh sửa cách đọc kèo bóng đá lệnh này trong tệp27930_27986.
Trong cấu hình mặc định, chỉ cho phép 512 kb bộ nhớ chia sẻ cho mỗi phân đoạn. Để tăng cài đặt, trước tiên hãy thay đổi sang thư mục/etc/conf/cf.d. Để hiển thị giá trị hiện tại củaShmmax, Chạy:
./configure -y shmmax
Để đặt giá trị mới choShmmax, Chạy:
./configure shmmax =giá trị
WHEREgiá trịlà giá trị mới 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.
cách đọc kèo bóng đá cài đặt có liên quan có thể được thay đổi trong/etc/System, ví dụ:
Đặ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ớ chia sẻ theo cách đọc kèo bóng đá phiên bản cũ hơn của Solaris.
Trong Solaris 10 trở lên và OpenSolaris, bộ nhớ chia sẻ mặc định và cài đặt Semaphore đủ tốt cho hầu hếtcách đọc kèo bóng đáỨng dụng. Solaris hiện mặc định là mộtShmmaxcủa một phần tư hệ thốngRAM. Để điều chỉnh thêm cài đặt này, hãy sử dụng cài đặt dự án được liên kết vớiPostgresNgười dùng. Ví dụ: chạy như sauroot:
30203_30324
Lệnh này thêmuser.postgresDự án và đặt bộ nhớ được chia sẻ tối đa choPostgresNgười dùng đến 8GB và có hiệu lực vào lần tiếp theo mà người dùng đăng nhập hoặc khi bạn khởi động lạicách đọc kèo bóng đá(không tải lại). Ở trên giả định rằngcách đọc kèo bóng đáđược chạy bởiPostgresNgười dùng trongPostgresNhóm. Không cần khởi động lại máy chủ.
Thay đổi cài đặt kernel được đề xuất khác cho cách đọc kèo bóng đá máy chủ cơ sở dữ liệu sẽ có số lượng lớn kết nối là:
Project.Max-Shm-ids = (Priv, 32768, Deny)
Ngoài ra, nếu bạn đang chạycách đọc kèo bóng đáBên trong một khu vực, bạn cũng có thể cần phải tăng giới hạn sử dụng cách đọc kèo bóng đá khu vực. Xem "Chương2: Các dự án và nhiệm vụ" trongHướng dẫn của Quản trị viên Hệ thốngĐể biết thêm thông tin vềDự ánvàPRCTL.
trênUnixware7, Kích thước tối đa cho cách đọc kèo bóng đá phân đoạn bộ nhớ được chia sẻ là 512 KB trong cấu hình mặc định. Để hiển thị giá trị hiện tại củaShmmax, Chạy:
/etc/conf/bin/idtune -g shmmax
hiển thị cách đọc kèo bóng đá giá trị hiện tại, mặc định, tối thiểu và tối đa. Để đặt giá trị mới choShmmax, Chạy:
/etc/conf/bin/idtune shmmaxgiá trị
WHEREGiá trịlà giá trị mới 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.
nếusystemdđang được sử dụng, một số cần phải chú ý rằng tài nguyên IPC (bộ nhớ chia sẻ và semaphores) không bị hệ điều hành loại bỏ sớm. Điều này đặc biệt là mối quan tâm khi cài đặt cách đọc kèo bóng đá từ nguồn.PostgresNgười dùng sau đó thường được tạo dưới dạng người dùng hệ thống.
Cài đặtRemoveIPCinlogind.confKiểm soát xem cách đọc kèo bóng đá đối tượng IPC có bị xóa khi người dùng đăng xuất đầy đủ hay không. Người dùng hệ thống được miễn trừ.Systemd, nhưng một số phân phối hệ điều hành mặc định là tắt.
33153_33356
log: SEMCTL (1234567890, 0, IPC_RMID, ...) Không thành công: Đối số không hợp lệ
cách đọc kèo bóng đá loại đối tượng IPC khác nhau (bộ nhớ chia sẻ so với Semaphores, System V so với POSIX) được xử lý hơi khác nhau bởisystemd, vì vậy người ta có thể quan sát rằng một số cách đọc kèo bóng đá IPC không bị xóa theo cách khác như những cách đọc kèo bóng đá khác. Nhưng không nên dựa vào những khác biệt tinh tế này.
A"Người dùng đăng xuất"Có thể xảy ra như một phần của công việc bảo trì hoặc thủ công khi quản trị viên đăng nhập dưới dạngPostgresNgười dùng hoặc một cái gì đó tương tự, vì vậy rất khó để ngăn chặn nói chung.
A là gì"Người dùng hệ thống"được xác định tạiSystemdbiên dịch thời gian từSYS_UID_MAXCài đặt trong/etc/login.defs.
cách đọc kèo bóng đá tập lệnh đóng gói và triển khai nên cẩn thận để tạoPostgresNgười dùng làm người dùng hệ thống bằng cách sử dụnguserAdd -r,adduser -systemhoặc tương đương.
Ngoài ra, nếu cách đọc kèo bóng đá khoản người dùng được tạo không chính xác hoặc không thể thay đổi, nên đặt
removeIpc = no
in/etc/systemd/logind.confhoặc tệp cấu hình thích hợp khác.
THẬN TRỌNG |
Ít nhất một trong hai điều này phải được đảm bảo hoặc máy chủ cách đọc kèo bóng đá sẽ không đáng tin cậy. |
Hệ điều hành giống UNIX thực thi các loại giới hạn cách đọc kèo bóng đá khác nhau có thể can thiệp vào hoạt động của của bạncách đọc kèo bóng đáMáy chủ. Đặc biệt quan trọng là giới hạn về số lượng quy trình trên 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 quy trình."Hard"và A"Soft"Giới hạn. Giới hạn mềm là những gì thực sự được tính nhưng nó có thể được người dùng thay đổi đến giới hạn cứng.SetRlimit
chịu trách nhiệm đặt cách đọc kèo bóng đá tham số này. Lệnh tích hợp của shellUlimit(vỏ Bourne) hoặcgiới hạn(CSH) được sử dụng để kiểm soát các giới hạn cách đọc kèo bóng đá từ dòng lệnh. Trên các hệ thống có nguồn gốc BSD, tệp/etc/login.confKiểm soát các giới hạn cách đọc kèo bóng đá khác nhau được đặt trong quá trình đăng nhập. Xem tài liệu hệ điều hành để biết chi tiết.MaxProc,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ố cách đọc kèo bóng đá.
trênLinux /Proc/sys/fs/file-maxXác định số lượng tệp mở tối đa mà cách đọc kèo bóng đá sẽ hỗ trợ. Nó có thể được thay đổi bằng cách viết một số khác vào tệp hoặc bằng cách thêm một gán trong/etc/sysctl.conf. Giới hạn tối đa của cách đọc kèo bóng đá tệp cho mỗi quá trình được cố định tại thời điểm hạt nhân được biên dịch;/usr/src/linux/documentation/proc.txtĐể biết thêm thông tin.
Thecách đọc kèo bóng đáMá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 là nhiều quy trình khi kết nối được phép, ngoài những gì bạn cần cho phần còn lại của hệ thống. Đây thường không phải là vấn đề nhưng nếu bạn chạy một số máy chủ trên một máy thì mọi thứ có thể bị chặt chẽ.
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"Các giá trị cho phép nhiều người dùng cùng tồn tại trên máy mà không sử dụng một phần không phù hợp của cách đọc kèo bóng đá hệ thống. Nếu bạn chạy nhiều máy chủ trên máy thì đây có lẽ là thứ bạn muốn, nhưng trên các 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ách đọc kèo bóng đá quy trình riêng lẻ mở một số lượng lớn cách đọc kèo bóng đá tệp; Nếu có nhiều hơn một vài quy trình làm như vậy thì giới hạn toàn hệ thống có thể dễ dàng vượt quá.cách đọc kèo bóng đá'sMAX_FILES_PER_PROCESSTham số cấu hình để giới hạn mức tiêu thụ của cách đọc kèo bóng đá tệp mở.
Trong Linux 2.4 trở lên, hành vi bộ nhớ ảo mặc định không tối ưu chocách đọc kèo bóng đá. Do cách mà hạt nhân thực hiện bộ nhớ quá mức, hạt nhân có thể chấm dứtcách đọc kèo bóng đáPostmaster (quy trình máy chủ chính) nếu bộ nhớ yêu cầu của một trong haicách đọc kèo bóng đáhoặc quá trình khác khiến hệ thống hết bộ nhớ ảo.
Nếu điều này xảy ra, bạn sẽ thấy một thông báo kernel trông giống như thế này (tham khảo cách đọc kèo bóng đá liệu và cấu hình hệ thống của bạn về nơi tìm kiếm thông báo như vậy):
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ù cách đọc kèo bóng đá kết nối cơ sở dữ liệu hiện tại sẽ tiếp tục hoạt động bình thường, nhưng sẽ không có kết nối mới nào được chấp nhận.cách đọc kèo bóng đáSẽ cần được khởi động lại.
Một cách để tránh vấn đề này là chạycách đọc kèo bóng đáTrên máy nơi bạn có thể chắc chắn rằng cách đọc kèo bóng đá quy trình khác sẽ không chạy máy ra khỏi bộ nhớ. Nếu bộ nhớ chặt chẽ, việc tăng không gian hoán đổi của hệ điều hành có thể giúp tránh vấn đề, bởi vì kẻ giết người ngoài bộ nhớ (OOM) chỉ được gọi khi bộ nhớ vật lý và không gian hoán đổi.
nếucách đọc kèo bóng đáBản thân nó là nguyên nhân của hệ thống hết bộ nhớ, bạn có thể tránh được vấn đề bằng cách thay đổi cấu hình của mình. Trong một số trường hợp, nó có thể giúp giảm cách đọc kèo bóng đá tham số cấu hình liên quan đến bộ nhớ, đặc biệt làShared_buffersvàwork_mem. Trong cách đọc kèo bóng đá trường hợp khác, vấn đề có thể được gây ra bằng cách cho phép quá nhiều kết nối với chính máy chủ cơ sở dữ liệu.Max_Connectionsvà thay vào đó sử dụng phần mềm kết nối bên ngoài.
Trên Linux 2.6 trở lên, có thể sửa đổi hành vi của hạt nhân để nó không"OVERCOMMIT"bộ nhớ. Mặc dù cài đặt này sẽ không ngăn đượcOOM KillerTừ việc được gọi hoàn toàn, nó sẽ hạ thấp cơ hội đáng kể và do đó sẽ dẫn đến hành vi hệ thống mạnh mẽ hơn. Điều này được thực hiện bằng cách chọn chế độ OverCommit nghiêm ngặt thông quasysctl:
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 đổi cài đặt liên quanVM.OverCommit_Ratio. Để biết chi tiết, xem tệp cách đọc kèo bóng đá liệu kernelcách đọc kèo bóng đá 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à đặt quy trình cụ thểOOM_SCORE_ADJGiá trị cho quy trình Postmaster thành-1000, do đó đảm bảo nó sẽ không được nhắm mục tiêu bởi kẻ giết người OOM. Cách đơn giản nhất để làm điều này là thực thi
echo -1000/proc/self/oom_score_adj
Trong tập lệnh khởi động của Postmaster ngay trước khi gọi Postmaster. Lưu ý rằng hành động này phải được thực hiện dưới dạng gốc, hoặc nó sẽ không có tác dụng;cách đọc kèo bóng đávới-Dlinux_oom_score_adj = 0được thêm vàocppflags. Điều đó sẽ khiến cách đọc kèo bóng đá quy trình trẻ em sau khi chạy với bình thườngoom_score_adjGiá trị bằng không, để kẻ giết người OOM vẫn có thể nhắm mục tiêu chúng khi cần.
Hạt nhân Linux cũ không cung cấp/Proc/self/oom_score_adj, nhưng có thể có phiên bản trước của cùng một chức năng gọi là/Proc/self/oom_adj. Điều này hoạt động giống nhau ngoại trừ giá trị vô hiệu hóa là-17không-1000. Cờ xây dựng tương ứng chocách đọc kèo bóng đálà-Dlinux_oom_adj = 0.
Lưu ý:Một số hạt nhân Linux 2.4 của nhà cung cấp được báo cáo là có phiên bản sớm của 2.6 OverCommitsysctlTham số. Tuy nhiên, cài đặtVM.OverCommit_Memoryđến 2 trên cách đọc kèo bóng đá 2.4 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 mã nguồn nhân thực tế (xem hàm
VM_ENOUGH_MEMORY
Trong tệpmm/mmap.c) Để xác minh những gì được hỗ trợ trong hạt nhân của bạn trước khi bạn thử điều này trong cài đặt 2.4. Sự hiện diện củaKế toán quá mứcTệp cách đọc kèo bóng đá liệu nênkhôngđược lấy làm bằng chứng cho thấy tính năng này. Nếu trong mọi nghi ngờ, hãy tham khảo ý kiến chuyên gia nhân hoặc nhà cung cấp cách đọc kèo bóng đá của bạn.
Sử dụng cách đọc kèo bóng đá trang khổng lồ sẽ giảm chi phí khi sử dụng cách đọc kèo bóng đá khối bộ nhớ tiếp giáp lớn, nhưcách đọc kèo bóng đáĐặc biệt khi sử dụng cách đọc kèo bóng đá giá trị lớn củaShared_buffers. Để sử dụng tính năng này trongcách đọc kèo bóng đáBạn cần một hạt nhân vớiconfig_hugetlbfs = yvàconfig_hugetlb_page = y. Bạn cũng sẽ phải điều chỉnh cài đặt cách đọc kèo bóng đáVM.NR_HUGEPAGES. Để ước tính số lượng trang khổng lồ cần thiết, hãy bắt đầucách đọc kèo bóng đáKhông có cách đọc kèo bóng đá trang lớn được bật và kiểm tra Postmaster'sVMPEAKGiá trị, cũng như kích thước trang khổng lồ của hệ thống, sử dụng/ProcHệ thống tệp. Điều này có thể trông giống như:
$Head -1 $ pgdata/postmaster.pid4170grep ^vmpeak/Proc/4170/statusVMPEAK: 6490428 kbgrep ^vispagesize /Proc /meminfo45067_45097
6490428/2048cho khoảng3169.154, Vì vậy, trong ví dụ này, chúng ta cần ít nhất3170cách đọc kèo bóng đá trang khổng lồ mà chúng ta có thể đặt với:
$sysctl -w vm.nr_hugepages = 3170
Cài đặt lớn hơn sẽ phù hợp nếu cách đọc kèo bóng đá chương trình khác trên máy cũng cần cách đọc kèo bóng đá trang lớn. Đừng quên thêm cài đặt này vào/etc/sysctl.confđể nó được áp dụng lại sau khi khởi động lại.
Đôi khi hạt nhân không thể phân bổ số lượng trang khổng lồ mong muốn ngay lập tức, vì vậy có thể cần phải lặp lại lệnh hoặc khởi động lại. (Ngay sau khi khởi động lại, hầu hết bộ nhớ của máy nên có sẵn để chuyển đổi thành cách đọc kèo bóng đá trang lớn.) Để xác minh tình huống phân bổ trang khổng lồ, sử dụng:
$grep khổng lồ /Proc /meminfo
Có thể cần phải cấp cho phép người dùng hệ điều hành của máy chủ cơ sở dữ liệu sử dụng cách đọc kèo bóng đá trang khổng lồ bằng cách cài đặtvm.hugetlb_shm_groupViasysctl, và/hoặc cho phép khóa bộ nhớ vớiulimit -l.
Hành vi mặc định cho cách đọc kèo bóng đá trang lớn trongcách đọc kèo bóng đálà sử dụng chúng khi có thể và rơi trở lại cách đọc kèo bóng đá trang bình thường khi thất bại. Để thực thi việc sử dụng cách đọc kèo bóng đá trang khổng lồ, bạn có thể đặtvis_pagesđếntrênincách đọc kèo bóng đáconf. Lưu ý rằng với cài đặt nàycách đọc kèo bóng đáSẽ không bắt đầu nếu không có đủ cách đọc kèo bóng đá trang khổng lồ có sẵn.
Để biết mô tả chi tiết vềLinuxTính năng trang khổng lồ có xemhttps: //www.cách đọc kèo bóng đáorg/doc/documentation/vm/hugetlbpage.txt.
Prev | Trang chủ | PostgreSQL: |
Khởi động máy chủ cơ sở dữ liệu | UP | Tắt máy chủ |