¿En qué archivo se encuentran los parámetros jvm de configuración de resina?
1. Instalación de resina y configuración de inicio automático
Crear e iniciar automáticamente.
CP contrib/init .resin/etc/RC d/init d/resin
vi /etc/rc.d/init.d/resin
<. p>Establezca la ruta correctaJAVA _ HOME =/usr/local/JDK 1 6 0 _ 13
RESIN _ HOME =/usr/local/RESIN-3.1. 8
Otorga permisos ejecutables.
chmod x /etc/rc.d/init.d/resin
Agregar como servicio de inicio automático:
chkconfig - agregar resina
Inicio de resina chkconfig-nivel 35
Inicio de resina de servicio
Resolver error de inicio del servicio: log_daemon_msg: comando no encontrado.
Comente el lugar donde se llama la función y reemplácelo con echo. Por ejemplo:
log_daemon_msg "Resin Start"
Reemplazado
echo "Resin Start"
Después de la modificación, puede utilizar el servicio Resin Start/Stop/restart para ejecutar comandos relacionados.
2. Establezca los parámetros de resin.conf y la configuración de JVM.
ltJVM-arg gt; -xmx 4096m lt;/JVM-arg gt;
ltJVM-arg gt; -xms 4096m lt;/JVM-arg gt;
ltJVM-arg > -xmn 512M lt;/JVM-arg >>p>
ltJVM-arg > -XSS 50m lt;/JVM-arg >>p> -arg > > ltJVM-arg > -XX: ratio de supervivientes = 8 lt;/JVM-arg >>p>
ltJVM-arg >-XX: MaxTenuringThreshold = 7 lt;/JVM-arg >>p >
ltJVM-arg > - XX: GCTimeRatio = 19 lt;/JVM-arg >>p>
ltJVM-arg >-XX: UseParNewGC lt;/JVM-arg >>p >
ltJVM-arg > -XX: UseConcMarkSweepGC lt ;/JVM-arg
ltJVM-arg >
ltJVM-arg > -XX: cmssclassunloadingenabled lt;/JVM-arg
ltJVM-arg >-XX: UseCMSCompactAtFullCollection lt;/JVM-arg >>p>
ltJVM-arg > lt; -XX: cmsfullgcsbeforecumption = 2 lt; /JVM-arg >
ltJVM-arg > -XX: DisableExplicitGC lt; /JVM-arg
ltJVM-arg >-XX: CMS iniciando fracción de ocupación = 70 lt;/JVM-arg >
ltJVM-arg > -XX: SoftRefLRUPolicyMSPerMB = 0 lt ;/JVM-arg >>p>
ltJVM-arg > /p>
ltJVM-arg > -XX: printgdetails lt;/JVM-arg
ltJVM-arg > - XX: printgcstimestamps lt;/JVM-arg > gt;
-XX: printgapplicationconcurrenttimelt;/JVM-arggt;
ltJVM-arggt;-XX: printgapplicationstoppedtimelt;/JVM-arggt;
ltJVM-arggt;-Xloggc :log/GC log. lt;/JVM-arg gt;
ltJVM-arg gt;- . Administración remota de JMX lt;/JVM-arg gt;
Configuración de ajustes de memoria:
ltmemory-free-min gt; 5M lt/memory-free-min gt;
Número máximo de subprocesos
lt! -Número máximo de hilos. - gt;
ltthread-max gt;1024lt/thread-max gt;
lt! - Configurar el tiempo de espera del socket - gt;
lt socket timeout gt65s lt/socket-time out gt;
Configurar la conexión más activa y el tiempo de espera
lt! -Configurar keepalive-gt;
ltkeepalive-max gt; 2048 lt/keepalive-max gt;
keepalive-time out gt; 15s lt;/keepalive-time out gt;
3. Configure jconsole para monitorear JVM
$ Java _ home/JRE/lib/management/JMX remoto es el archivo para configurar el usuario y la contraseña cuando se conecta de forma remota. .
CP $ JAVA _ HOME/JRE/lib/management/contraseña remota JMX .plantilla $ JAVA _ HOME/jconsole/contraseña remota JMX
chmod 600 $ JAVA _ HOME/. jconsole/JMX remoto .contraseña
vi jmxremote.password
Elimine el comentario antes de #monitorRole RED y cambie RED por la contraseña que desea establecer. Agregue la siguiente configuración en resin.conf, donde la IP del host monitoreado debe ser coherente con la IP del host.
ltJVM-arg>-DCOM .gestión de sol.JMX puerto = 12345 lt;/JVM-arg>
ltJVM-arg>-gestión de JMX. remoto .sl = false lt;/JVM-arg >
ltJVM-arg > -DCOM administración de archivos JMX =/usr/local 6 . /JRE/lib/management/JMX acceso remoto ltJVM-arg >-DCOM administración remota JMX =/usr/local/JDK 6 . /lib/management/JMX remoto .contraseña >p>
ltJVM-arg >-DCOM sun . configurado en el cliente, en el directorio de instalación de JDK (
Haga doble clic en jconsole.exe para iniciar el cuadro de diálogo de conexión.
4. Configure la administración de fondo de resina
lt ruta de administración = " $ { resin . root }/admin " gt;
ltnombre de usuario = " admin " contraseña = " mnhpobdovrmoyqfwoa 5 w7a == "/ gt; : if test = " $ { resin . professional } " gt;
ltdeploy-service/>
ltJMX-service/ gt;
ltLog Service/> p>
ltxa-log-service/>
lt/resin: if gt;
lt/management gt
ltwe B-; app id = "/resin-admin " root-directory = " $ { resin . home }/PHP/admin " >Archivo.
¡Es! -
-admin-applications/resin-admin->;
ltresin>ltresin:set var="resin_admin_user" value= " admin "/ gt;
ltresin: set var = " resin _ admin _ contraseña " valor = " contraseña "/ gt;
ltresin: set var = " resina _ admin _ external " valor = " true "/ gt; p>
ltresin: set var = " resin _ admin _ unsecure " value = " true "/ gt
lt/prologue gt
lt/we B- app; gt;
Dos. Parte de optimización de la red
1. Reduzca el tiempo de espera en la conexión TCP o desactive la espera de paquetes.
Añade la siguiente configuración.
net IP v4. TCP_sync cookies = 1
net.ipv4.tcp_tw_reuse = 1
net TCP_tw_recycle =. 1
net IP v4. TCP_fin_timeout=15
net IP v4. TCP_keepalive_time=1200
net IP. v4 . TCP _ keepalive _ probes = 5
net IP v4 . TCP _ keepalive _ intvl = 15
Descripción de la propiedad de configuración:
net. TCP_SYN Cookies = 1 significa activar las cookies SYN. Cuando la cola de espera SYN se desborda, habilitar las cookies para el procesamiento puede evitar una pequeña cantidad de ataques SYN. El valor predeterminado es 0, lo que significa que está desactivado.
Net.ipv4.tcp_tw_reuse = 1 significa habilitar la reutilización. Espere un tiempo de espera para que el socket se reutilice para nuevas conexiones TCP. El valor predeterminado es 0, lo que significa que está desactivado.
net.IP v4.tcp_tw_recycle = 1 significa abrir la conexión TCP y esperar a que el socket se recupere rápidamente.
tcp_syn_retries: entero
El valor predeterminado es 5
Para una nueva conexión, cuántas solicitudes de conexión SYN debe enviar el núcleo antes de decidir darse por vencido. No debe ser mayor que 255. El valor predeterminado es 5, que corresponde a unos 180 segundos. (Para una red con carga pesada y buena comunicación física, este valor es alto y se puede modificar a 2. Este valor solo se usa para conexiones externas y las conexiones entrantes están determinadas por tcp_retries1.)
tcp_synack_retries: entero
El valor predeterminado es 5
Para la solicitud de conexión remota SYN, el kernel enviará un datagrama SYN ACK para confirmar la recepción del último paquete de solicitud de conexión SYN. Este es el segundo paso del llamado mecanismo de protocolo de enlace de tres vías. Esto determina la cantidad de SYN ACK enviados por el kernel antes de abandonar la conexión. No debe ser mayor que 255. El valor predeterminado es 5, que corresponde a unos 180 segundos.
(Este valor se puede determinar basándose en tcp_syn_retries anteriores).
tcp_keepalive_time: integer
El valor predeterminado es 7200 (2 horas)
Cuando keepalive está activado , TCP Con qué frecuencia enviar mensajes de mantenimiento de actividad. (Debido a los ataques actuales a la red y otros factores, los ataques que usan esto son más frecuentes. Los amigos de CU mencionaron una vez que si ambas partes establecen una conexión y luego no envían ningún dato ni mensajes de primer/fin, la duración es de 2 horas. ¿Es así? ¿Vacío? ¿Ataque de conexión? Tcp_keepalive_time es para evitar esta situación. Mi valor de modificación personal al realizar el servicio nat es 1800 segundos)
tcp_keepalive_probes: entero
El valor predeterminado es 9
TCP envía sondas keepalive para determinar la cantidad de veces que se ha desconectado la conexión. (Nota: Mantener conectado se envía solo cuando la opción de socket SO_KEEPALIVE está activada. No es necesario modificar el número de veces de forma predeterminada, pero este valor se puede acortar adecuadamente según la situación. Establecerlo en 5 es apropiado)
tcp_keepalive_intvl: entero
El valor predeterminado es 75
Multiplique la frecuencia de los mensajes de sonda por tcp_keepalive_probes para obtener el tiempo para terminar una conexión que no ha respondido desde el inicio de la sonda. El valor predeterminado es 75 segundos, lo que significa que no se desconecta ninguna conexión activa después de aproximadamente 11 minutos. (Para aplicaciones normales, este valor es demasiado grande y se puede reducir según sea necesario. En particular, los servidores web necesitan reducir este valor, y 15 es un valor más apropiado)
Luego ejecute el siguiente comando para que el resultado de la modificación sea inmediato. Efectivo: /sbin/sysctl-p.
Utilice la siguiente declaración para ver el estado TCP del servidor:
netstat-n | awk '/^tcp/ { s[$ nf]} end { for(a in s)imprimir a , S[a]} '
Tres. Resolver el problema de demasiados archivos abiertos
Hay dos situaciones en las que ocurre el problema de demasiados archivos abiertos:
Una es durante la búsqueda, principalmente porque el índice se mueve después de su creado. Si este error no aparece al crear el índice, normalmente tampoco aparecerá al realizar la búsqueda. Si ocurre, hay dos maneras de afrontarlo. Una es modificar el factor de fusión y el factor de fusión mínimo y su uso.
Autor del índice. Optimize() optimiza el índice, lo que reducirá la cantidad de archivos indexados al límite del sistema de archivos; otro método es modificar la cantidad de archivos abiertos en el sistema operativo. El método es el siguiente:
Configure el sistema de acuerdo con los requisitos para la cantidad máxima de archivos abiertos y verifique el archivo /proc/sys/fs/file-max para confirmar que la cantidad máxima de archivos abiertos archivos está configurado correctamente. La operación de configuración es la siguiente:
# cat /proc/sys/fs/file-max
Si el valor de configuración es demasiado pequeño, modifique la variable en /etc/ archivo sysctl.conf al valor apropiado. Esto entrará en vigor después de cada reinicio.
# echo 65535 gt/proc/sys/fs/file-max
Edite el archivo /etc/sysctl.conf e inserte las siguientes líneas.
fs.file-max = 65535
Ejecute sysctl-p para que surta efecto
Establezca ulimit-n 65535
En /etc / Establezca el número máximo de archivos abiertos en el archivo security/limits.conf. El siguiente es un consejo:
Agregue la siguiente línea.
* - Archivo nº 65535
Esta línea establece el número predeterminado de archivos abiertos por usuario en 2048.
Tenga en cuenta que existen dos posibles restricciones en el elemento "nofile". Hay partes duras y blandas debajo del artículo. Para que el número máximo modificado de archivos abiertos entre en vigor, se deben establecer ambos límites. Si se configura usando el carácter "-", se establecerán configuraciones tanto duras como suaves.
El límite estricto representa el valor máximo que se puede establecer dentro del límite flexible. El límite suave se refiere al valor de configuración que está actualmente vigente para el sistema. Los usuarios normales pueden reducir el límite estricto. Pero no se puede aumentar. El límite suave no se puede establecer por encima del límite estricto. Sólo el usuario root puede aumentar el límite estricto.
Al agregar una descripción de límite de archivo, simplemente duplique el valor actual. Por ejemplo, si desea aumentar el valor predeterminado de 1024, es mejor aumentarlo a 2048. Si desea continuar incrementándolo, debe configurarlo en 4096.
En otro caso, a la hora de crear un índice, existen dos posibilidades. Una es que el factor de fusión es demasiado pequeño, lo que hace que la cantidad de archivos creados exceda el límite del sistema operativo. En este punto, puede modificar el factor de combinación o la cantidad de archivos abiertos por el sistema operativo. Otra es que el factor de fusión no se puede aumentar debido a limitaciones de memoria de la máquina virtual y la cantidad de documentos a indexar es grande. Esto sólo se puede solucionar modificando el límite de cantidad de archivos abiertos en el sistema operativo.
Ejecute el siguiente script como root durante el acceso máximo al sistema. Los resultados posibles son los siguientes:
# lsof-n | c | sort-NR | más
131 24204
57 24244
La primera línea es el número de identificadores de archivos abiertos y la segunda línea es el proceso. número. Después de obtener el número de proceso, podemos obtener la información detallada del proceso mediante el comando ps.
ps -aef|grep 24204
MySQL 24204 24162 99 16:15?00:24:25 /usr/sbin/mysqld
El programa predeterminado del sistema se abre El valor máximo del identificador de archivo es 1024. Pero si la concurrencia del sistema es particularmente grande, especialmente el servidor Squid, es probable que supere los 1024. En este momento, es necesario ajustar los parámetros del sistema para adaptarse a los cambios de la aplicación. Linux tiene límites estrictos y límites flexibles. Estos dos parámetros se pueden configurar a través de ulimit. El método es el siguiente: Ejecute el siguiente comando como usuario root:
Ulimit -HSn 4096 En el comando anterior, h especifica el tamaño estricto, s especifica el tamaño flexible y n significa establecer el número máximo. de identificadores de archivos abiertos por un solo proceso. Después de configurar el número de identificadores, el valor predeterminado se restaurará después de reiniciar el sistema. Si desea conservarlo permanentemente, utilice /etc /etc/security/limits.conf