.. _scalingLimitations: ========================= Dirac Service Limitations ========================= DataManagement ============== ---------- LFN length ---------- Because they are stored in a database, the LFNs are limited in size. The standard size is 255 characters. It is enforced in the following database: * JobDB * TransformationTB * StorageManagementDB * DataIntegrityDB * FTS3DB * RequestDB Shall you want to have longer LFN, then you would need to update your database manually. A special case is the DFC. The limitations depend on the Directory and File managers you use. In the DirectoryLevelTree and FileManager (defaults one) managers, the LFNs are split by '/', yielding other limitations: * 128 char for the filename * 255 char for each directory level In case of the Managers WithPkAndPs (LHCb): * 128 char for the filename * 255 for the base path ======================== Performance Optimisation ======================== Servers ======= When you servers are heavily loaded, you may want to tune some kernel parameters. Internet is full or resources to explain you what you should do, but a few parameters of interests certainly are the number of file descriptors allowed, as well as a few kernel tcp parameters that should be increased (https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt):: net.nf_conntrack_max net.ipv4.tcp_max_syn_backlog net.core.somaxconn net.core.netdev_max_backlog Duplications ============ The WMS **Executors** can be duplicated. In some cases, it is possible to run several instances of the same agent/service in order to scale. NB: in the tables below, for those components where the **Duplicate** column is not filled, it simply means that we have not tried to duplicate them yet. For services, this probably means that they can be duplicated. For agents, instead, this probably means that they can not be duplicated. Services ======== +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | **System** | **Component** |**Duplicate**| **Remarque** | **HTTPs** + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | Accounting | :mod:`DataStore ` | PARTIAL | One master and helpers (See :ref:`datastorehelpers`) | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`ReportGenerator ` | | | + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | Configuration | :mod:`Configuration ` | PARTIAL | One master (rw) and slaves (ro). It's advised to have several CS slaves | YES + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | DataManagement | :mod:`DataIntegrity ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`FileCatalog ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`FileCatalogProxy ` | | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`FTS3Manager ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`S3Gateway ` | YES | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`StorageElement ` | | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`StorageElementProxy ` | | | + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | Framework | :mod:`BundleDelivery ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`ComponentMonitoring ` | YES | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`Notification ` | | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`ProxyManager ` | YES | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`RabbitMQSync ` | | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`SecurityLogging ` | YES | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`SystemAdministrator ` | **MUST** | There should be one on each and every machine | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`UserProfileManager ` | | | + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | Monitoring | :mod:`Monitoring ` | YES | | + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | RequestManagement | :mod:`ReqManager ` | YES | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`ReqProxy ` | YES | | + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | ResourcesStatus | :mod:`Publisher ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`ResourceManagement ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`ResourceStatus ` | YES | | YES + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | StorageManager | :mod:`StorageManager ` | | | + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | Transformation | :mod:`TransformationManager ` | YES | | YES + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | WorkloadManagement | :mod:`JobManager ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`JobMonitoring ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`JobStateUpdate ` | YES | | YES + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`Matcher ` | **NO** | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`OptimizationMind ` | | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`PilotManager ` | PARTIAL | In case there are HTCondor CEs to deal with, the HTCondor | + | | | | WorkingDirectory should exist and be accessible in each and every machine | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`SandboxStore ` | | | + + +---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ | | :mod:`WMSAdministrator ` | YES | | YES + +--------------------+---------------------------------------------------------------------------------------------------+-------------+---------------------------------------------------------------------------+-----------+ Agents ====== +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | **System** | **Component** | **Duplicate** | **Remarque** | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | Accounting | :mod:`~DIRAC.AccountingSystem.Agent.NetworkAgent` | | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | Configuration | :mod:`~DIRAC.ConfigurationSystem.Agent.Bdii2CSAgent` | PARTIAL | Select sites for different agent instances | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ConfigurationSystem.Agent.GOCDB2CSAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ConfigurationSystem.Agent.VOMS2CSAgent` | PARTIAL | Split by VOs | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | DataManagement | :mod:`~DIRAC.DataManagementSystem.Agent.FTS3Agent` | YES | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | Framework | :mod:`~DIRAC.FrameworkSystem.Agent.CAUpdateAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | RequestManagement | :mod:`~DIRAC.RequestManagementSystem.Agent.CleanReqDBAgent` | NO | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.RequestManagementSystem.Agent.RequestExecutingAgent` | YES | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | ResourceStatus | :mod:`~DIRAC.ResourceStatusSystem.Agent.CacheFeederAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ResourceStatusSystem.Agent.ElementInspectorAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ResourceStatusSystem.Agent.EmailAgent` | NO | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ResourceStatusSystem.Agent.SiteInspectorAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ResourceStatusSystem.Agent.SummarizeLogsAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.ResourceStatusSystem.Agent.TokenAgent` | | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | StorageManagement | :mod:`~DIRAC.StorageManagementSystem.Agent.RequestFinalizationAgent` | NO | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.StorageManagementSystem.Agent.RequestPreparationAgent` | NO | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.StorageManagementSystem.Agent.StageMonitorAgent` | NO | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.StorageManagementSystem.Agent.StageRequestAgent` | NO | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | Transformation | :mod:`~DIRAC.TransformationSystem.Agent.InputDataAgent` | PARTIAL | Split by TransformationTypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.TransformationSystem.Agent.MCExtensionAgent` | PARTIAL | Split by TransformationTypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.TransformationSystem.Agent.RequestTaskAgent` | PARTIAL | Split by TransformationTypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.TransformationSystem.Agent.TransformationAgent` | PARTIAL | Split by TransformationTypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.TransformationSystem.Agent.TransformationCleaningAgent` | PARTIAL | Split by TransformationTypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.TransformationSystem.Agent.ValidateOutputDataAgent` | PARTIAL | Split by TransformationTypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.TransformationSystem.Agent.WorkflowTaskAgent` | PARTIAL | Split by TransformationTypes | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | WorkloadManagement | :mod:`~DIRAC.WorkloadManagementSystem.Agent.SiteDirector` | PARTIAL | Split by Sites, CETypes | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.JobAgent` | | Installed by Pilots on Worker Nodes, not for server installations | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.JobCleaningAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.PilotStatusAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.StalledJobAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.StatesAccountingAgent` | NO | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+