관리-도구
편집 파일: plugin_sysctl.cpython-39.pyc
a ����,�g����������������������@���s����d�dl�Z�ddlmZ�ddlT�d�dlZd�dlT�d�dlmZ�d�dl m Z �d�dlZd�dlZej ���ZddgZdd gZG�d d��dej�ZdS�)�����N����)�base)�*)�commandsZbase_reachable_timeZretrans_timez /run/sysctl.dz /etc/sysctl.dc�����������������������s����e�Zd�ZdZ��fdd�Zdd��Zdd��Zdd ��Zd d��Ze j fdd �Zdd��Zdd��Z dd��Zdd��Zdd��Zddd�Z���ZS�)�SysctlPlugina5�� Sets various kernel parameters at runtime. This plug-in is used for applying custom `sysctl` settings and should only be used to change system settings that are not covered by other *TuneD* plug-ins. If the settings are covered by other *TuneD* plug-ins, use those plug-ins instead. The syntax for this plug-in is `_key_=_value_`, where `_key_` is the same as the key name provided by the `sysctl` utility. .Adjusting the kernel runtime kernel.sched_min_granularity_ns value ==== ---- [sysctl] kernel.sched_min_granularity_ns=3000000 ---- ==== c��������������������s(���t�t|��j|i�|���d|�_t��|�_d�S�)NT)�superr����__init__Z_has_dynamic_optionsr����_cmd)�self�args�kwargs�� __class__���?/usr/lib/python3.9/site-packages/tuned/plugins/plugin_sysctl.pyr���(���s����zSysctlPlugin.__init__c�����������������C���sh���d|_�d|_|��|j�}|�j�|i��|_t|j�dkr\t� d��|�� |��i�|_|�j�|��|j|_ d�S�)NFTr���z0recovering old sysctl settings from previous run)Z_has_dynamic_tuningZ_has_static_tuning�_storage_key�name�_storage�get�_sysctl_original�len�log�info�_instance_unapply_static�unset�options�_sysctl�r ����instance�storage_keyr���r���r����_instance_init-���s���� zSysctlPlugin._instance_initc�����������������C���s���|���|j�}|�j�|��d�S��N)r���r���r���r���r���r���r���r����_instance_cleanup=���s����zSysctlPlugin._instance_cleanupc�����������������C���s����t�|j����D�]h\}}|��|�}|d�u�r8t�d|���q|�j�|�j� |��}|�� ||�}|d�ur||j|<�|��||��q|�� |j�}|�j�||j��|�j�tjtj�r�t�d��|��|j��d�S�)NzDsysctl option %s will not be set, failed to read the original value.zreapplying system sysctl)�listr����items�_read_sysctlr����error� _variables�expandr ����unquote�_process_assignment_modifiersr���� _write_sysctlr���r���r����setZ_global_cfgZget_bool�constsZCFG_REAPPLY_SYSCTLZCFG_DEF_REAPPLY_SYSCTLr����_apply_system_sysctl)r ���r����option�value�original_valueZ new_valuer���r���r���r����_instance_apply_staticA���s(���� � �� z#SysctlPlugin._instance_apply_staticc�����������������C���sr���d}d}t�|j����D�]V\}}|��|�}|��|�j�|�|�}|d�ur|��||�j� |�|�j� |�|�dkrd}q|S�)NTF) r#���r���r$���r%���r*���r'���r(���Z _verify_valuer ���Z remove_ws)r ���r����ignore_missingZdevices�retr/���r0���Zcurr_valr���r���r����_instance_verify_staticW���s���� $z$SysctlPlugin._instance_verify_staticc�����������������C���s(���t�|j����D�]\}}|��||��qd�S�r!���)r#���r���r$���r+���)r ���r���Zrollbackr/���r0���r���r���r���r���c���s����z%SysctlPlugin._instance_unapply_staticc�������������� ���C���s����i�}t�D�]P}zt�|�}W�n�ty0���Y�qY�n0�|D�] }|�d�sFq6||vr6|||<�q6qt|����D�]$}||�}d||f�}|��||��qf|��d|��d�S�)Nz.confz%s/%sz/etc/sysctl.conf)�SYSCTL_CONFIG_DIRS�os�listdir�OSError�endswith�sorted�keys�_apply_sysctl_config_file)r ����instance_sysctl�files�d�flist�fname�pathr���r���r���r.���g���s ���� z!SysctlPlugin._apply_system_sysctlc�������������� ���C���s����t��d|���z`t|d��4}t|d�D�]\}}|��||||��q&W�d�����n1�sT0����Y��t��d|���W�nJ�ttfy��}�z.|jtjkr�t�� d|t |�f���W�Y�d�}~n d�}~0�0�d�S�)Nz%Applying sysctl settings from file %s�rr���z.Finished applying sysctl settings from file %sz.Error reading sysctl settings from file %s: %s)r����debug�open� enumerate�_apply_sysctl_config_liner9����IOError�errno�ENOENTr&����str)r ���rC���r>����f�lineno�line�er���r���r���r=���z���s����0� �z&SysctlPlugin._apply_sysctl_config_filec����������� ������C���s����|����}t|�dks,|d�dks,|d�dkr0d�S�|�dd�}t|�dkr^t�d||f���d�S�|\}}|����}t|�dkr�t�d||f���d�S�|����}||v�r�|�j�||��}||kr�t�d|||f���|�j||d d ��d�S�)Nr����#�;�=r�������z Syntax error in file %s, line %dz2Overriding sysctl parameter '%s' from '%s' to '%s'T)r3���) �stripr����splitr���r&���r'���r(���r���r+���) r ���rC���rN���rO���r>����tmpr/���r0���Zinstance_valuer���r���r���rH�������s0����$���z&SysctlPlugin._apply_sysctl_config_linec�����������������C���s���d|�j��|dd��S�)Nz/proc/sys/%sz./z/.)r ����tr)r ���r/���r���r���r����_get_sysctl_path����s����zSysctlPlugin._get_sysctl_pathc�����������������C���sV���|���|�}|�jj|d�d�}|d�u�r&d�S�|���}t|�d��dkrRt�d|���d�S�|S�)N)Zerr_ret� r���zGFailed to read sysctl parameter '%s', multi-line values are unsupported)rY���r ���Z read_filerU���r���rV���r���r&���)r ���r/���rC���Zcontentr���r���r���r%�������s���� zSysctlPlugin._read_sysctlFc�����������������C���sL���|���|�}tj�|�tv�r,t�d|���dS�|�jj|||rBt j gnddd�S�)Nz+Refusing to set deprecated sysctl option %sFT)Zno_errorZignore_same)rY���r7���rC����basename�DEPRECATED_SYSCTL_OPTIONSr���r&���r ���Z write_to_filerJ���rK���)r ���r/���r0���r3���rC���r���r���r���r+�������s ���� zSysctlPlugin._write_sysctl)F)�__name__� __module__�__qualname__�__doc__r���r ���r"���r2���r5���r-���Z ROLLBACK_SOFTr���r.���r=���rH���rY���r%���r+���� __classcell__r���r���r ���r���r������s��� r���)�re��r���Z decoratorsZ tuned.logsZtuned� subprocessZtuned.utils.commandsr���Ztuned.constsr-���rJ���r7���Zlogsr���r���r\���r6���ZPluginr���r���r���r���r����<module>���s��� �