Class IngressControllerTuningOptions
- java.lang.Object
-
- io.fabric8.openshift.api.model.operator.v1.IngressControllerTuningOptions
-
- All Implemented Interfaces:
io.fabric8.kubernetes.api.builder.Editable<IngressControllerTuningOptionsBuilder>,io.fabric8.kubernetes.api.model.KubernetesResource,Serializable
@Generated("io.fabric8.kubernetes.schema.generator.model.ModelGenerator") public class IngressControllerTuningOptions extends Object implements io.fabric8.kubernetes.api.builder.Editable<IngressControllerTuningOptionsBuilder>, io.fabric8.kubernetes.api.model.KubernetesResource
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description IngressControllerTuningOptions()No args constructor for use in serializationIngressControllerTuningOptions(String clientFinTimeout, String clientTimeout, String connectTimeout, Integer headerBufferBytes, Integer headerBufferMaxRewriteBytes, String healthCheckInterval, Integer maxConnections, String reloadInterval, String serverFinTimeout, String serverTimeout, Integer threadCount, String tlsInspectDelay, String tunnelTimeout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IngressControllerTuningOptionsBuilderedit()Map<String,Object>getAdditionalProperties()StringgetClientFinTimeout()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsStringgetClientTimeout()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsStringgetConnectTimeout()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsIntegergetHeaderBufferBytes()headerBufferBytes describes how much memory should be reserved (in bytes) for IngressController connection sessions.IntegergetHeaderBufferMaxRewriteBytes()headerBufferMaxRewriteBytes describes how much memory should be reserved (in bytes) from headerBufferBytes for HTTP header rewriting and appending for IngressController connection sessions.StringgetHealthCheckInterval()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsIntegergetMaxConnections()maxConnections defines the maximum number of simultaneous connections that can be established per HAProxy process.StringgetReloadInterval()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsStringgetServerFinTimeout()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsStringgetServerTimeout()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsIntegergetThreadCount()threadCount defines the number of threads created per HAProxy process.StringgetTlsInspectDelay()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsStringgetTunnelTimeout()IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetAdditionalProperties(Map<String,Object> additionalProperties)voidsetAdditionalProperty(String name, Object value)voidsetClientFinTimeout(String clientFinTimeout)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetClientTimeout(String clientTimeout)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetConnectTimeout(String connectTimeout)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetHeaderBufferBytes(Integer headerBufferBytes)headerBufferBytes describes how much memory should be reserved (in bytes) for IngressController connection sessions.voidsetHeaderBufferMaxRewriteBytes(Integer headerBufferMaxRewriteBytes)headerBufferMaxRewriteBytes describes how much memory should be reserved (in bytes) from headerBufferBytes for HTTP header rewriting and appending for IngressController connection sessions.voidsetHealthCheckInterval(String healthCheckInterval)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetMaxConnections(Integer maxConnections)maxConnections defines the maximum number of simultaneous connections that can be established per HAProxy process.voidsetReloadInterval(String reloadInterval)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetServerFinTimeout(String serverFinTimeout)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetServerTimeout(String serverTimeout)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetThreadCount(Integer threadCount)threadCount defines the number of threads created per HAProxy process.voidsetTlsInspectDelay(String tlsInspectDelay)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsvoidsetTunnelTimeout(String tunnelTimeout)IngressControllerTuningOptions specifies options for tuning the performance of ingress controller podsIngressControllerTuningOptionsBuildertoBuilder()
-
-
-
Constructor Detail
-
IngressControllerTuningOptions
public IngressControllerTuningOptions()
No args constructor for use in serialization
-
IngressControllerTuningOptions
public IngressControllerTuningOptions(String clientFinTimeout, String clientTimeout, String connectTimeout, Integer headerBufferBytes, Integer headerBufferMaxRewriteBytes, String healthCheckInterval, Integer maxConnections, String reloadInterval, String serverFinTimeout, String serverTimeout, Integer threadCount, String tlsInspectDelay, String tunnelTimeout)
-
-
Method Detail
-
getClientFinTimeout
public String getClientFinTimeout()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setClientFinTimeout
public void setClientFinTimeout(String clientFinTimeout)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getClientTimeout
public String getClientTimeout()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setClientTimeout
public void setClientTimeout(String clientTimeout)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getConnectTimeout
public String getConnectTimeout()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setConnectTimeout
public void setConnectTimeout(String connectTimeout)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getHeaderBufferBytes
public Integer getHeaderBufferBytes()
headerBufferBytes describes how much memory should be reserved (in bytes) for IngressController connection sessions. Note that this value must be at least 16384 if HTTP/2 is enabled for the IngressController (https://tools.ietf.org/html/rfc7540). If this field is empty, the IngressController will use a default value of 32768 bytes.Setting this field is generally not recommended as headerBufferBytes values that are too small may break the IngressController and headerBufferBytes values that are too large could cause the IngressController to use significantly more memory than necessary.
-
setHeaderBufferBytes
public void setHeaderBufferBytes(Integer headerBufferBytes)
headerBufferBytes describes how much memory should be reserved (in bytes) for IngressController connection sessions. Note that this value must be at least 16384 if HTTP/2 is enabled for the IngressController (https://tools.ietf.org/html/rfc7540). If this field is empty, the IngressController will use a default value of 32768 bytes.Setting this field is generally not recommended as headerBufferBytes values that are too small may break the IngressController and headerBufferBytes values that are too large could cause the IngressController to use significantly more memory than necessary.
-
getHeaderBufferMaxRewriteBytes
public Integer getHeaderBufferMaxRewriteBytes()
headerBufferMaxRewriteBytes describes how much memory should be reserved (in bytes) from headerBufferBytes for HTTP header rewriting and appending for IngressController connection sessions. Note that incoming HTTP requests will be limited to (headerBufferBytes - headerBufferMaxRewriteBytes) bytes, meaning headerBufferBytes must be greater than headerBufferMaxRewriteBytes. If this field is empty, the IngressController will use a default value of 8192 bytes.Setting this field is generally not recommended as headerBufferMaxRewriteBytes values that are too small may break the IngressController and headerBufferMaxRewriteBytes values that are too large could cause the IngressController to use significantly more memory than necessary.
-
setHeaderBufferMaxRewriteBytes
public void setHeaderBufferMaxRewriteBytes(Integer headerBufferMaxRewriteBytes)
headerBufferMaxRewriteBytes describes how much memory should be reserved (in bytes) from headerBufferBytes for HTTP header rewriting and appending for IngressController connection sessions. Note that incoming HTTP requests will be limited to (headerBufferBytes - headerBufferMaxRewriteBytes) bytes, meaning headerBufferBytes must be greater than headerBufferMaxRewriteBytes. If this field is empty, the IngressController will use a default value of 8192 bytes.Setting this field is generally not recommended as headerBufferMaxRewriteBytes values that are too small may break the IngressController and headerBufferMaxRewriteBytes values that are too large could cause the IngressController to use significantly more memory than necessary.
-
getHealthCheckInterval
public String getHealthCheckInterval()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setHealthCheckInterval
public void setHealthCheckInterval(String healthCheckInterval)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getMaxConnections
public Integer getMaxConnections()
maxConnections defines the maximum number of simultaneous connections that can be established per HAProxy process. Increasing this value allows each ingress controller pod to handle more connections but at the cost of additional system resources being consumed.Permitted values are: empty, 0, -1, and the range 2000-2000000.
If this field is empty or 0, the IngressController will use the default value of 50000, but the default is subject to change in future releases.
If the value is -1 then HAProxy will dynamically compute a maximum value based on the available ulimits in the running container. Selecting -1 (i.e., auto) will result in a large value being computed (~520000 on OpenShift >=4.10 clusters) and therefore each HAProxy process will incur significant memory usage compared to the current default of 50000.
Setting a value that is greater than the current operating system limit will prevent the HAProxy process from starting.
If you choose a discrete value (e.g., 750000) and the router pod is migrated to a new node, there's no guarantee that that new node has identical ulimits configured. In such a scenario the pod would fail to start. If you have nodes with different ulimits configured (e.g., different tuned profiles) and you choose a discrete value then the guidance is to use -1 and let the value be computed dynamically at runtime.
You can monitor memory usage for router containers with the following metric: 'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}'.
You can monitor memory usage of individual HAProxy processes in router containers with the following metric: 'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}/container_processes{container="router",namespace="openshift-ingress"}'.
-
setMaxConnections
public void setMaxConnections(Integer maxConnections)
maxConnections defines the maximum number of simultaneous connections that can be established per HAProxy process. Increasing this value allows each ingress controller pod to handle more connections but at the cost of additional system resources being consumed.Permitted values are: empty, 0, -1, and the range 2000-2000000.
If this field is empty or 0, the IngressController will use the default value of 50000, but the default is subject to change in future releases.
If the value is -1 then HAProxy will dynamically compute a maximum value based on the available ulimits in the running container. Selecting -1 (i.e., auto) will result in a large value being computed (~520000 on OpenShift >=4.10 clusters) and therefore each HAProxy process will incur significant memory usage compared to the current default of 50000.
Setting a value that is greater than the current operating system limit will prevent the HAProxy process from starting.
If you choose a discrete value (e.g., 750000) and the router pod is migrated to a new node, there's no guarantee that that new node has identical ulimits configured. In such a scenario the pod would fail to start. If you have nodes with different ulimits configured (e.g., different tuned profiles) and you choose a discrete value then the guidance is to use -1 and let the value be computed dynamically at runtime.
You can monitor memory usage for router containers with the following metric: 'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}'.
You can monitor memory usage of individual HAProxy processes in router containers with the following metric: 'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}/container_processes{container="router",namespace="openshift-ingress"}'.
-
getReloadInterval
public String getReloadInterval()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setReloadInterval
public void setReloadInterval(String reloadInterval)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getServerFinTimeout
public String getServerFinTimeout()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setServerFinTimeout
public void setServerFinTimeout(String serverFinTimeout)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getServerTimeout
public String getServerTimeout()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setServerTimeout
public void setServerTimeout(String serverTimeout)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getThreadCount
public Integer getThreadCount()
threadCount defines the number of threads created per HAProxy process. Creating more threads allows each ingress controller pod to handle more connections, at the cost of more system resources being used. HAProxy currently supports up to 64 threads. If this field is empty, the IngressController will use the default value. The current default is 4 threads, but this may change in future releases.Setting this field is generally not recommended. Increasing the number of HAProxy threads allows ingress controller pods to utilize more CPU time under load, potentially starving other pods if set too high. Reducing the number of threads may cause the ingress controller to perform poorly.
-
setThreadCount
public void setThreadCount(Integer threadCount)
threadCount defines the number of threads created per HAProxy process. Creating more threads allows each ingress controller pod to handle more connections, at the cost of more system resources being used. HAProxy currently supports up to 64 threads. If this field is empty, the IngressController will use the default value. The current default is 4 threads, but this may change in future releases.Setting this field is generally not recommended. Increasing the number of HAProxy threads allows ingress controller pods to utilize more CPU time under load, potentially starving other pods if set too high. Reducing the number of threads may cause the ingress controller to perform poorly.
-
getTlsInspectDelay
public String getTlsInspectDelay()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setTlsInspectDelay
public void setTlsInspectDelay(String tlsInspectDelay)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
getTunnelTimeout
public String getTunnelTimeout()
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
setTunnelTimeout
public void setTunnelTimeout(String tunnelTimeout)
IngressControllerTuningOptions specifies options for tuning the performance of ingress controller pods
-
edit
public IngressControllerTuningOptionsBuilder edit()
- Specified by:
editin interfaceio.fabric8.kubernetes.api.builder.Editable<IngressControllerTuningOptionsBuilder>
-
toBuilder
public IngressControllerTuningOptionsBuilder toBuilder()
-
-