pdf viewer in asp net c# : How to add image to pdf reader software control project winforms web page azure UWP postgresql-9.4-A451-part2974

Chapter 17. Server Setup and Operation
initdb
will attempt to createthedirectoryyouspecifyif it does not already exist. Of course, this will
fail if
initdb
does nothavepermissions towriteintheparent directory. It’sgenerallyrecommendable
that the PostgreSQL user own not just the data directory but its parent directory as well, so that this
should not be a problem. If the desired parent directory doesn’t exist either, you will need to create it
first, using root privileges if the grandparent directory isn’t writable. So the process might look like
this:
root#
mkdir /usr/local/pgsql
root#
chown postgres /usr/local/pgsql
root#
su postgres
postgres$
initdb -D /usr/local/pgsql/data
initdb
will refuse to run if the data directory exists and already contains files; this is to prevent
accidentally overwriting an existing installation.
Because the data directory contains all the data stored in the database, it is essential that it be se-
cured from unauthorized access.
initdb
therefore revokes access permissions from everyone but the
PostgreSQL user.
However, while the directory contents are secure, the default client authentication setup allows any
local user to connect to the database and even become the database superuser. If you do not trust
other local users, we recommend you use one of
initdb
’s
-W
,
--pwprompt
or
--pwfile
options
to assign a password to the database superuser. Also, specify
-A md5
or
-A password
so that the
default
trust
authentication mode is not used; or modify the generated
pg_hba.conf
file after run-
ning
initdb
,but before you start the server for the first time. (Other reasonable approaches include
using
peer
authenticationor file system permissions to restrict connections. See Chapter 19 for more
information.)
initdb
also initializes the default locale for the database cluster. Normally, it will just take the locale
settings in the environment and apply them to the initialized database. It is possible to specify a
different locale for the database; more information about that can be found in Section 22.1. The
default sort order used within the particular database cluster is set by
initdb
,and while you can
create new databases using different sort order, the order used in the template databases that initdb
creates cannot be changedwithout dropping and recreating them. There is alsoa performance impact
for using locales other than
C
or
POSIX
.Therefore, it is important to make this choice correctly the
first time.
initdb
also sets the default character set encoding for the database cluster. Normally this should be
chosen to match the locale setting. For details see Section 22.3.
17.2.1. Use of Secondary File Systems
Many installations create their database clusters on file systems (volumes) other than the machine’s
“root”volume. If youchoosetodothis, itis notadvisabletotry to use the secondaryvolume’s topmost
directory (mount point) as the data directory. Best practice is to create a directory within the mount-
point directory that is owned by the PostgreSQL user, and then create the data directory within that.
This avoids permissions problems, particularly for operations such as pg_upgrade, andit alsoensures
clean failures if the secondary volume is taken offline.
438
How to add image to pdf reader - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
how to add an image to a pdf file in acrobat; add image pdf document
How to add image to pdf reader - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add picture to pdf reader; how to add a jpeg to a pdf
Chapter 17. Server Setup and Operation
17.2.2. Use of Network File Systems
Many installations create their database clusters on network file systems. Sometimes this
is done via NFS, or by using a Network Attached Storage (NAS) device that uses NFS
internally. PostgreSQL does nothing special for NFS file systems, meaning it assumes NFS
behaves exactly like locally-connected drives. If the client or server NFS implementation
does not provide standard file system semantics, this can cause reliability problems (see
http://www.time-travellers.org/shane/papers/NFS_considered_harmful.html). Specifically, delayed
(asynchronous) writes to the NFS server can cause data corruption problems. If possible, mount the
NFS file system synchronously (without caching) to avoid this hazard. Also, soft-mounting the NFS
file system is not recommended.
Storage Area Networks (SAN) typically use communication protocols other than NFS, and may or
may not be subject to hazards of this sort. It’s advisable to consult the vendor’s documentation con-
cerning data consistency guarantees. PostgreSQL cannot be more reliable than the file system it’s
using.
17.3. Starting the Database Server
Before anyone can access the database, you must start the database server. The database server pro-
gram is called
postgres
.The
postgres
program must know where to find the data it is supposed
to use. This is done with the
-D
option. Thus, the simplest way to start the server is:
$
postgres -D /usr/local/pgsql/data
which will leave the server running in the foreground. This must be done while logged into the Post-
greSQL user account. Without
-D
,the server will try to use the data directory named by the environ-
ment variable
PGDATA
.If that variable is not provided either, it will fail.
Normally it is better to start
postgres
in the background. For this, use the usual Unix shell syntax:
$
postgres -D /usr/local/pgsql/data >logfile 2>&1 &
It is important to store the server’s stdout and stderr output somewhere, as shown above. It will help
for auditing purposes and to diagnose problems. (See Section 23.3 for a more thorough discussion of
log file handling.)
The
postgres
program also takes a number of other command-line options. For more information,
see the postgres reference page and Chapter 18 below.
This shell syntax can get tedious quickly. Therefore the wrapper program pg_ctl is provided to sim-
plify some tasks. For example:
pg_ctl start -l logfile
will start the server in the background and put the output into the named log file. The
-D
option has
the same meaning here as for
postgres
.
pg_ctl
is also capable of stopping the server.
Normally, you will want to start the database server when the computer boots. Autostart
scripts are operating-system-specific. There are a few distributed with PostgreSQL in the
contrib/start-scripts
directory. Installing one will require root privileges.
Different systems have different conventions for starting up daemons at boot time. Many systems
have a file
/etc/rc.local
or
/etc/rc.d/rc.local
.Others use
init.d
or
rc.d
directories.
Whatever you do, the server must be run by the PostgreSQL user account and not by root or any
439
C# Imaging - Scan Barcode Image in C#.NET
RasterEdge Barcode Reader DLL add-in enables developers to add barcode image recognition & types, such as Code 128, EAN-13, QR Code, PDF-417, etc.
add an image to a pdf with acrobat; add picture to pdf document
XImage.Barcode Scanner for .NET, Read, Scan and Recognize barcode
VB.NET Write: Add Image to PDF; VB.NET Protect: Add Password to VB.NET Annotate: PDF Markup & Drawing. XDoc.Word for C#; XDoc.Excel for C#; XDoc.PowerPoint for
add image pdf acrobat; add photo to pdf
Chapter 17. Server Setup and Operation
other user. Therefore you probably should form your commands using
su postgres -c ’...’
.
For example:
su postgres -c ’pg_ctl start -D /usr/local/pgsql/data -l serverlog’
Here are a few more operating-system-specific suggestions. (In each case be sure to use the proper
installation directory and user name where we show generic values.)
For FreeBSD, look at the file
contrib/start-scripts/freebsd
in the PostgreSQL source
distribution.
On OpenBSD, add the following lines to the file
/etc/rc.local
:
if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; then
su -l postgres -c ’/usr/local/pgsql/bin/pg_ctl start -s -l /var/postgresql/log -D /usr/local/pgsql/data’
echo -n ’ postgresql’
fi
On Linux systems either add
/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data
to
/etc/rc.d/rc.local
or
/etc/rc.local
or
look
at
the
file
contrib/start-scripts/linux
in the PostgreSQL source distribution.
On NetBSD, use either the FreeBSD or Linux start scripts, depending on preference.
On Solaris, create a file called
/etc/init.d/postgresql
that contains the following line:
su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"
Then, create a symbolic link to it in
/etc/rc3.d
as
S99postgresql
.
While the server is running, its PID is stored in the file
postmaster.pid
in the data directory. This
is used to prevent multiple server instances from running in the same data directory and can also be
used for shutting down the server.
17.3.1. Server Start-up Failures
There are several common reasons the server might fail to start. Check the server’s log file, or start it
by hand (without redirecting standard output or standard error) and see what error messages appear.
Below we explain some of the most common error messages in more detail.
LOG:
could not bind IPv4 socket: Address already in use
HINT:
Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
FATAL:
could not create TCP/IP listen socket
This usually means just what it suggests: you tried to start another server on the same port where one
is already running. However, if the kernel error message is not
Address already in use
or some
variant of that, there might be a different problem. For example, trying to start a server on a reserved
port number might draw something like:
$
postgres -p 666
LOG:
could not bind IPv4 socket: Permission denied
HINT:
Is another postmaster already running on port 666? If not, wait a few seconds and retry.
FATAL:
could not create TCP/IP listen socket
440
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Get image information, such as its location, zonal information, metadata, and so on. Able to edit, add, delete, move, and output PDF document image.
add photo to pdf preview; add picture to pdf online
VB.NET PDF Password Library: add, remove, edit PDF file password
VB: Add Password to PDF with Permission Settings Applied. This VB.NET example shows how to add PDF file password with access permission setting.
how to add image to pdf; add image to pdf reader
Chapter 17. Server Setup and Operation
Amessage like:
FATAL:
could not create shared memory segment: Invalid argument
DETAIL:
Failed system call was shmget(key=5440001, size=4011376640, 03600).
probably means your kernel’s limit on the size of shared memory is smaller than the work area
PostgreSQL is trying to create (4011376640 bytes in this example). Or it could mean that you
do not have System-V-style shared memory support configured into your kernel at all. As a
temporary workaround, you can try starting the server with a smaller-than-normal number of buffers
(shared_buffers). You will eventually want to reconfigure your kernel to increase the allowed shared
memory size. You might also see this message when trying to start multiple servers on the same
machine, if their total space requested exceeds the kernel limit.
An error like:
FATAL:
could not create semaphores: No space left on device
DETAIL:
Failed system call was semget(5440126, 17, 03600).
does not mean you’ve run out of disk space. It means your kernel’s limit on the number of System
Vsemaphores is smaller than the number PostgreSQL wants to create. As above, you might be able
to work around the problem by starting the server with a reduced number of allowed connections
(max_connections), but you’ll eventually want to increase the kernel limit.
If you get an “illegal system call” error, it is likely that shared memory or semaphores are not sup-
ported in your kernel at all. In that case your only option is to reconfigure the kernel to enable these
features.
Details about configuring System V IPC facilities are given in Section 17.4.1.
17.3.2. Client Connection Problems
Although the error conditions possible on the client side are quite varied and application-dependent,
afew of them might be directly related to how the server was started. Conditions other than those
shown below should be documented with the respective client application.
psql: could not connect to server: Connection refused
Is the server running on host "server.joe.com" and accepting
TCP/IP connections on port 5432?
This is the generic “I couldn’t find a server to talk to” failure. It looks like the above when TCP/IP
communication is attempted. A common mistake is to forget to configure the server to allow TCP/IP
connections.
Alternatively, you’ll get this when attempting Unix-domain socket communication to a local server:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
The last line is useful in verifying that the client is trying to connect to the right place. If there
is in fact no server running there, the kernel error message will typically be either
Connection
refused
or
No such file or directory
, as illustrated. (It is important to realize that
Connection refused
in this context does not mean that the server got your connection request
441
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
DLLs for PDF Image Extraction in VB.NET. In order to run the sample code, the following steps would be necessary. Add necessary references:
add image to pdf file; add image to pdf preview
C# PDF Password Library: add, remove, edit PDF file password in C#
C# Sample Code: Add Password to PDF with Permission Settings Applied in C#.NET. This example shows how to add PDF file password with access permission setting.
adding image to pdf in preview; add signature image to pdf acrobat
Chapter 17. Server Setup and Operation
and rejected it. That case will produce a different message, as shown in Section 19.4.) Other error
messages such as
Connection timed out
might indicate more fundamental problems, like lack
of network connectivity.
17.4. Managing Kernel Resources
PostgreSQL can sometimes exhaust various operating system resource limits, especially when mul-
tiple copies of the server are running on the same system, or in very large installations. This section
explains the kernel resources used by PostgreSQL and the steps you can take to resolve problems
related to kernel resource consumption.
17.4.1. Shared Memory and Semaphores
Shared memory and semaphores are collectively referred to as “System V IPC” (together with mes-
sage queues, which are not relevant for PostgreSQL). Except on Windows, where PostgreSQL pro-
vides its own replacement implementation of these facilities, these facilities are required in order to
run PostgreSQL.
The complete lack of these facilities is usually manifested by an Illegal system call error upon server
start. In that case there is no alternative but toreconfigure your kernel. PostgreSQL won’t work with-
out them. This situation is rare, however, among modern operating systems.
When PostgreSQLexceeds one of thevarious hardIPClimits, theserver willrefusetostartand should
leave an instructive error message describing the problem and what to do about it. (See also Section
17.3.1.) The relevant kernel parameters are named consistently across different systems; Table 17-1
gives an overview. The methods toset them, however, vary. Suggestions for some platforms are given
below.
Note: Prior to PostgreSQL 9.3, the amount of System V shared memory required to start the
server was much larger. If you are running an older version of the server, please consult the
documentation for your server version.
Table 17-1. System V IPC Parameters
Name
Description
Reasonable values
SHMMAX
Maximum size of shared
memory segment (bytes)
at least 1kB (more if running
many copies of the server)
SHMMIN
Minimum size of shared
memory segment (bytes)
1
SHMALL
Total amount of shared memory
available (bytes or pages)
if bytes, same as
SHMMAX
;if
pages,
ceil(SHMMAX/PAGE_SIZE)
SHMSEG
Maximum number of shared
memory segments per process
only 1 segment is needed, but
the default is much higher
SHMMNI
Maximum number of shared
memory segments system-wide
like
SHMSEG
plus room for
other applications
442
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
Evaluation library and components enable users to annotate PDF without adobe PDF reader control installed. Able to add notes to PDF using C# source code in
add picture to pdf preview; add jpg signature to pdf
C# Create PDF from images Library to convert Jpeg, png images to
List<Bitmap> images = new List<Bitmap>(); images.Add(new Bitmap(Program.RootPath + "\\" 1.gif")); / Build a PDF document with GIF image.
add image field to pdf form; add image to pdf java
Chapter 17. Server Setup and Operation
Name
Description
Reasonable values
SEMMNI
Maximum number of
semaphore identifiers (i.e., sets)
at least
ceil((max_connections +
autovacuum_max_workers
+ max_worker_processes
+ 5) / 16)
SEMMNS
Maximum number of
semaphores system-wide
ceil((max_connections +
autovacuum_max_workers
+ max_worker_processes
+ 5) / 16)
*
17
plus room
for other applications
SEMMSL
Maximum number of
semaphores per set
at least 17
SEMMAP
Number of entries in
semaphore map
see text
SEMVMX
Maximum value of semaphore
at least 1000 (The default is
often 32767; do not change
unless necessary)
PostgreSQL requiresa fewbytes of System V sharedmemory(typically48bytes, on64-bit platforms)
for each copy of the server. On most modern operating systems, this amount can easily be allocated.
However, if you are running many copies of the server, or if other applications are also using System
Vshared memory, it may be necessary to increase
SHMMAX
,the maximum size in bytes of a shared
memory segment, or
SHMALL
,the total amount of System V shared memory system-wide. Note that
SHMALL
is measured in pages rather than bytes on manysystems.
Less likely to cause problems is the minimum size for shared memory segments (
SHMMIN
), which
should be at mostapproximately 32bytes for PostgreSQL (it is usually just 1). The maximum number
of segments system-wide (
SHMMNI
)or per-process (
SHMSEG
)are unlikely to cause a problem unless
your system has them set to zero.
PostgreSQL uses one semaphore per allowed connection (max_connections), allowed
autovacuum worker process (autovacuum_max_workers) and allowed background process
(max_worker_processes), in sets of 16. Each such set will also contain a 17th semaphore
which contains a “magic number”, to detect collision with semaphore sets used by other
applications. The maximum number of semaphores in the system is set by
SEMMNS
, which
consequently must be at least as high as
max_connections
plus
autovacuum_max_workers
plus
max_worker_processes
, plus one extra for each 16 allowed connections plus workers
(see the formula in Table 17-1). The parameter
SEMMNI
determines the limit on the number of
semaphore sets that can exist on the system at one time. Hence this parameter must be at least
ceil((max_connections + autovacuum_max_workers + max_worker_processes + 5)
/ 16)
.Lowering the number of allowed connections is a temporary workaround for failures, which
are usually confusingly worded “No space left on device”, from the function
semget
.
In some cases it might also be necessary to increase
SEMMAP
to be at least on the order of
SEMMNS
.
This parameter defines the size of the semaphore resource map, in which each contiguous block of
available semaphores needs an entry. When a semaphore set is freed it is either added to an existing
entry that is adjacent tothe freed block or it is registeredunder a newmapentry. If the map is full, the
freed semaphores get lost (until reboot). Fragmentation of the semaphore space could over time lead
to fewer available semaphores than there should be.
The
SEMMSL
parameter, which determines how many semaphores can be in a set, must be at least 17
for PostgreSQL.
443
Chapter 17. Server Setup and Operation
Various other settings related to “semaphore undo”, such as
SEMMNU
and
SEMUME
,do not affect Post-
greSQL.
AIX
At least as of version 5.1, it should not be necessary to do any special configuration for such
parameters as
SHMMAX
,as it appears this is configured to allow all memory to be used as shared
memory. That is the sort of configuration commonly used for other databases such as DB/2.
It might, however, be necessary to modify the global
ulimit
information in
/etc/security/limits
,as the default hard limits for file sizes (
fsize
)andnumbers of files
(
nofiles
)might be too low.
FreeBSD
The default settings can be changed using the
sysctl
or
loader
interfaces. The following
parameters can be set using
sysctl
:
# sysctl kern.ipc.shmall=32768
# sysctl kern.ipc.shmmax=134217728
To make these settings persist over reboots, modify
/etc/sysctl.conf
.
These semaphore-related settings are read-only as far as
sysctl
is concerned, but can be set in
/boot/loader.conf
:
kern.ipc.semmni=256
kern.ipc.semmns=512
kern.ipc.semmnu=256
After modifying these values a reboot is required for the new settings to take effect. (Note:
FreeBSD does not use
SEMMAP
. Older versions would accept but ignore a setting for
kern.ipc.semmap
;newer versions reject it altogether.)
You might also want to configure your kernel to lock shared memory into RAM and prevent
it from being paged out to swap. This can be accomplished using the
sysctl
setting
kern.ipc.shm_use_phys
.
If running in FreeBSD jails by enabling sysctl’s
security.jail.sysvipc_allowed
,post-
masters running in different jails should be run by different operating system users. This im-
proves security because it prevents non-root users from interfering with shared memory or
semaphores in different jails, and it allows the PostgreSQL IPC cleanup code to function prop-
erly. (In FreeBSD 6.0 and later the IPC cleanup code does not properly detect processes in other
jails, preventing the running of postmasters on the same port in different jails.)
FreeBSD versions before 4.0 work like OpenBSD (see below).
NetBSD
In NetBSD 5.0 and later, IPC parameters can be adjusted using
sysctl
,for example:
$ sysctl -w kern.ipc.shmmax=16777216
To have these settings persist over reboots, modify
/etc/sysctl.conf
.
You might also want to configure your kernel to lock shared memory into RAM and prevent
it from being paged out to swap. This can be accomplished using the
sysctl
setting
kern.ipc.shm_use_phys
.
NetBSD versions before 5.0 work like OpenBSD (see below), except that parameters should be
set with the keyword
options
not
option
.
444
Chapter 17. Server Setup and Operation
OpenBSD
The options
SYSVSHM
and
SYSVSEM
need to be enabled when the kernel is compiled. (They are
by default.) The maximum size of shared memory is determined by the option
SHMMAXPGS
(in
pages). The following shows an example of how to set the various parameters:
option
SYSVSHM
option
SHMMAXPGS=4096
option
SHMSEG=256
option
SYSVSEM
option
SEMMNI=256
option
SEMMNS=512
option
SEMMNU=256
option
SEMMAP=256
You might also want to configure your kernel to lock shared memory into RAM and prevent
it from being paged out to swap. This can be accomplished using the
sysctl
setting
kern.ipc.shm_use_phys
.
HP-UX
The default settings tend to suffice for normal installations. On HP-UX 10, the factory default
for
SEMMNS
is 128, which might be too low for larger database sites.
IPC parameters can be set in the System Administration Manager (SAM) under Kernel
Configuration !Configurable Parameters. Choose Create A New Kernel when you’re
done.
Linux
The default maximum segment size is 32 MB, and the default maximum total size is 2097152
pages. A page is almost always 4096 bytes except in unusual kernel configurations with “huge
pages” (use
getconf PAGE_SIZE
to verify).
Theshared memorysizesettings canbechangedviathe
sysctl
interface. For example, to allow
16 GB:
$ sysctl -w kernel.shmmax=17179869184
$ sysctl -w kernel.shmall=4194304
In addition these settings can be preserved between reboots in the file
/etc/sysctl.conf
.
Doingthat is highly recommended.
Ancient distributions might not have the
sysctl
program, but equivalent changes can be made
by manipulating the
/proc
file system:
$ echo 17179869184 >/proc/sys/kernel/shmmax
$ echo 4194304 >/proc/sys/kernel/shmall
The remaining defaults are quite generously sized, and usually do not require changes.
OS X
The recommended method for configuring shared memory in OS X is to create a file named
/etc/sysctl.conf
,containing variable assignments suchas:
kern.sysv.shmmax=4194304
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=1024
Note that in some OS X versions, all five shared-memory parameters must be set in
/etc/sysctl.conf
,else the values will be ignored.
445
Chapter 17. Server Setup and Operation
Beware that recent releases of OS X ignore attempts to set
SHMMAX
to a value that isn’t an exact
multiple of 4096.
SHMALL
is measured in 4 kB pages on this platform.
In older OS X versions, youwill needtoreboottohavechanges in the sharedmemoryparameters
take effect. As of 10.5 it is possible to change all but
SHMMNI
on the fly, using sysctl. But it’s
still best to set up your preferred values via
/etc/sysctl.conf
,sothat the values will be kept
across reboots.
The file
/etc/sysctl.conf
is only honored in OS X 10.3.9 and later. If you are running a
previous 10.3.x release, you must edit the file
/etc/rc
and change the values in the following
commands:
sysctl -w kern.sysv.shmmax
sysctl -w kern.sysv.shmmin
sysctl -w kern.sysv.shmmni
sysctl -w kern.sysv.shmseg
sysctl -w kern.sysv.shmall
Note that
/etc/rc
is usually overwritten byOS X system updates, soyoushould expect tohave
to redo these edits after each update.
In
OS
X
10.2
and
earlier, instead
edit these commands in
the file
/System/Library/StartupItems/SystemTuning/SystemTuning
.
SCO OpenServer
In the default configuration, only 512 kB of shared memory per segment is allowed. To in-
crease the setting, first change to the directory
/etc/conf/cf.d
.To display the current value
of
SHMMAX
,run:
./configure -y SHMMAX
To set a new value for
SHMMAX
,run:
./configure SHMMAX=
value
where
value
is the new value you want to use (in bytes). After setting
SHMMAX
, rebuild the
kernel:
./link_unix
andreboot.
Solaris 2.6 to 2.9 (Solaris 6 to Solaris 9)
The relevant settings can be changed in
/etc/system
,for example:
set shmsys:shminfo_shmmax=0x2000000
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=256
set shmsys:shminfo_shmseg=256
set semsys:seminfo_semmap=256
set semsys:seminfo_semmni=512
set semsys:seminfo_semmns=512
set semsys:seminfo_semmsl=32
You
need
to
reboot
for
the
changes
to
take
effect.
See
also
http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html
for
information on shared memory under older versions of Solaris.
446
Chapter 17. Server Setup and Operation
Solaris 2.10 (Solaris 10) and later
OpenSolaris
In Solaris 10 and later, and OpenSolaris, the default shared memory and semaphore settings are
goodenoughfor mostPostgreSQL applications. Solaris nowdefaults toa
SHMMAX
of one-quarter
of system RAM. Tofurther adjustthis setting, use a projectsettingassociatedwith the
postgres
user. For example, run the following as
root
:
projadd -c "PostgreSQL DB User" -K "project.max-shm-memory=(privileged,8GB,deny)" -U postgres -G postgres user.postgres
This command adds the
user.postgres
project and sets the sharedmemory maximum for the
postgres
user to 8GB, and takes effect the next time that user logs in, or when you restart
PostgreSQL (not reload). The above assumes that PostgreSQL is run by the
postgres
user in
the
postgres
group. No server reboot is required.
Other recommended kernel setting changes for database servers which will have a large number
of connections are:
project.max-shm-ids=(priv,32768,deny)
project.max-sem-ids=(priv,4096,deny)
project.max-msg-ids=(priv,4096,deny)
Additionally, if you are running PostgreSQL inside a zone, you may need to raise the zone
resource usage limits as well. See "Chapter2: Projects and Tasks" in the System Administrator’s
Guide for more information on
projects
and
prctl
.
UnixWare
OnUnixWare 7, the maximum size for shared memory segments is 512kB inthe defaultconfig-
uration. To display the current value of
SHMMAX
,run:
/etc/conf/bin/idtune -g SHMMAX
which displays the current, default, minimum, and maximum values. To set a new value for
SHMMAX
,run:
/etc/conf/bin/idtune SHMMAX
value
where
value
is the new value you want to use (in bytes). After setting
SHMMAX
, rebuild the
kernel:
/etc/conf/bin/idbuild -B
andreboot.
17.4.2. Resource Limits
Unix-like operating systems enforce various kinds of resource limits that might interfere with the
operation of your PostgreSQL server. Of particular importance are limits on the number of processes
per user, the number of open files per process, and the amount of memory available to each process.
Each of these have a “hard” and a “soft” limit. The soft limit is what actually counts but it can be
changed by the user up to the hard limit. The hard limit can only be changed by the root user. The
system call
setrlimit
is responsible for setting these parameters. The shell’s built-in command
ulimit
(Bourne shells) or
limit
(csh) is used to control the resource limits from the command line.
On BSD-derived systems the file
/etc/login.conf
controls the various resource limits set during
login. See the operating system documentation for details. The relevant parameters are
maxproc
,
openfiles
,and
datasize
.For example:
default:\
...
:datasize-cur=256M:\
:maxproc-cur=256:\
447
Documents you may be interested
Documents you may be interested