{"id":11083,"date":"2020-07-14T10:03:40","date_gmt":"2020-07-14T13:03:40","guid":{"rendered":"http:\/\/kb.elipse.com.br\/?p=11083"},"modified":"2020-07-14T11:08:26","modified_gmt":"2020-07-14T14:08:26","slug":"pool-de-processos-ioserver","status":"publish","type":"post","link":"https:\/\/kb.elipse.com.br\/en\/pool-de-processos-ioserver\/","title":{"rendered":"Pool de Processos IOServer."},"content":{"rendered":"<p style=\"text-align: justify;\">Em aplicativos com centenas de Drivers, os recursos necess\u00e1rios para executar os processos IOServer para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necess\u00e1rio habilitar o <strong>Pool de Processos IOServer<\/strong> na aba <strong>Propriedades<\/strong> da configura\u00e7\u00e3o do Dom\u00ednio.<\/p>\n<p style=\"text-align: justify;\">Quando este Pool est\u00e1 habilitado, cada processo IOServer pode executar mais de um Driver, economizando desta forma recursos do sistema operacional e permitindo que um aplicativo chegue a executar milhares de Drivers.<\/p>\n<p style=\"text-align: justify;\">Apenas Drivers que suportam a cria\u00e7\u00e3o de novas inst\u00e2ncias din\u00e2micas (Drivers compilados com o <strong>IOKit v2.0.6<\/strong> ou superior) podem ser utilizados no Pool. Se um Driver que n\u00e3o tem este suporte \u00e9 adicionado ao Pool, este Driver n\u00e3o \u00e9 executado, ou seja, falha. Para estes casos, configure a propriedade <strong><em>DisableIOServerPool<\/em> <\/strong>do IODriver para True para que o Driver execute fora do Pool, em um processo IOServer exclusivo.<\/p>\n<p style=\"text-align: justify;\">Na aba <strong>Propriedades<\/strong> da configura\u00e7\u00e3o do Dom\u00ednio, pode-se controlar o n\u00famero m\u00e1ximo de processos IOServer no Pool, bem como o n\u00famero m\u00e1ximo de Drivers que executam em cada IOServer.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/kb.elipse.com.br\/wp-content\/uploads\/2020\/07\/11083\/1.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-11084\" src=\"http:\/\/kb.elipse.com.br\/wp-content\/uploads\/2020\/07\/11083\/1.png\" alt=\"\" width=\"583\" height=\"538\" \/><\/a><\/p>\n<h4 style=\"text-align: center;\">Op\u00e7\u00f5es de comportamento do Pool de Processos IOServer<\/h4>\n<table>\n<tbody>\n<tr>\n<th style=\"font-size: 12px;\">Drivers por Processo<\/th>\n<th style=\"font-size: 12px;\">N\u00famero M\u00e1ximo Processos<\/th>\n<th style=\"font-size: 12px;\">Comportamento do Pool<\/th>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong>0<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>M<\/strong><\/td>\n<td style=\"text-align: justify; font-size: 12px;\">\u00c0 medida que os Drivers do aplicativo forem ativados, \u00e9 criado um processo IOServer para cada Driver, at\u00e9 atingir o n\u00famero m\u00e1ximo M. Depois deste ponto, cada novo Driver que for ativado \u00e9 adicionado ao IOServer do Pool que cont\u00e9m a menor quantidade de Drivers<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong>N<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>0<\/strong><\/td>\n<td style=\"text-align: justify; font-size: 12px;\">\u00c0 medida que os Drivers do aplicativo forem ativados, o E3 os adiciona a um processo IOServer do Pool que ainda n\u00e3o tenha atingido o n\u00famero m\u00e1ximo N de Drivers executando dentro dele. Se todos os processos do Pool estiverem no limite m\u00e1ximo, ent\u00e3o um novo IOServer \u00e9 adicionado ao Pool<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><strong>N<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>M<\/strong><\/td>\n<td style=\"text-align: justify; font-size: 12px;\">\u00c0 medida que os Drivers do aplicativo forem ativados, o E3 os adiciona a um processo IOServer do Pool que ainda n\u00e3o tenha atingido o n\u00famero m\u00e1ximo N de Drivers executando dentro dele. Se todos os processos do Pool estiverem no limite m\u00e1ximo, o comportamento depende da quantidade de processos no Pool, e se o n\u00famero de processos do Pool for menor que o m\u00e1ximo M, ent\u00e3o um novo processo \u00e9 adicionado ao Pool, caso contr\u00e1rio o Driver \u00e9 adicionado no processo que tiver menos Drivers executando. NOTA: Neste modo, o n\u00famero m\u00e1ximo de Drivers por processo (N) pode ser ultrapassado caso o n\u00famero total de Drivers do aplicativo exceda N * M<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong><br \/>\nNOTAS:<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify;\">Ao agrupar Drivers em um mesmo processo IOServer, perde-se o isolamento entre estes Drivers. Desta forma, se ocorrer uma falha em um destes Drivers, o IOServer \u00e9 fechado e todos os Drivers que executavam naquele IOServer t\u00eam de ser reiniciados.<\/li>\n<li style=\"text-align: justify;\">Existe um limite no n\u00famero de Drivers que podem executar em um processo IOServer. Este limite depende de diversas vari\u00e1veis, tais como o sistema operacional em uso, a quantidade de mem\u00f3ria, threads e recursos que cada Driver espec\u00edfico est\u00e1 ocupando. Em linhas gerais, n\u00e3o se deve adicionar mais do que 100 Drivers em um \u00fanico IOServer, sob pena de exceder os limites do sistema operacional.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Em aplicativos com centenas de Drivers, os recursos necess\u00e1rios para executar os processos IOServer para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necess\u00e1rio habilitar&hellip;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0},"categories":[578,601],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pool de Processos IOServer. - Elipse Knowledgebase<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pool de Processos IOServer.\" \/>\n<meta property=\"og:description\" content=\"Em aplicativos com centenas de Drivers, os recursos necess\u00e1rios para executar os processos IOServer para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necess\u00e1rio habilitar&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\" \/>\n<meta property=\"og:site_name\" content=\"Elipse Knowledgebase\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/elipsesoftware\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-14T13:03:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-14T14:08:26+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/kb.elipse.com.br\/wp-content\/uploads\/2020\/07\/11083\/1.png\" \/>\n<meta name=\"author\" content=\"D\u00e9lio Damin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"D\u00e9lio Damin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\"},\"author\":{\"name\":\"D\u00e9lio Damin\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778\"},\"headline\":\"Pool de Processos IOServer.\",\"datePublished\":\"2020-07-14T13:03:40+00:00\",\"dateModified\":\"2020-07-14T14:08:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\"},\"wordCount\":542,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"articleSection\":[\"Elipse E3\",\"IODriver \/ IOServer\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\",\"url\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\",\"name\":\"[:pt]Pool de Processos IOServer.[:] - Elipse Knowledgebase\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#website\"},\"datePublished\":\"2020-07-14T13:03:40+00:00\",\"dateModified\":\"2020-07-14T14:08:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/kb.elipse.com.br\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pool de Processos IOServer.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kb.elipse.com.br\/#website\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"name\":\"Elipse Knowledgebase\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kb.elipse.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\",\"name\":\"Elipse Software\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/elipsesoftware\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"contentUrl\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"width\":161,\"height\":58,\"caption\":\"Elipse Software\"},\"image\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778\",\"name\":\"D\u00e9lio Damin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g\",\"caption\":\"D\u00e9lio Damin\"},\"url\":\"https:\/\/kb.elipse.com.br\/en\/author\/delio\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pool de Processos IOServer. - Elipse Knowledgebase","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/","og_locale":"en_US","og_type":"article","og_title":"[:pt]Pool de Processos IOServer.[:] - Elipse Knowledgebase","og_description":"Em aplicativos com centenas de Drivers, os recursos necess\u00e1rios para executar os processos IOServer para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necess\u00e1rio habilitar&hellip;","og_url":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/","og_site_name":"Elipse Knowledgebase","article_publisher":"http:\/\/www.facebook.com\/elipsesoftware","article_published_time":"2020-07-14T13:03:40+00:00","article_modified_time":"2020-07-14T14:08:26+00:00","og_image":[{"url":"http:\/\/kb.elipse.com.br\/wp-content\/uploads\/2020\/07\/11083\/1.png"}],"author":"D\u00e9lio Damin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"D\u00e9lio Damin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#article","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/"},"author":{"name":"D\u00e9lio Damin","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778"},"headline":"Pool de Processos IOServer.","datePublished":"2020-07-14T13:03:40+00:00","dateModified":"2020-07-14T14:08:26+00:00","mainEntityOfPage":{"@id":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/"},"wordCount":542,"commentCount":0,"publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"articleSection":["Elipse E3","IODriver \/ IOServer"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/","url":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/","name":"[:pt]Pool de Processos IOServer.[:] - Elipse Knowledgebase","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/#website"},"datePublished":"2020-07-14T13:03:40+00:00","dateModified":"2020-07-14T14:08:26+00:00","breadcrumb":{"@id":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kb.elipse.com.br\/pool-de-processos-ioserver\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/kb.elipse.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Pool de Processos IOServer."}]},{"@type":"WebSite","@id":"https:\/\/kb.elipse.com.br\/#website","url":"https:\/\/kb.elipse.com.br\/","name":"Elipse Knowledgebase","description":"","publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kb.elipse.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kb.elipse.com.br\/#organization","name":"Elipse Software","url":"https:\/\/kb.elipse.com.br\/","sameAs":["http:\/\/www.facebook.com\/elipsesoftware"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","contentUrl":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","width":161,"height":58,"caption":"Elipse Software"},"image":{"@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/be597eff34b5f24af940a55332870778","name":"D\u00e9lio Damin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fdf251d36430f8dd22144c3f1bc53376?s=96&d=mm&r=g","caption":"D\u00e9lio Damin"},"url":"https:\/\/kb.elipse.com.br\/en\/author\/delio\/"}]}},"_links":{"self":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/11083"}],"collection":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/comments?post=11083"}],"version-history":[{"count":20,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/11083\/revisions"}],"predecessor-version":[{"id":11135,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/11083\/revisions\/11135"}],"wp:attachment":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/media?parent=11083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/categories?post=11083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/tags?post=11083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}