Merge "Change schedule priority of daemon/server in config"
This commit is contained in:
commit
4992c7d399
@ -125,6 +125,18 @@ You can set fallocate_reserve to the number of bytes or percentage of disk
|
|||||||
space you'd like fallocate to reserve, whether there is space for the given
|
space you'd like fallocate to reserve, whether there is space for the given
|
||||||
file size or not. Percentage will be used if the value ends with a '%'.
|
file size or not. Percentage will be used if the value ends with a '%'.
|
||||||
The default is 1%.
|
The default is 1%.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -172,6 +184,18 @@ To handle all verbs, including replication verbs, do not specify
|
|||||||
set to a true value (e.g. "true" or "1"). To handle only non-replication
|
set to a true value (e.g. "true" or "1"). To handle only non-replication
|
||||||
verbs, set to "false". Unless you have a separate replication network, you
|
verbs, set to "false". Unless you have a separate replication network, you
|
||||||
should not specify any value for "replication_server". The default is empty.
|
should not specify any value for "replication_server". The default is empty.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -281,6 +305,18 @@ Format of the rysnc module where the replicator will send data. See
|
|||||||
etc/rsyncd.conf-sample for some usage examples.
|
etc/rsyncd.conf-sample for some usage examples.
|
||||||
.IP \fBrecon_cache_path\fR
|
.IP \fBrecon_cache_path\fR
|
||||||
Path to recon cache directory. The default is /var/cache/swift.
|
Path to recon cache directory. The default is /var/cache/swift.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
|
||||||
@ -303,6 +339,18 @@ Will audit, at most, 1 account per device per interval. The default is 1800 seco
|
|||||||
Maximum accounts audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 200.
|
Maximum accounts audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 200.
|
||||||
.IP \fBrecon_cache_path\fR
|
.IP \fBrecon_cache_path\fR
|
||||||
Path to recon cache directory. The default is /var/cache/swift.
|
Path to recon cache directory. The default is /var/cache/swift.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
|
||||||
@ -339,6 +387,18 @@ You can search logs for this message if space is not being reclaimed
|
|||||||
after you delete account(s).
|
after you delete account(s).
|
||||||
Default is 2592000 seconds (30 days). This is in addition to any time
|
Default is 2592000 seconds (30 days). This is in addition to any time
|
||||||
requested by delay_reaping.
|
requested by delay_reaping.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
|
@ -131,6 +131,18 @@ You can set fallocate_reserve to the number of bytes or percentage of disk
|
|||||||
space you'd like fallocate to reserve, whether there is space for the given
|
space you'd like fallocate to reserve, whether there is space for the given
|
||||||
file size or not. Percentage will be used if the value ends with a '%'.
|
file size or not. Percentage will be used if the value ends with a '%'.
|
||||||
The default is 1%.
|
The default is 1%.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -184,6 +196,18 @@ To handle all verbs, including replication verbs, do not specify
|
|||||||
set to a True value (e.g. "True" or "1"). To handle only non-replication
|
set to a True value (e.g. "True" or "1"). To handle only non-replication
|
||||||
verbs, set to "False". Unless you have a separate replication network, you
|
verbs, set to "False". Unless you have a separate replication network, you
|
||||||
should not specify any value for "replication_server".
|
should not specify any value for "replication_server".
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -293,6 +317,18 @@ Format of the rysnc module where the replicator will send data. See
|
|||||||
etc/rsyncd.conf-sample for some usage examples.
|
etc/rsyncd.conf-sample for some usage examples.
|
||||||
.IP \fBrecon_cache_path\fR
|
.IP \fBrecon_cache_path\fR
|
||||||
Path to recon cache directory. The default is /var/cache/swift.
|
Path to recon cache directory. The default is /var/cache/swift.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
|
||||||
@ -322,6 +358,18 @@ Slowdown will sleep that amount between containers. The default is 0.01 seconds.
|
|||||||
Seconds to suppress updating an account that has generated an error. The default is 60 seconds.
|
Seconds to suppress updating an account that has generated an error. The default is 60 seconds.
|
||||||
.IP \fBrecon_cache_path\fR
|
.IP \fBrecon_cache_path\fR
|
||||||
Path to recon cache directory. The default is /var/cache/swift.
|
Path to recon cache directory. The default is /var/cache/swift.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -344,6 +392,18 @@ Will audit, at most, 1 container per device per interval. The default is 1800 se
|
|||||||
Maximum containers audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 200.
|
Maximum containers audited per second. Should be tuned according to individual system specs. 0 is unlimited. The default is 200.
|
||||||
.IP \fBrecon_cache_path\fR
|
.IP \fBrecon_cache_path\fR
|
||||||
Path to recon cache directory. The default is /var/cache/swift.
|
Path to recon cache directory. The default is /var/cache/swift.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
|
||||||
@ -372,6 +432,18 @@ Connection timeout to external services. The default is 5 seconds.
|
|||||||
Server errors from requests will be retried by default. The default is 3.
|
Server errors from requests will be retried by default. The default is 3.
|
||||||
.IP \fBinternal_client_conf_path\fR
|
.IP \fBinternal_client_conf_path\fR
|
||||||
Internal client config file path.
|
Internal client config file path.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
|
@ -88,6 +88,18 @@ The default is 1.
|
|||||||
The default is 1.
|
The default is 1.
|
||||||
.IP \fBlog_statsd_metric_prefix\fR
|
.IP \fBlog_statsd_metric_prefix\fR
|
||||||
The default is empty.
|
The default is empty.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -115,6 +127,18 @@ that are acceptable within this section.
|
|||||||
.IP "\fBuse\fR"
|
.IP "\fBuse\fR"
|
||||||
Entry point for paste.deploy for the object server. This is the reference to the installed python egg.
|
Entry point for paste.deploy for the object server. This is the reference to the installed python egg.
|
||||||
The default is \fBegg:swift#proxy\fR. See proxy-server.conf-sample for options or See proxy-server.conf manpage.
|
The default is \fBegg:swift#proxy\fR. See proxy-server.conf-sample for options or See proxy-server.conf manpage.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
|
@ -142,6 +142,18 @@ backend node. The default is 60.
|
|||||||
The default is 65536.
|
The default is 65536.
|
||||||
.IP \fBdisk_chunk_size\fR
|
.IP \fBdisk_chunk_size\fR
|
||||||
The default is 65536.
|
The default is 65536.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -233,6 +245,24 @@ version 3.0 or greater. If you set "splice = yes" but the kernel
|
|||||||
does not support it, error messages will appear in the object server
|
does not support it, error messages will appear in the object server
|
||||||
logs at startup, but your object servers should continue to function.
|
logs at startup, but your object servers should continue to function.
|
||||||
The default is false.
|
The default is false.
|
||||||
|
.IP \fBnode_timeout\fR
|
||||||
|
Request timeout to external services. The default is 3 seconds.
|
||||||
|
.IP \fBconn_timeout\fR
|
||||||
|
Connection timeout to external services. The default is 0.5 seconds.
|
||||||
|
.IP \fBcontainer_update_timeout\fR
|
||||||
|
Time to wait while sending a container update on object update. The default is 1 second.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -386,6 +416,18 @@ The handoffs_first and handoff_delete are options for a special case
|
|||||||
such as disk full in the cluster. These two options SHOULD NOT BE
|
such as disk full in the cluster. These two options SHOULD NOT BE
|
||||||
CHANGED, except for such an extreme situations. (e.g. disks filled up
|
CHANGED, except for such an extreme situations. (e.g. disks filled up
|
||||||
or are about to fill up. Anyway, DO NOT let your drives fill up).
|
or are about to fill up. Anyway, DO NOT let your drives fill up).
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
|
||||||
@ -461,6 +503,18 @@ Slowdown will sleep that amount between objects. The default is 0.01 seconds.
|
|||||||
The recon_cache_path simply sets the directory where stats for a few items will be stored.
|
The recon_cache_path simply sets the directory where stats for a few items will be stored.
|
||||||
Depending on the method of deployment you may need to create this directory manually
|
Depending on the method of deployment you may need to create this directory manually
|
||||||
and ensure that swift has read/write. The default is /var/cache/swift.
|
and ensure that swift has read/write. The default is /var/cache/swift.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -503,6 +557,18 @@ points and report the result after a full scan.
|
|||||||
.IP \fBrsync_tempfile_timeout\fR
|
.IP \fBrsync_tempfile_timeout\fR
|
||||||
Time elapsed in seconds before rsync tempfiles will be unlinked. Config value of "auto"
|
Time elapsed in seconds before rsync tempfiles will be unlinked. Config value of "auto"
|
||||||
will try to use object-replicator's rsync_timeout + 900 or fall-back to 86400 (1 day).
|
will try to use object-replicator's rsync_timeout + 900 or fall-back to 86400 (1 day).
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
|
||||||
|
@ -143,6 +143,18 @@ This is very useful when one is managing more than one swift cluster.
|
|||||||
Use a comma separated list of full url (http://foo.bar:1234,https://foo.bar)
|
Use a comma separated list of full url (http://foo.bar:1234,https://foo.bar)
|
||||||
.IP \fBstrict_cors_mode\fR
|
.IP \fBstrict_cors_mode\fR
|
||||||
The default is true.
|
The default is true.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
@ -1030,6 +1042,24 @@ These are the headers whose values will only be shown to swift_owners. The
|
|||||||
exact definition of a swift_owner is up to the auth system in use, but
|
exact definition of a swift_owner is up to the auth system in use, but
|
||||||
usually indicates administrative responsibilities.
|
usually indicates administrative responsibilities.
|
||||||
The default is 'x-container-read, x-container-write, x-container-sync-key, x-container-sync-to, x-account-meta-temp-url-key, x-account-meta-temp-url-key-2, x-container-meta-temp-url-key, x-container-meta-temp-url-key-2, x-account-access-control'.
|
The default is 'x-container-read, x-container-write, x-container-sync-key, x-container-sync-to, x-account-meta-temp-url-key, x-account-meta-temp-url-key-2, x-container-meta-temp-url-key, x-container-meta-temp-url-key-2, x-account-access-control'.
|
||||||
|
.IP \fBrate_limit_after_segment\fR
|
||||||
|
Start rate-limiting object segments after the Nth segment of a segmented
|
||||||
|
object. The default is 10 segments.
|
||||||
|
.IP \fBrate_limit_segments_per_sec\fR
|
||||||
|
Once segment rate-limiting kicks in for an object, limit segments served to N
|
||||||
|
per second. The default is 1.
|
||||||
|
.IP \fBnice_priority\fR
|
||||||
|
Modify scheduling priority of server processes. Niceness values range from -20
|
||||||
|
(most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
The default does not modify priority.
|
||||||
|
.IP \fBionice_class\fR
|
||||||
|
Modify I/O scheduling class of server processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE. The default does not modify class and priority.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
.IP \fBionice_priority\fR
|
||||||
|
Modify I/O scheduling priority of server processes. I/O niceness priority
|
||||||
|
is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
the I/O priority of the process. Work only with ionice_class.
|
||||||
.RE
|
.RE
|
||||||
.PD
|
.PD
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
================
|
|
||||||
Deployment Guide
|
Deployment Guide
|
||||||
================
|
================
|
||||||
|
|
||||||
@ -515,6 +515,25 @@ network_chunk_size 65536 Size of chunks to read/write over t
|
|||||||
disk_chunk_size 65536 Size of chunks to read/write to disk
|
disk_chunk_size 65536 Size of chunks to read/write to disk
|
||||||
container_update_timeout 1 Time to wait while sending a container
|
container_update_timeout 1 Time to wait while sending a container
|
||||||
update on object update.
|
update on object update.
|
||||||
|
nice_priority None Scheduling priority of server processes.
|
||||||
|
Niceness values range from -20 (most
|
||||||
|
favorable to the process) to 19 (least
|
||||||
|
favorable to the process). The default
|
||||||
|
does not modify priority.
|
||||||
|
ionice_class None I/O scheduling class of server processes.
|
||||||
|
I/O niceness class values are IOPRIO_CLASS_RT,
|
||||||
|
IOPRIO_CLASS_BE, and IOPRIO_CLASS_IDLE.
|
||||||
|
The default does not modify class and
|
||||||
|
priority. Linux supports io scheduling
|
||||||
|
priorities and classes since 2.6.13 with
|
||||||
|
the CFQ io scheduler.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
ionice_priority None I/O scheduling priority of server
|
||||||
|
processes. I/O niceness priority is
|
||||||
|
a number which goes from 0 to 7.
|
||||||
|
The higher the value, the lower the I/O
|
||||||
|
priority of the process. Work only with
|
||||||
|
ionice_class.
|
||||||
================================ ========== ==========================================
|
================================ ========== ==========================================
|
||||||
|
|
||||||
.. _object-server-options:
|
.. _object-server-options:
|
||||||
@ -821,6 +840,24 @@ db_preallocation off If you don't mind the extra disk sp
|
|||||||
in overhead, you can turn this on to preallocate
|
in overhead, you can turn this on to preallocate
|
||||||
disk space with SQLite databases to decrease
|
disk space with SQLite databases to decrease
|
||||||
fragmentation.
|
fragmentation.
|
||||||
|
nice_priority None Scheduling priority of server processes.
|
||||||
|
Niceness values range from -20 (most
|
||||||
|
favorable to the process) to 19 (least
|
||||||
|
favorable to the process). The default
|
||||||
|
does not modify priority.
|
||||||
|
ionice_class None I/O scheduling class of server processes.
|
||||||
|
I/O niceness class values are IOPRIO_CLASS_RT,
|
||||||
|
IOPRIO_CLASS_BE, and IOPRIO_CLASS_IDLE.
|
||||||
|
The default does not modify class and
|
||||||
|
priority. Linux supports io scheduling
|
||||||
|
priorities and classes since 2.6.13
|
||||||
|
with the CFQ io scheduler.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
ionice_priority None I/O scheduling priority of server processes.
|
||||||
|
I/O niceness priority is a number which
|
||||||
|
goes from 0 to 7. The higher the value,
|
||||||
|
the lower the I/O priority of the process.
|
||||||
|
Work only with ionice_class.
|
||||||
=============================== ========== ============================================
|
=============================== ========== ============================================
|
||||||
|
|
||||||
[container-server]
|
[container-server]
|
||||||
@ -1035,6 +1072,24 @@ fallocate_reserve 1% You can set fallocate_reserve to th
|
|||||||
they completely run out of space; you can
|
they completely run out of space; you can
|
||||||
make the services pretend they're out of
|
make the services pretend they're out of
|
||||||
space early.
|
space early.
|
||||||
|
nice_priority None Scheduling priority of server processes.
|
||||||
|
Niceness values range from -20 (most
|
||||||
|
favorable to the process) to 19 (least
|
||||||
|
favorable to the process). The default
|
||||||
|
does not modify priority.
|
||||||
|
ionice_class None I/O scheduling class of server processes.
|
||||||
|
I/O niceness class values are IOPRIO_CLASS_RT,
|
||||||
|
IOPRIO_CLASS_BE, and IOPRIO_CLASS_IDLE.
|
||||||
|
The default does not modify class and
|
||||||
|
priority. Linux supports io scheduling
|
||||||
|
priorities and classes since 2.6.13 with
|
||||||
|
the CFQ io scheduler.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
ionice_priority None I/O scheduling priority of server processes.
|
||||||
|
I/O niceness priority is a number which
|
||||||
|
goes from 0 to 7. The higher the value,
|
||||||
|
the lower the I/O priority of the process.
|
||||||
|
Work only with ionice_class.
|
||||||
=============================== ========== =============================================
|
=============================== ========== =============================================
|
||||||
|
|
||||||
[account-server]
|
[account-server]
|
||||||
@ -1276,6 +1331,28 @@ disallowed_sections swift.valid_api_versions Allows the abili
|
|||||||
the dict level with a ".".
|
the dict level with a ".".
|
||||||
expiring_objects_container_divisor 86400
|
expiring_objects_container_divisor 86400
|
||||||
expiring_objects_account_name expiring_objects
|
expiring_objects_account_name expiring_objects
|
||||||
|
nice_priority None Scheduling priority of server
|
||||||
|
processes.
|
||||||
|
Niceness values range from -20 (most
|
||||||
|
favorable to the process) to 19 (least
|
||||||
|
favorable to the process). The default
|
||||||
|
does not modify priority.
|
||||||
|
ionice_class None I/O scheduling class of server
|
||||||
|
processes. I/O niceness class values
|
||||||
|
are IOPRIO_CLASS_RT, IOPRIO_CLASS_BE and
|
||||||
|
IOPRIO_CLASS_IDLE.
|
||||||
|
The default does not
|
||||||
|
modify class and priority. Linux
|
||||||
|
supports io scheduling priorities
|
||||||
|
and classes since 2.6.13 with
|
||||||
|
the CFQ io scheduler.
|
||||||
|
Work only with ionice_priority.
|
||||||
|
ionice_priority None I/O scheduling priority of server
|
||||||
|
processes. I/O niceness priority is
|
||||||
|
a number which goes from 0 to 7.
|
||||||
|
The higher the value, the lower
|
||||||
|
the I/O priority of the process.
|
||||||
|
Work only with ionice_class.
|
||||||
==================================== ======================== ========================================
|
==================================== ======================== ========================================
|
||||||
|
|
||||||
[proxy-server]
|
[proxy-server]
|
||||||
@ -1542,6 +1619,16 @@ more workers, raising the number of workers and lowering the maximum number of
|
|||||||
clients serviced per worker can lessen the impact of CPU intensive or stalled
|
clients serviced per worker can lessen the impact of CPU intensive or stalled
|
||||||
requests.
|
requests.
|
||||||
|
|
||||||
|
The `nice_priority` parameter can be used to set program scheduling priority.
|
||||||
|
The `ionice_class` and `ionice_priority` parameters can be used to set I/O scheduling
|
||||||
|
class and priority on the systems that use an I/O scheduler that supports
|
||||||
|
I/O priorities. As at kernel 2.6.17 the only such scheduler is the Completely
|
||||||
|
Fair Queuing (CFQ) I/O scheduler. If you run your Storage servers all together
|
||||||
|
on the same servers, you can slow down the auditors or prioritize
|
||||||
|
object-server I/O via these parameters (but probably do not need to change
|
||||||
|
it on the proxy). It is a new feature and the best practices are still
|
||||||
|
being developed.
|
||||||
|
|
||||||
The above configuration setting should be taken as suggestions and testing
|
The above configuration setting should be taken as suggestions and testing
|
||||||
of configuration settings should be done to ensure best utilization of CPU,
|
of configuration settings should be done to ensure best utilization of CPU,
|
||||||
network connectivity, and disk I/O.
|
network connectivity, and disk I/O.
|
||||||
|
@ -51,6 +51,18 @@ bind_port = 6202
|
|||||||
# space you'd like fallocate to reserve, whether there is space for the given
|
# space you'd like fallocate to reserve, whether there is space for the given
|
||||||
# file size or not. Percentage will be used if the value ends with a '%'.
|
# file size or not. Percentage will be used if the value ends with a '%'.
|
||||||
# fallocate_reserve = 1%
|
# fallocate_reserve = 1%
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
pipeline = healthcheck recon account-server
|
pipeline = healthcheck recon account-server
|
||||||
@ -73,6 +85,18 @@ use = egg:swift#account
|
|||||||
# verbs, set to "False". Unless you have a separate replication network, you
|
# verbs, set to "False". Unless you have a separate replication network, you
|
||||||
# should not specify any value for "replication_server". Default is empty.
|
# should not specify any value for "replication_server". Default is empty.
|
||||||
# replication_server = false
|
# replication_server = false
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[filter:healthcheck]
|
[filter:healthcheck]
|
||||||
use = egg:swift#healthcheck
|
use = egg:swift#healthcheck
|
||||||
@ -127,6 +151,18 @@ use = egg:swift#recon
|
|||||||
# rsync_module = {replication_ip}::account
|
# rsync_module = {replication_ip}::account
|
||||||
#
|
#
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[account-auditor]
|
[account-auditor]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -140,6 +176,18 @@ use = egg:swift#recon
|
|||||||
#
|
#
|
||||||
# accounts_per_second = 200
|
# accounts_per_second = 200
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[account-reaper]
|
[account-reaper]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -166,6 +214,18 @@ use = egg:swift#recon
|
|||||||
# Default is 2592000 seconds (30 days). This is in addition to any time
|
# Default is 2592000 seconds (30 days). This is in addition to any time
|
||||||
# requested by delay_reaping.
|
# requested by delay_reaping.
|
||||||
# reap_warn_after = 2592000
|
# reap_warn_after = 2592000
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
# Note: Put it at the beginning of the pipeline to profile all middleware. But
|
# Note: Put it at the beginning of the pipeline to profile all middleware. But
|
||||||
# it is safer to put this after healthcheck.
|
# it is safer to put this after healthcheck.
|
||||||
|
@ -22,6 +22,18 @@
|
|||||||
# log_statsd_default_sample_rate = 1.0
|
# log_statsd_default_sample_rate = 1.0
|
||||||
# log_statsd_sample_rate_factor = 1.0
|
# log_statsd_sample_rate_factor = 1.0
|
||||||
# log_statsd_metric_prefix =
|
# log_statsd_metric_prefix =
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[container-reconciler]
|
[container-reconciler]
|
||||||
# The reconciler will re-attempt reconciliation if the source object is not
|
# The reconciler will re-attempt reconciliation if the source object is not
|
||||||
@ -32,6 +44,18 @@
|
|||||||
# interval = 30
|
# interval = 30
|
||||||
# Server errors from requests will be retried by default
|
# Server errors from requests will be retried by default
|
||||||
# request_tries = 3
|
# request_tries = 3
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
pipeline = catch_errors proxy-logging cache proxy-server
|
pipeline = catch_errors proxy-logging cache proxy-server
|
||||||
|
@ -57,6 +57,18 @@ bind_port = 6201
|
|||||||
# space you'd like fallocate to reserve, whether there is space for the given
|
# space you'd like fallocate to reserve, whether there is space for the given
|
||||||
# file size or not. Percentage will be used if the value ends with a '%'.
|
# file size or not. Percentage will be used if the value ends with a '%'.
|
||||||
# fallocate_reserve = 1%
|
# fallocate_reserve = 1%
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
pipeline = healthcheck recon container-server
|
pipeline = healthcheck recon container-server
|
||||||
@ -82,6 +94,18 @@ use = egg:swift#container
|
|||||||
# verbs, set to "False". Unless you have a separate replication network, you
|
# verbs, set to "False". Unless you have a separate replication network, you
|
||||||
# should not specify any value for "replication_server".
|
# should not specify any value for "replication_server".
|
||||||
# replication_server = false
|
# replication_server = false
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[filter:healthcheck]
|
[filter:healthcheck]
|
||||||
use = egg:swift#healthcheck
|
use = egg:swift#healthcheck
|
||||||
@ -136,6 +160,18 @@ use = egg:swift#recon
|
|||||||
# rsync_module = {replication_ip}::container
|
# rsync_module = {replication_ip}::container
|
||||||
#
|
#
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[container-updater]
|
[container-updater]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -156,6 +192,18 @@ use = egg:swift#recon
|
|||||||
# account_suppression_time = 60
|
# account_suppression_time = 60
|
||||||
#
|
#
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[container-auditor]
|
[container-auditor]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -169,6 +217,18 @@ use = egg:swift#recon
|
|||||||
#
|
#
|
||||||
# containers_per_second = 200
|
# containers_per_second = 200
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[container-sync]
|
[container-sync]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -195,6 +255,18 @@ use = egg:swift#recon
|
|||||||
#
|
#
|
||||||
# Internal client config file path
|
# Internal client config file path
|
||||||
# internal_client_conf_path = /etc/swift/internal-client.conf
|
# internal_client_conf_path = /etc/swift/internal-client.conf
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
# Note: Put it at the beginning of the pipeline to profile all middleware. But
|
# Note: Put it at the beginning of the pipeline to profile all middleware. But
|
||||||
# it is safer to put this after healthcheck.
|
# it is safer to put this after healthcheck.
|
||||||
|
@ -25,6 +25,16 @@
|
|||||||
# log_statsd_default_sample_rate = 1.0
|
# log_statsd_default_sample_rate = 1.0
|
||||||
# log_statsd_sample_rate_factor = 1.0
|
# log_statsd_sample_rate_factor = 1.0
|
||||||
# log_statsd_metric_prefix =
|
# log_statsd_metric_prefix =
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are realtime, best-effort and idle. I/O niceness
|
||||||
|
# priority is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
# the I/O priority of the process. Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[object-expirer]
|
[object-expirer]
|
||||||
# interval = 300
|
# interval = 300
|
||||||
@ -51,6 +61,16 @@
|
|||||||
# queue.
|
# queue.
|
||||||
# reclaim_age = 604800
|
# reclaim_age = 604800
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are realtime, best-effort and idle. I/O niceness
|
||||||
|
# priority is a number which goes from 0 to 7. The higher the value, the lower
|
||||||
|
# the I/O priority of the process. Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
pipeline = catch_errors proxy-logging cache proxy-server
|
pipeline = catch_errors proxy-logging cache proxy-server
|
||||||
|
@ -68,6 +68,18 @@ bind_port = 6200
|
|||||||
#
|
#
|
||||||
# network_chunk_size = 65536
|
# network_chunk_size = 65536
|
||||||
# disk_chunk_size = 65536
|
# disk_chunk_size = 65536
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
pipeline = healthcheck recon object-server
|
pipeline = healthcheck recon object-server
|
||||||
@ -145,6 +157,18 @@ use = egg:swift#object
|
|||||||
# logs at startup, but your object servers should continue to function.
|
# logs at startup, but your object servers should continue to function.
|
||||||
#
|
#
|
||||||
# splice = no
|
# splice = no
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[filter:healthcheck]
|
[filter:healthcheck]
|
||||||
use = egg:swift#healthcheck
|
use = egg:swift#healthcheck
|
||||||
@ -233,6 +257,18 @@ use = egg:swift#recon
|
|||||||
# than or equal to this number. By default(auto), handoff partitions will be
|
# than or equal to this number. By default(auto), handoff partitions will be
|
||||||
# removed when it has successfully replicated to all the canonical nodes.
|
# removed when it has successfully replicated to all the canonical nodes.
|
||||||
# handoff_delete = auto
|
# handoff_delete = auto
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[object-reconstructor]
|
[object-reconstructor]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -261,6 +297,18 @@ use = egg:swift#recon
|
|||||||
# ring_check_interval = 15
|
# ring_check_interval = 15
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
# handoffs_first = False
|
# handoffs_first = False
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[object-updater]
|
[object-updater]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -276,6 +324,18 @@ use = egg:swift#recon
|
|||||||
# slowdown = 0.01
|
# slowdown = 0.01
|
||||||
#
|
#
|
||||||
# recon_cache_path = /var/cache/swift
|
# recon_cache_path = /var/cache/swift
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[object-auditor]
|
[object-auditor]
|
||||||
# You can override the default log routing for this app here (don't use set!):
|
# You can override the default log routing for this app here (don't use set!):
|
||||||
@ -301,6 +361,18 @@ use = egg:swift#recon
|
|||||||
# increment a counter for every object whose size is <= to the given break
|
# increment a counter for every object whose size is <= to the given break
|
||||||
# points and report the result after a full scan.
|
# points and report the result after a full scan.
|
||||||
# object_size_stats =
|
# object_size_stats =
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
# The auditor will cleanup old rsync tempfiles after they are "old
|
# The auditor will cleanup old rsync tempfiles after they are "old
|
||||||
# enough" to delete. You can configure the time elapsed in seconds
|
# enough" to delete. You can configure the time elapsed in seconds
|
||||||
|
@ -75,6 +75,18 @@ bind_port = 8080
|
|||||||
#
|
#
|
||||||
# client_timeout = 60
|
# client_timeout = 60
|
||||||
# eventlet_debug = false
|
# eventlet_debug = false
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[pipeline:main]
|
[pipeline:main]
|
||||||
# This sample pipeline uses tempauth and is used for SAIO dev work and
|
# This sample pipeline uses tempauth and is used for SAIO dev work and
|
||||||
@ -218,6 +230,18 @@ use = egg:swift#proxy
|
|||||||
# exact definition of a swift_owner is up to the auth system in use, but
|
# exact definition of a swift_owner is up to the auth system in use, but
|
||||||
# usually indicates administrative responsibilities.
|
# usually indicates administrative responsibilities.
|
||||||
# swift_owner_headers = x-container-read, x-container-write, x-container-sync-key, x-container-sync-to, x-account-meta-temp-url-key, x-account-meta-temp-url-key-2, x-container-meta-temp-url-key, x-container-meta-temp-url-key-2, x-account-access-control
|
# swift_owner_headers = x-container-read, x-container-write, x-container-sync-key, x-container-sync-to, x-account-meta-temp-url-key, x-account-meta-temp-url-key-2, x-container-meta-temp-url-key, x-container-meta-temp-url-key-2, x-account-access-control
|
||||||
|
#
|
||||||
|
# You can set scheduling priority of processes. Niceness values range from -20
|
||||||
|
# (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
# nice_priority =
|
||||||
|
#
|
||||||
|
# You can set I/O scheduling class and priority of processes. I/O niceness
|
||||||
|
# class values are IOPRIO_CLASS_RT (realtime), IOPRIO_CLASS_BE (best-effort) and
|
||||||
|
# IOPRIO_CLASS_IDLE (idle). I/O niceness priority is a number which goes from
|
||||||
|
# 0 to 7. The higher the value, the lower the I/O priority of the process.
|
||||||
|
# Work only with ionice_class.
|
||||||
|
# ionice_class =
|
||||||
|
# ionice_priority =
|
||||||
|
|
||||||
[filter:tempauth]
|
[filter:tempauth]
|
||||||
use = egg:swift#tempauth
|
use = egg:swift#tempauth
|
||||||
|
@ -88,6 +88,9 @@ def run_daemon(klass, conf_file, section_name='', once=False, **kwargs):
|
|||||||
log_to_console=kwargs.pop('verbose', False),
|
log_to_console=kwargs.pop('verbose', False),
|
||||||
log_route=section_name)
|
log_route=section_name)
|
||||||
|
|
||||||
|
# optional nice/ionice priority scheduling
|
||||||
|
utils.modify_priority(conf, logger)
|
||||||
|
|
||||||
# disable fallocate if desired
|
# disable fallocate if desired
|
||||||
if utils.config_true_value(conf.get('disable_fallocate', 'no')):
|
if utils.config_true_value(conf.get('disable_fallocate', 'no')):
|
||||||
utils.disable_fallocate()
|
utils.disable_fallocate()
|
||||||
|
@ -31,6 +31,7 @@ import sys
|
|||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
import functools
|
import functools
|
||||||
|
import platform
|
||||||
import email.parser
|
import email.parser
|
||||||
from hashlib import md5, sha1
|
from hashlib import md5, sha1
|
||||||
from random import random, shuffle
|
from random import random, shuffle
|
||||||
@ -92,6 +93,10 @@ _posix_fadvise = None
|
|||||||
_libc_socket = None
|
_libc_socket = None
|
||||||
_libc_bind = None
|
_libc_bind = None
|
||||||
_libc_accept = None
|
_libc_accept = None
|
||||||
|
# see man -s 2 setpriority
|
||||||
|
_libc_setpriority = None
|
||||||
|
# see man -s 2 syscall
|
||||||
|
_posix_syscall = None
|
||||||
|
|
||||||
# If set to non-zero, fallocate routines will fail based on free space
|
# If set to non-zero, fallocate routines will fail based on free space
|
||||||
# available being at or below this amount, in bytes.
|
# available being at or below this amount, in bytes.
|
||||||
@ -100,6 +105,53 @@ FALLOCATE_RESERVE = 0
|
|||||||
# the number of bytes (False).
|
# the number of bytes (False).
|
||||||
FALLOCATE_IS_PERCENT = False
|
FALLOCATE_IS_PERCENT = False
|
||||||
|
|
||||||
|
# from /usr/src/linux-headers-*/include/uapi/linux/resource.h
|
||||||
|
PRIO_PROCESS = 0
|
||||||
|
|
||||||
|
|
||||||
|
# /usr/include/x86_64-linux-gnu/asm/unistd_64.h defines syscalls there
|
||||||
|
# are many like it, but this one is mine, see man -s 2 ioprio_set
|
||||||
|
def NR_ioprio_set():
|
||||||
|
"""Give __NR_ioprio_set value for your system."""
|
||||||
|
architecture = os.uname()[4]
|
||||||
|
arch_bits = platform.architecture()[0]
|
||||||
|
# check if supported system, now support only x86_64
|
||||||
|
if architecture == 'x86_64' and arch_bits == '64bit':
|
||||||
|
return 251
|
||||||
|
raise OSError("Swift doesn't support ionice priority for %s %s" %
|
||||||
|
(architecture, arch_bits))
|
||||||
|
|
||||||
|
# this syscall integer probably only works on x86_64 linux systems, you
|
||||||
|
# can check if it's correct on yours with something like this:
|
||||||
|
"""
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
|
||||||
|
int main(int argc, const char* argv[]) {
|
||||||
|
printf("%d\n", __NR_ioprio_set);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
# this is the value for "which" that says our who value will be a pid
|
||||||
|
# pulled out of /usr/src/linux-headers-*/include/linux/ioprio.h
|
||||||
|
IOPRIO_WHO_PROCESS = 1
|
||||||
|
|
||||||
|
|
||||||
|
IO_CLASS_ENUM = {
|
||||||
|
'IOPRIO_CLASS_RT': 1,
|
||||||
|
'IOPRIO_CLASS_BE': 2,
|
||||||
|
'IOPRIO_CLASS_IDLE': 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
# the IOPRIO_PRIO_VALUE "macro" is also pulled from
|
||||||
|
# /usr/src/linux-headers-*/include/linux/ioprio.h
|
||||||
|
IOPRIO_CLASS_SHIFT = 13
|
||||||
|
|
||||||
|
|
||||||
|
def IOPRIO_PRIO_VALUE(class_, data):
|
||||||
|
return (((class_) << IOPRIO_CLASS_SHIFT) | data)
|
||||||
|
|
||||||
# Used by hash_path to offer a bit more security when generating hashes for
|
# Used by hash_path to offer a bit more security when generating hashes for
|
||||||
# paths. It simply appends this value to all paths; guessing the hash a path
|
# paths. It simply appends this value to all paths; guessing the hash a path
|
||||||
# will end up with would also require knowing this suffix.
|
# will end up with would also require knowing this suffix.
|
||||||
@ -382,7 +434,7 @@ def validate_configuration():
|
|||||||
|
|
||||||
|
|
||||||
def load_libc_function(func_name, log_error=True,
|
def load_libc_function(func_name, log_error=True,
|
||||||
fail_if_missing=False):
|
fail_if_missing=False, errcheck=False):
|
||||||
"""
|
"""
|
||||||
Attempt to find the function in libc, otherwise return a no-op func.
|
Attempt to find the function in libc, otherwise return a no-op func.
|
||||||
|
|
||||||
@ -390,10 +442,13 @@ def load_libc_function(func_name, log_error=True,
|
|||||||
:param log_error: log an error when a function can't be found
|
:param log_error: log an error when a function can't be found
|
||||||
:param fail_if_missing: raise an exception when a function can't be found.
|
:param fail_if_missing: raise an exception when a function can't be found.
|
||||||
Default behavior is to return a no-op function.
|
Default behavior is to return a no-op function.
|
||||||
|
:param errcheck: boolean, if true install a wrapper on the function
|
||||||
|
to check for a return values of -1 and call
|
||||||
|
ctype.get_errno and raise an OSError
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
libc = ctypes.CDLL(ctypes.util.find_library('c'), use_errno=True)
|
libc = ctypes.CDLL(ctypes.util.find_library('c'), use_errno=True)
|
||||||
return getattr(libc, func_name)
|
func = getattr(libc, func_name)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
if fail_if_missing:
|
if fail_if_missing:
|
||||||
raise
|
raise
|
||||||
@ -401,6 +456,14 @@ def load_libc_function(func_name, log_error=True,
|
|||||||
logging.warning(_("Unable to locate %s in libc. Leaving as a "
|
logging.warning(_("Unable to locate %s in libc. Leaving as a "
|
||||||
"no-op."), func_name)
|
"no-op."), func_name)
|
||||||
return noop_libc_function
|
return noop_libc_function
|
||||||
|
if errcheck:
|
||||||
|
def _errcheck(result, f, args):
|
||||||
|
if result == -1:
|
||||||
|
errcode = ctypes.get_errno()
|
||||||
|
raise OSError(errcode, os.strerror(errcode))
|
||||||
|
return result
|
||||||
|
func.errcheck = _errcheck
|
||||||
|
return func
|
||||||
|
|
||||||
|
|
||||||
def generate_trans_id(trans_id_suffix):
|
def generate_trans_id(trans_id_suffix):
|
||||||
@ -3897,3 +3960,69 @@ def get_md5_socket():
|
|||||||
raise IOError(ctypes.get_errno(), "Failed to accept MD5 socket")
|
raise IOError(ctypes.get_errno(), "Failed to accept MD5 socket")
|
||||||
|
|
||||||
return md5_sockfd
|
return md5_sockfd
|
||||||
|
|
||||||
|
|
||||||
|
def modify_priority(conf, logger):
|
||||||
|
"""
|
||||||
|
Modify priority by nice and ionice.
|
||||||
|
"""
|
||||||
|
|
||||||
|
global _libc_setpriority
|
||||||
|
if _libc_setpriority is None:
|
||||||
|
_libc_setpriority = load_libc_function('setpriority',
|
||||||
|
errcheck=True)
|
||||||
|
|
||||||
|
def _setpriority(nice_priority):
|
||||||
|
"""
|
||||||
|
setpriority for this pid
|
||||||
|
|
||||||
|
:param nice_priority: valid values are -19 to 20
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
_libc_setpriority(PRIO_PROCESS, os.getpid(),
|
||||||
|
int(nice_priority))
|
||||||
|
except (ValueError, OSError):
|
||||||
|
print(_("WARNING: Unable to modify scheduling priority of process."
|
||||||
|
" Keeping unchanged! Check logs for more info. "))
|
||||||
|
logger.exception('Unable to modify nice priority')
|
||||||
|
else:
|
||||||
|
logger.debug('set nice priority to %s' % nice_priority)
|
||||||
|
|
||||||
|
nice_priority = conf.get('nice_priority')
|
||||||
|
if nice_priority is not None:
|
||||||
|
_setpriority(nice_priority)
|
||||||
|
|
||||||
|
global _posix_syscall
|
||||||
|
if _posix_syscall is None:
|
||||||
|
_posix_syscall = load_libc_function('syscall', errcheck=True)
|
||||||
|
|
||||||
|
def _ioprio_set(io_class, io_priority):
|
||||||
|
"""
|
||||||
|
ioprio_set for this process
|
||||||
|
|
||||||
|
:param io_class: the I/O class component, can be
|
||||||
|
IOPRIO_CLASS_RT, IOPRIO_CLASS_BE,
|
||||||
|
or IOPRIO_CLASS_IDLE
|
||||||
|
:param io_priority: priority value in the I/O class
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
io_class = IO_CLASS_ENUM[io_class]
|
||||||
|
io_priority = int(io_priority)
|
||||||
|
_posix_syscall(NR_ioprio_set(),
|
||||||
|
IOPRIO_WHO_PROCESS,
|
||||||
|
os.getpid(),
|
||||||
|
IOPRIO_PRIO_VALUE(io_class, io_priority))
|
||||||
|
except (KeyError, ValueError, OSError):
|
||||||
|
print(_("WARNING: Unable to modify I/O scheduling class "
|
||||||
|
"and priority of process. Keeping unchanged! "
|
||||||
|
"Check logs for more info."))
|
||||||
|
logger.exception("Unable to modify ionice priority")
|
||||||
|
else:
|
||||||
|
logger.debug('set ionice class %s priority %s',
|
||||||
|
io_class, io_priority)
|
||||||
|
|
||||||
|
io_class = conf.get("ionice_class")
|
||||||
|
if io_class is None:
|
||||||
|
return
|
||||||
|
io_priority = conf.get("ionice_priority", 0)
|
||||||
|
_ioprio_set(io_class, io_priority)
|
||||||
|
@ -877,6 +877,9 @@ def run_wsgi(conf_path, app_section, *args, **kwargs):
|
|||||||
print(e)
|
print(e)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
# optional nice/ionice priority scheduling
|
||||||
|
utils.modify_priority(conf, logger)
|
||||||
|
|
||||||
servers_per_port = int(conf.get('servers_per_port', '0') or 0)
|
servers_per_port = int(conf.get('servers_per_port', '0') or 0)
|
||||||
|
|
||||||
# NOTE: for now servers_per_port is object-server-only; future work could
|
# NOTE: for now servers_per_port is object-server-only; future work could
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
"""Tests for swift.common.utils"""
|
"""Tests for swift.common.utils"""
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from test.unit import temptree
|
from test.unit import temptree, debug_logger
|
||||||
|
|
||||||
import ctypes
|
import ctypes
|
||||||
import contextlib
|
import contextlib
|
||||||
@ -3524,6 +3524,72 @@ cluster_dfw1 = http://dfw1.host/v1/
|
|||||||
if tempdir:
|
if tempdir:
|
||||||
shutil.rmtree(tempdir)
|
shutil.rmtree(tempdir)
|
||||||
|
|
||||||
|
def test_modify_priority(self):
|
||||||
|
pid = os.getpid()
|
||||||
|
logger = debug_logger()
|
||||||
|
called = {}
|
||||||
|
|
||||||
|
def _fake_setpriority(*args):
|
||||||
|
called['setpriority'] = args
|
||||||
|
|
||||||
|
def _fake_syscall(*args):
|
||||||
|
called['syscall'] = args
|
||||||
|
|
||||||
|
with patch('swift.common.utils._libc_setpriority',
|
||||||
|
_fake_setpriority), \
|
||||||
|
patch('swift.common.utils._posix_syscall', _fake_syscall):
|
||||||
|
called = {}
|
||||||
|
# not set / default
|
||||||
|
utils.modify_priority({}, logger)
|
||||||
|
self.assertEqual(called, {})
|
||||||
|
called = {}
|
||||||
|
# just nice
|
||||||
|
utils.modify_priority({'nice_priority': '1'}, logger)
|
||||||
|
self.assertEqual(called, {'setpriority': (0, pid, 1)})
|
||||||
|
called = {}
|
||||||
|
# just ionice class uses default priority 0
|
||||||
|
utils.modify_priority({'ionice_class': 'IOPRIO_CLASS_RT'}, logger)
|
||||||
|
self.assertEqual(called, {'syscall': (251, 1, pid, 1 << 13)})
|
||||||
|
called = {}
|
||||||
|
# just ionice priority is ignored
|
||||||
|
utils.modify_priority({'ionice_priority': '4'}, logger)
|
||||||
|
self.assertEqual(called, {})
|
||||||
|
called = {}
|
||||||
|
# bad ionice class
|
||||||
|
utils.modify_priority({'ionice_class': 'class_foo'}, logger)
|
||||||
|
self.assertEqual(called, {})
|
||||||
|
called = {}
|
||||||
|
# ionice class & priority
|
||||||
|
utils.modify_priority({
|
||||||
|
'ionice_class': 'IOPRIO_CLASS_BE',
|
||||||
|
'ionice_priority': '4',
|
||||||
|
}, logger)
|
||||||
|
self.assertEqual(called, {'syscall': (251, 1, pid, 2 << 13 | 4)})
|
||||||
|
called = {}
|
||||||
|
# all
|
||||||
|
utils.modify_priority({
|
||||||
|
'nice_priority': '-15',
|
||||||
|
'ionice_class': 'IOPRIO_CLASS_IDLE',
|
||||||
|
'ionice_priority': '6',
|
||||||
|
}, logger)
|
||||||
|
self.assertEqual(called, {
|
||||||
|
'setpriority': (0, pid, -15),
|
||||||
|
'syscall': (251, 1, pid, 3 << 13 | 6),
|
||||||
|
})
|
||||||
|
|
||||||
|
def test__NR_ioprio_set(self):
|
||||||
|
with patch('os.uname', return_value=('', '', '', '', 'x86_64')), \
|
||||||
|
patch('platform.architecture', return_value=('64bit', '')):
|
||||||
|
self.assertEqual(251, utils.NR_ioprio_set())
|
||||||
|
|
||||||
|
with patch('os.uname', return_value=('', '', '', '', 'x86_64')), \
|
||||||
|
patch('platform.architecture', return_value=('32bit', '')):
|
||||||
|
self.assertRaises(OSError, utils.NR_ioprio_set)
|
||||||
|
|
||||||
|
with patch('os.uname', return_value=('', '', '', '', 'alpha')), \
|
||||||
|
patch('platform.architecture', return_value=('64bit', '')):
|
||||||
|
self.assertRaises(OSError, utils.NR_ioprio_set)
|
||||||
|
|
||||||
|
|
||||||
class ResellerConfReader(unittest.TestCase):
|
class ResellerConfReader(unittest.TestCase):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user