{"id":21649,"date":"2026-09-22T12:58:28","date_gmt":"2026-09-22T10:58:28","guid":{"rendered":"https:\/\/webhosting.de\/?p=21649"},"modified":"2026-09-22T12:58:31","modified_gmt":"2026-09-22T10:58:31","slug":"linux-procfs-para-administradores","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pt\/linux-procfs-fuer-administratoren\/","title":{"rendered":"Procfs do Linux para administradores: vis\u00e3o geral dos ficheiros importantes"},"content":{"rendered":"<div class=\"wh-article\"><p class=\"wh-lead\">O <strong>Linux procfs<\/strong> mostra o estado atual do kernel atrav\u00e9s de ficheiros virtuais na diret\u00f3ria \/proc. Para a administra\u00e7\u00e3o, s\u00e3o especialmente relevantes a carga, a mem\u00f3ria, os processos, os descritores de ficheiros e os dispositivos de bloco. O importante \u00e9 a interpreta\u00e7\u00e3o: alguns valores s\u00e3o instant\u00e2neos, outros s\u00e3o contadores acumulados desde o arranque ou m\u00e9dias m\u00f3veis. Por isso, nunca analises apenas um valor isolado, mas compara-o com os sinais adequados e o contexto do anfitri\u00e3o, da m\u00e1quina virtual ou do contentor.  <\/p><nav class=\"wh-toc\" aria-label=\"Conte\u00fado deste artigo\"><p class=\"wh-toc-title\">Ir diretamente para a sec\u00e7\u00e3o<\/p><div class=\"wh-toc-grid\"><a class=\"wh-toc-link\" href=\"#proc-basics\">Compreender o procfs: uma vis\u00e3o virtual do kernel em vez de um armazenamento de dados<\/a><a class=\"wh-toc-link\" href=\"#proc-time-context\">Interpretar corretamente os indicadores, os instant\u00e2neos e a visibilidade<\/a><br><a class=\"wh-toc-link\" href=\"#proc-sysctl-boundary\">Ler, configurar e proteger em \/proc\/sys<\/a><br><a class=\"wh-toc-link\" href=\"#proc-overview-table\">Os ficheiros procfs mais importantes por tarefa administrativa<\/a><br><a class=\"wh-toc-link\" href=\"#proc-load-memory\">Carga, CPU e mem\u00f3ria<\/a><br><a class=\"wh-toc-link\" href=\"#proc-process-io\">Analisar processos e E\/S de suportes de dados<\/a><br><a class=\"wh-toc-link\" href=\"#proc-monitoring\">O procfs em funcionamento: consultas, monitoriza\u00e7\u00e3o e prote\u00e7\u00e3o de dados<\/a><br><a class=\"wh-toc-link\" href=\"#proc-troubleshooting\">Percursos de diagn\u00f3stico para servi\u00e7os lentos e estrangulamentos de recursos<\/a><br><a class=\"wh-toc-link\" href=\"#proc-decisions\">Corrigir equ\u00edvocos comuns e escolher as ferramentas adequadas<\/a><\/div><\/nav><h2 id=\"proc-basics\">Compreender o procfs: uma vis\u00e3o virtual do kernel em vez de um armazenamento de dados<\/h2><p>O <strong>procfs<\/strong> \u00e9 um sistema de ficheiros virtual: as entradas em \/proc representam estruturas de dados e estados do kernel Linux em execu\u00e7\u00e3o. N\u00e3o se tratam de conte\u00fados armazenados de forma permanente num suporte de dados. Durante a leitura, o kernel gera a respetiva vis\u00e3o a partir do seu estado atual; ap\u00f3s um rein\u00edcio, por exemplo, muitos contadores recome\u00e7am do zero. Por isso, \/proc \u00e9 uma interface para observa\u00e7\u00e3o e, em parte, controlo, n\u00e3o sendo um local para ficheiros pr\u00f3prios ou configura\u00e7\u00f5es persistentes.  <\/p><p>No que diz respeito \u00e0 administra\u00e7\u00e3o, \u00e9 necess\u00e1rio distinguir tr\u00eas \u00e1reas. Os ficheiros de estado globais, como \/proc\/meminfo, \/proc\/stat ou \/proc\/loadavg, fornecem indicadores relativos a todo o kernel. Os diret\u00f3rios com nomes num\u00e9ricos, como \/proc\/1234, fornecem detalhes sobre um processo espec\u00edfico. Por outro lado, em \/proc\/sys encontram-se os par\u00e2metros do kernel, que podem ser tanto de leitura como de escrita, dependendo das permiss\u00f5es e dos par\u00e2metros em quest\u00e3o. A semelhan\u00e7a na estrutura dos ficheiros n\u00e3o deve induzir em erro: a consulta do estado e a altera\u00e7\u00e3o da configura\u00e7\u00e3o t\u00eam consequ\u00eancias fundamentalmente diferentes.  <\/p><p>Os caminhos e campos dispon\u00edveis n\u00e3o s\u00e3o id\u00eanticos em todos os sistemas Linux. A vers\u00e3o e a configura\u00e7\u00e3o do kernel, a arquitetura, o hardware reconhecido e os m\u00f3dulos carregados influenciam as entradas vis\u00edveis. Os namespaces tamb\u00e9m alteram as visualiza\u00e7\u00f5es individuais. Um procfs associado a um namespace de PID limita, em particular, a perspetiva do processo e do PID; no entanto, isso n\u00e3o significa que os ficheiros globais apresentem automaticamente valores espec\u00edficos de um contentor ou de um cgroup. Os scripts devem verificar os ficheiros e os campos antes de analisar o seu conte\u00fado, em vez de pressuporem uma estrutura procfs completa e id\u00eantica em todos os casos.  <\/p><p>\u00c9 importante distinguir isto do sysfs, localizado em \/sys: este apresenta, sobretudo, dispositivos, controladores e objetos de hardware. O cgroup2 \u00e9 tamb\u00e9m relevante para a distribui\u00e7\u00e3o de recursos e os limites dos grupos. No entanto, o procfs continua a ser a fonte direta de muitos estados do kernel e dos processos, necess\u00e1rios num primeiro diagn\u00f3stico.  <\/p><h2 id=\"proc-time-context\">Interpretar corretamente os indicadores, os instant\u00e2neos e a visibilidade<\/h2><p>No caso do procfs, o valor por si s\u00f3 raramente explica um problema. Em primeiro lugar, \u00e9 necess\u00e1rio esclarecer a sua refer\u00eancia temporal: alguns dados s\u00e3o <strong>contadores cumulativos<\/strong> desde o arranque do sistema; outros descrevem um estado atual; outros ainda representam intervalos de tempo m\u00f3veis. Um valor elevado do contador indica, numa primeira fase, apenas que um evento se acumulou desde o arranque. Uma taxa s\u00f3 surge a partir de dois pontos de medi\u00e7\u00e3o: a diferen\u00e7a entre os valores dividida pelo intervalo de tempo entre eles. Isto aplica-se, por exemplo, a muitos contadores de CPU, de interrup\u00e7\u00f5es e de suportes de dados.  <\/p><p>O ficheiro \/proc\/uptime fornece o tempo de funcionamento decorrido e o tempo de inatividade agregado. Ajuda a contextualizar os contadores em termos temporais desde o arranque, mas n\u00e3o substitui uma s\u00e9rie de medi\u00e7\u00f5es. Uma consulta \u00fanica \u00e9 um instant\u00e2neo; para obter conclus\u00f5es fi\u00e1veis sobre tend\u00eancias, picos ou cargas recorrentes, s\u00e3o necess\u00e1rias consultas repetidas com carimbo de data\/hora. Nesse contexto, os valores podem j\u00e1 ter mudado durante a leitura, porque o kernel continua a funcionar.  <\/p><p>Os dados vis\u00edveis tamb\u00e9m t\u00eam limita\u00e7\u00f5es. O \/proc\/self aponta sempre para o processo que est\u00e1 a resolver o caminho nesse momento. Isto torna-o pr\u00e1tico para scripts e verifica\u00e7\u00f5es interativas, sem ser necess\u00e1rio assumir um PID. No entanto, o acesso a diret\u00f3rios de processos de outros processos pode ser restringido por direitos de ficheiro, capacidades do Linux e pela op\u00e7\u00e3o de montagem procfs <code data-no-translation=\"\">hidepid<\/code> pode ser limitada. A falta de acesso a certas informa\u00e7\u00f5es, neste caso, n\u00e3o se deve a uma falha no procfs, mas sim a uma medida de prote\u00e7\u00e3o contra a leitura de informa\u00e7\u00f5es sens\u00edveis sobre os processos.  <\/p><p>\u00c9 necess\u00e1rio ter especial cuidado nos contentores. Um procfs vinculado a um namespace PID apresenta, nos caminhos relacionados com processos, apenas os processos dessa perspetiva do namespace. Por outro lado, ficheiros globais do kernel, como \/proc\/meminfo, \/proc\/stat ou \/proc\/diskstats, podem continuar a refletir valores do anfitri\u00e3o e n\u00e3o s\u00e3o automaticamente limitados aos limites do contentor. Por isso, antes de qualquer diagn\u00f3stico, \u00e9 necess\u00e1rio esclarecer se a quest\u00e3o diz respeito a processos, a valores globais do kernel ou aos recursos efetivamente atribu\u00eddos; os limites e a utiliza\u00e7\u00e3o de um contentor devem, al\u00e9m disso, ser inclu\u00eddos na an\u00e1lise do cgroup2.  <\/p><h2 id=\"proc-sysctl-boundary\">Ler, configurar e proteger em \/proc\/sys<\/h2><p>A \u00e1rea <strong>\/proc\/sys<\/strong> \u00e9 a vista do sistema de ficheiros da interface sysctl. A leitura de um valor serve para fins de diagn\u00f3stico. Por outro lado, o acesso de escrita altera imediatamente o comportamento do kernel em execu\u00e7\u00e3o e pode afetar servi\u00e7os, o consumo de recursos ou caracter\u00edsticas de seguran\u00e7a. O facto de uma altera\u00e7\u00e3o surtir efeito sem reinicializa\u00e7\u00e3o n\u00e3o significa que seja isenta de riscos nem que seja automaticamente permanente: a persist\u00eancia depende da configura\u00e7\u00e3o do sistema selecionada.  <\/p><p>A estrutura de diret\u00f3rios facilita a orienta\u00e7\u00e3o inicial. Em \/proc\/sys\/fs encontram-se, entre outros, par\u00e2metros globais do sistema de ficheiros e dos identificadores de ficheiros. \/proc\/sys\/vm agrupa as configura\u00e7\u00f5es da gest\u00e3o de mem\u00f3ria, enquanto \/proc\/sys\/net cont\u00e9m par\u00e2metros relacionados com a rede. Os subdiret\u00f3rios e chaves dispon\u00edveis dependem, por sua vez, da configura\u00e7\u00e3o do kernel e das funcionalidades do sistema. Um par\u00e2metro existente n\u00e3o constitui, portanto, uma receita geral de otimiza\u00e7\u00e3o; a sua documenta\u00e7\u00e3o e a carga de trabalho concreta s\u00e3o determinantes.    <\/p><p>Um contra-exemplo de otimiza\u00e7\u00e3o aparente \u00e9 <code data-no-translation=\"\">drop_caches<\/code> em \/proc\/sys\/vm. A documenta\u00e7\u00e3o do kernel classifica esta fun\u00e7\u00e3o como destinada \u00e0 depura\u00e7\u00e3o e a testes e desaconselha a sua utiliza\u00e7\u00e3o para outros fins, uma vez que esvaziar as caches reutiliz\u00e1veis pode comprometer o desempenho. A escassez de mem\u00f3ria livre, por si s\u00f3, n\u00e3o \u00e9 motivo para eliminar caches: o kernel utiliza deliberadamente a RAM tamb\u00e9m para o cache de ficheiros.  <\/p><p>Antes de qualquer altera\u00e7\u00e3o, deve existir uma causa compreens\u00edvel. Registe primeiro o valor inicial, documente o objetivo e os efeitos secund\u00e1rios esperados, efetue a altera\u00e7\u00e3o de forma controlada e, em seguida, observe os valores de medi\u00e7\u00e3o adequados, bem como o comportamento do servi\u00e7o. Planeie antecipadamente o caminho de regresso e s\u00f3 transfira um valor para uma configura\u00e7\u00e3o permanente ap\u00f3s uma verifica\u00e7\u00e3o t\u00e9cnica. O artigo aborda no\u00e7\u00f5es b\u00e1sicas adicionais sobre par\u00e2metros e a sua gest\u00e3o controlada <a href=\"https:\/\/webhosting.de\/pt\/kernel-tuning-linux-sysctl-parameter-serverboost-opti\/\">Afina\u00e7\u00e3o do kernel no alojamento Linux: par\u00e2metros Sysctl em resumo<\/a>.<\/p><h2 id=\"proc-overview-table\">Os ficheiros procfs mais importantes por tarefa administrativa<\/h2><p>A escolha de um ficheiro procfs deve partir de uma perspetiva de administra\u00e7\u00e3o, e n\u00e3o de uma lista de diret\u00f3rios o mais completa poss\u00edvel. Os ficheiros globais fornecem frequentemente valores a n\u00edvel do kernel, os caminhos dos processos descrevem um \u00fanico processo vis\u00edvel e as entradas em \/proc\/sys\/fs fornecem configura\u00e7\u00f5es e limites a n\u00edvel do sistema. Alguns valores representam estados atuais, outros s\u00e3o contadores acumulados desde o arranque ou m\u00e9dias m\u00f3veis. Esta distin\u00e7\u00e3o determina se basta uma \u00fanica leitura ou se s\u00e3o necess\u00e1rios dois pontos de medi\u00e7\u00e3o. <\/p><div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Ficheiros procfs importantes para quest\u00f5es administrativas comuns\"><table><caption>Ficheiros procfs importantes para quest\u00f5es administrativas comuns<\/caption><thead><tr><th scope=\"col\">Caminho<\/th><th scope=\"col\">Objetivo<\/th><th scope=\"col\">Pergunta t\u00edpica<\/th><th scope=\"col\">Natureza dos dados<\/th><th scope=\"col\">Restri\u00e7\u00e3o importante<\/th><th scope=\"col\">Consulta de leitura segura<\/th><\/tr><\/thead><tbody><tr><td>\/proc\/loadavg<\/td><td>carga do sistema<\/td><td>H\u00e1 tarefas pendentes?<\/td><td>M\u00e9dia de 1, 5 e 15 minutos<\/td><td>N\u00e3o \u00e9 apenas uma quest\u00e3o de utiliza\u00e7\u00e3o da CPU<\/td><td>cat \/proc\/loadavg<\/td><\/tr><tr><td>\/proc\/stat<\/td><td>Contadores da CPU e do kernel<\/td><td>Como \u00e9 que o tempo de CPU \u00e9 distribu\u00eddo?<\/td><td>Acumulado desde o arranque<\/td><td>N\u00e3o avaliar o iowait isoladamente<\/td><td>grep -E \u201a^(cpu|intr|ctxt|processes)\u2018 \/proc\/stat<\/td><\/tr><tr><td>\/proc\/meminfo<\/td><td>Vis\u00e3o geral da mem\u00f3ria<\/td><td>H\u00e1 espa\u00e7o de armazenamento dispon\u00edvel?<\/td><td>Valores atualmente armazenados<\/td><td>O MemFree, por si s\u00f3, n\u00e3o \u00e9 suficiente; no contentor, n\u00e3o \u00e9 obrigatoriamente espec\u00edfico do cgroup<\/td><td>cat \/proc\/meminfo<\/td><\/tr><tr><td>\/proc\/pressure\/cpu<\/td><td>Paragens da CPU<\/td><td>H\u00e1 tarefas em espera na CPU?<\/td><td>Intervalos de tempo e contadores<\/td><td>O valor \u00abfull\u00bb a n\u00edvel do sistema n\u00e3o pode ser interpretado e \u00e9 apresentado como zero<\/td><td>cat \/proc\/pressure\/cpu<\/td><\/tr><tr><td>\/proc\/pressure\/memory<\/td><td>press\u00e3o de armazenamento<\/td><td>A falta de mem\u00f3ria bloqueia as tarefas?<\/td><td>Intervalos de tempo e contadores<\/td><td>O PSI tem de estar dispon\u00edvel<\/td><td>cat \/proc\/pressure\/memory<\/td><\/tr><tr><td>\/proc\/pressure\/io<\/td><td>Blocos de E\/S<\/td><td>H\u00e1 tarefas em espera de E\/S?<\/td><td>Intervalos de tempo e contadores<\/td><td>N\u00e3o substitui a an\u00e1lise do equipamento<\/td><td>cat \/proc\/pressure\/io<\/td><\/tr><tr><td>\/proc\/\/status<\/td><td>Estado do processo<\/td><td>Qual \u00e9 a dimens\u00e3o e o n\u00edvel de atividade de um processo?<\/td><td>Dados atuais do processo<\/td><td>Os direitos e o namespace PID podem limitar o acesso<\/td><td>cat \/proc\/$$\/status<\/td><\/tr><tr><td>\/proc\/\/fd<\/td><td>Descritores abertos<\/td><td>Que objetos mant\u00e9m um processo?<\/td><td>Links simb\u00f3licos atuais<\/td><td>Muitos FDs n\u00e3o significam necessariamente uma fuga<\/td><td>ls -l \/proc\/$$\/fd<\/td><\/tr><tr><td>\/proc\/\/maps<\/td><td>Mapeamentos virtuais<\/td><td>Que \u00e1reas est\u00e3o envolvidas num processo?<\/td><td>Lista atualizada de mapeamentos<\/td><td>Muitas vezes demasiado extenso para uma primeira an\u00e1lise<\/td><td>cat \/proc\/$$\/maps<\/td><\/tr><tr><td>\/proc\/diskstats<\/td><td>Dispositivos de bloco - E\/S<\/td><td>Que aparelhos funcionam?<\/td><td>Acumulado desde o arranque<\/td><td>As estimativas requerem duas amostras; os valores podem ser v\u00e1lidos para todo o anfitri\u00e3o<\/td><td>cat \/proc\/diskstats<\/td><\/tr><tr><td>\/proc\/sys\/fs\/file-nr<\/td><td>Utiliza\u00e7\u00e3o de identificadores de ficheiro<\/td><td>Quantos identificadores utiliza o sistema?<\/td><td>Valor atual do contador e limite<\/td><td>O campo do meio \u00e9 nulo nos sistemas Linux modernos<\/td><td>cat \/proc\/sys\/fs\/file-nr<\/td><\/tr><tr><td>\/proc\/sys\/fs\/file-max<\/td><td>Limite de identificadores de ficheiro<\/td><td>Qual \u00e9 o limite m\u00e1ximo global aplic\u00e1vel?<\/td><td>Par\u00e2metro ativo<\/td><td>N\u00e3o confundir com o limite do processo<\/td><td>cat \/proc\/sys\/fs\/file-max<\/td><\/tr><\/tbody><\/table><\/div><p>A tabela serve como um ponto de partida, n\u00e3o como uma cadeia de diagn\u00f3stico. Um valor an\u00f3malo exige sempre uma verifica\u00e7\u00e3o independente: a carga com dados da CPU e de E\/S, os valores de mem\u00f3ria com a informa\u00e7\u00e3o de \u00abPressure Stall\u00bb e os par\u00e2metros do processo com o comportamento do servi\u00e7o. Em particular, \/proc\/diskstats e \/proc\/stat s\u00e3o <strong>contadores cumulativos<\/strong>; a sua varia\u00e7\u00e3o ao longo de um intervalo conhecido \u00e9 mais reveladora para as taxas do que o valor absoluto. Nos contentores, \u00e9 necess\u00e1rio verificar adicionalmente se um ficheiro fornece valores globais do kernel ou uma vis\u00e3o dispon\u00edvel por cgroup. Por isso, as sec\u00e7\u00f5es seguintes classificam os sinais por carga, mem\u00f3ria, processos e E\/S.<\/p><h2 id=\"proc-load-memory\">Carga, CPU e mem\u00f3ria: avalia\u00e7\u00e3o combinada dos sinais<\/h2><p>Quando o sistema est\u00e1 lento, o \/proc\/loadavg \u00e9 um bom ponto de partida, mas n\u00e3o constitui um diagn\u00f3stico definitivo sobre o desempenho da CPU. Os tr\u00eas valores representam a carga m\u00e9dia dos \u00faltimos 1, 5 e 15 minutos. A carga inclui n\u00e3o s\u00f3 as unidades prontas para execu\u00e7\u00e3o no estado R, mas tamb\u00e9m as tarefas no estado de espera ininterrupt\u00edvel D, por exemplo, em opera\u00e7\u00f5es de E\/S. O quarto campo mostra as unidades de agendamento atualmente execut\u00e1veis em compara\u00e7\u00e3o com todas as unidades de agendamento existentes. Elevado <strong>M\u00e9dia de carga<\/strong> pode, por isso, indicar concorr\u00eancia na CPU, acessos de E\/S bloqueados ou ambos. <\/p><figure class=\"wp-block-image size-large wh-figure\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-last-speicher-signale-4bfe68af-detail1-fe433c8680-1024x683.webp\" class=\"wp-image-21653\" alt=\"Liga\u00e7\u00e3o conceptual entre sinais de carga, de mem\u00f3ria, da CPU e de E\/S.\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-last-speicher-signale-4bfe68af-detail1-fe433c8680-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-last-speicher-signale-4bfe68af-detail1-fe433c8680-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-last-speicher-signale-4bfe68af-detail1-fe433c8680-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-last-speicher-signale-4bfe68af-detail1-fe433c8680-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-last-speicher-signale-4bfe68af-detail1-fe433c8680.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\"><figcaption>Ilustra\u00e7\u00e3o conceptual: s\u00f3 a combina\u00e7\u00e3o de v\u00e1rios indicadores-chave permite uma classifica\u00e7\u00e3o fi\u00e1vel da carga.<\/figcaption><\/figure><div class=\"wh-code-window\" data-wh-code=\"\"><div class=\"wh-code-toolbar\"><span>Terminal<\/span><button type=\"button\" class=\"wh-code-copy\" data-wh-copy=\"\" hidden=\"\">Copiar c\u00f3digo<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success=\"\" hidden=\"\">Copiado<\/span><span data-wh-copy-fallback=\"\" hidden=\"\">C\u00f3digo destacado \u2013 por favor, copie<\/span><\/div><pre class=\"wh-code\" data-no-translation=\"\" translate=\"no\"><code class=\"language-sh\">cat \/proc\/loadavg\ngrep -E '^(cpu|intr|ctxt|processes)' \/proc\/stat\ncat \/proc\/meminfo\ncat \/proc\/pressure\/memory<\/code><\/pre><\/div><p>As linhas relativas \u00e0 CPU em \/proc\/stat cont\u00eam os tempos decorridos desde o arranque do sistema em USER_HZ. Para determinar as percentagens de utiliza\u00e7\u00e3o a partir destes dados, \u00e9 necess\u00e1rio comparar duas leituras; uma \u00fanica leitura mostra apenas o tempo acumulado. O valor iowait n\u00e3o \u00e9, neste contexto, uma medida direta da lat\u00eancia do armazenamento: o seu c\u00e1lculo tem limites documentados e pode, em determinadas circunst\u00e2ncias, at\u00e9 diminuir. Por isso, para identificar uma causa relacionada com E\/S, \u00e9 \u00fatil consultar adicionalmente os valores dos dispositivos e o I\/O-PSI. <\/p><p>Mesmo um valor baixo em MemFree n\u00e3o significa necessariamente que haja falta de RAM. O Linux utiliza a mem\u00f3ria n\u00e3o utilizada especificamente para o cache. O MemAvailable estima a quantidade de mem\u00f3ria que as novas aplica\u00e7\u00f5es poder\u00e3o provavelmente receber sem recorrer ao swapping e \u00e9, na maioria das vezes, mais \u00fatil para uma primeira avalia\u00e7\u00e3o. S\u00f3 quando o MemAvailable se torna escasso e, ao mesmo tempo, ocorrem bloqueios de mem\u00f3ria, \u00e9 que se torna mais evidente a indica\u00e7\u00e3o de <strong>press\u00e3o de armazenamento<\/strong>. No entanto, num contentor, estes valores de mem\u00f3ria globais podem provir do anfitri\u00e3o; no caso de recursos garantidos ou limitados, a perspetiva do cgroup2 \u00e9 tamb\u00e9m determinante. <\/p><p>Os ficheiros em \/proc\/pressure complementam esta perspetiva. No caso de \u00abmemory\u00bb e \u00abio\u00bb, \u00absome\u00bb significa que, pelo menos, algumas tarefas ficaram paralisadas durante uma parte do intervalo de tempo; \u00abfull\u00bb indica um estado em que todas as tarefas n\u00e3o inativas estavam bloqueadas simultaneamente. Os valores \u00abavg10\u00bb, \u00abavg60\u00bb e \u00abavg300\u00bb referem-se a 10, 60 e 300 segundos, respetivamente, enquanto \u00abtotal\u00bb \u00e9 um contador acumulado de bloqueios. No caso da CPU, o valor \u00abfull\u00bb a n\u00edvel do sistema n\u00e3o est\u00e1 semanticamente definido e, desde o Linux 5.13, \u00e9 apresentado como zero por motivos de compatibilidade; por conseguinte, n\u00e3o deve ser interpretado como um valor de diagn\u00f3stico a n\u00edvel do sistema. Os PSI de CPU, mem\u00f3ria e E\/S respondem a quest\u00f5es diferentes e n\u00e3o devem ser utilizados de forma intercambi\u00e1vel. <\/p><p>Se um servi\u00e7o reagir lentamente quando o MemFree estiver baixo, verifica primeiro o MemAvailable e o \/proc\/pressure\/memory. Se ambos estiverem normais, isso indica que n\u00e3o existe uma press\u00e3o aguda de mem\u00f3ria a n\u00edvel do sistema. Em seguida, o ficheiro \/proc\/\/status pode indicar se o processo em quest\u00e3o apresenta, por exemplo, um valor elevado de VmRSS, muitos threads ou um estado an\u00f3malo. Esta combina\u00e7\u00e3o permite distinguir uma utiliza\u00e7\u00e3o de mem\u00f3ria normal, mas com grande carga no cache, de um problema que exija uma an\u00e1lise mais aprofundada do processo. <\/p><h2 id=\"proc-process-io\">Analisar processos, descritores de ficheiros e E\/S de dispositivos de armazenamento<\/h2><p>Para um exerc\u00edcio seguro com um processo cuja exist\u00eancia \u00e9 garantida, $$ representa o PID do shell atual. O ficheiro \u00abstatus\u00bb \u00e9 mais leg\u00edvel para o utilizador do que o ficheiro \u00abstat\u00bb, orientado por campos. O nome identifica o processo, o estado indica a sua condi\u00e7\u00e3o, o PPid refere-se ao processo pai e \u00abThreads\u00bb indica o n\u00famero de threads. O VmRSS \u00e9 uma aproxima\u00e7\u00e3o r\u00e1pida da mem\u00f3ria residente, cujo registo RSS \u00e9 escal\u00e1vel e ass\u00edncrono, podendo, por isso, ser impreciso; o VmSize, por outro lado, descreve o espa\u00e7o de endere\u00e7amento virtual. O FDSize descreve o tamanho da tabela de descritores, n\u00e3o necessariamente o n\u00famero de entradas atualmente abertas. As mudan\u00e7as de contexto volunt\u00e1rias e involunt\u00e1rias podem ajudar a classificar o comportamento de agendamento, mas, por si s\u00f3, n\u00e3o constituem prova de erro.  <\/p><div class=\"wh-code-window\" data-wh-code=\"\"><div class=\"wh-code-toolbar\"><span>Terminal<\/span><button type=\"button\" class=\"wh-code-copy\" data-wh-copy=\"\" hidden=\"\">Copiar c\u00f3digo<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success=\"\" hidden=\"\">Copiado<\/span><span data-wh-copy-fallback=\"\" hidden=\"\">C\u00f3digo destacado \u2013 por favor, copie<\/span><\/div><pre class=\"wh-code\" data-no-translation=\"\" translate=\"no\"><code class=\"language-sh\">cat \/proc\/$$\/status\nls -l \/proc\/$$\/fd<\/code><\/pre><\/div><figure class=\"wp-block-image size-large wh-figure\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-prozess-fd-io-4bfe68af-detail2-5a910998ae-1024x683.webp\" class=\"wp-image-21654\" alt=\"Apresenta\u00e7\u00e3o separada dos recursos do processo e das E\/S dos dispositivos a n\u00edvel do sistema, com uma camada de media\u00e7\u00e3o abstra\u00edda.\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-prozess-fd-io-4bfe68af-detail2-5a910998ae-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-prozess-fd-io-4bfe68af-detail2-5a910998ae-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-prozess-fd-io-4bfe68af-detail2-5a910998ae-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-prozess-fd-io-4bfe68af-detail2-5a910998ae-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/procfs-prozess-fd-io-4bfe68af-detail2-5a910998ae.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\"><figcaption>Ilustra\u00e7\u00e3o conceptual: os dados de processo e as E\/S dos dispositivos de bloco s\u00e3o n\u00edveis de an\u00e1lise distintos, que n\u00e3o podem ser associados diretamente num relacionamento de um para um.<\/figcaption><\/figure><p>O diret\u00f3rio fd cont\u00e9m liga\u00e7\u00f5es simb\u00f3licas para ficheiros abertos, pipes, dispositivos ou sockets. Ajuda, por exemplo, a identificar um processo que continua a manter aberto um ficheiro de registo que j\u00e1 foi eliminado. No entanto, \u00e9 perfeitamente normal que haja um grande n\u00famero de descritores de ficheiros abertos em proxies, bases de dados ou servidores orientados para eventos. Para visualiza\u00e7\u00f5es filtradas e a atribui\u00e7\u00e3o entre processos, \u00e9 <a href=\"https:\/\/webhosting.de\/pt\/analise-e-diagnostico-de-ficheiros-abertos-no-linux\/\">Utilizar o lsof para analisar ficheiros abertos<\/a> um complemento adequado. As linhas de comando do cmdline podem revelar argumentos confidenciais; o environ \u00e9 ainda mais sens\u00edvel devido \u00e0 possibilidade de conter dados de acesso ou tokens, pelo que n\u00e3o deve ser consultado de forma rotineira. <\/p><p>O comando `maps` lista \u00e1reas de mem\u00f3ria virtual com permiss\u00f5es, deslocamento, dispositivo, inode e, se for o caso, caminho. O comando `smaps` complementa, para cada mapeamento, valores detalhados da mem\u00f3ria e fornece um instant\u00e2neo mais preciso do que as informa\u00e7\u00f5es do RSS, embora seja mais complexo. Ambos os ficheiros destinam-se a an\u00e1lises aprofundadas da mem\u00f3ria: a sua sa\u00edda pode ser volumosa e a interpreta\u00e7\u00e3o de cada mapeamento requer contexto. Para uma primeira an\u00e1lise, o comando `status` e os ficheiros de mem\u00f3ria e PSI a n\u00edvel do sistema s\u00e3o, na maioria das vezes, mais eficientes. <\/p><p>Em caso de carga elevada e baixa utiliza\u00e7\u00e3o da CPU, o ficheiro \/proc\/diskstats alarga o diagn\u00f3stico ao n\u00edvel dos dispositivos. O ficheiro mant\u00e9m estat\u00edsticas cumulativas de E\/S por dispositivo de bloco. Para avaliar a atividade em termos de taxa, \u00e9 necess\u00e1rio comparar dois momentos no tempo. Nesse contexto, \u00e9 importante distinguir claramente entre unidades f\u00edsicas, parti\u00e7\u00f5es e dispositivos virtuais ou do Device Mapper; os contadores de diferentes n\u00edveis n\u00e3o devem ser somados indiscriminadamente. Um descritor de ficheiro aberto de um processo n\u00e3o pode ser atribu\u00eddo diretamente a um contador de dispositivo do `diskstats`: o sistema de ficheiros, a cache e as camadas de mapeamento intercalam-se entre eles. No entanto, em conjunto com \/proc\/pressure\/io, \u00e9 poss\u00edvel verificar se os bloqueios de E\/S observ\u00e1veis e a atividade do dispositivo coincidem no tempo. <\/p><h2 id=\"proc-monitoring\">O procfs em funcionamento: consultas, monitoriza\u00e7\u00e3o e prote\u00e7\u00e3o de dados<\/h2><p>Para realizar diagn\u00f3sticos operacionais repet\u00edveis, deve tratar as consultas ao procfs como pontos de medi\u00e7\u00e3o: anote o carimbo de data\/hora, o contexto do sistema e a consulta espec\u00edfica. Muitos valores s\u00e3o contadores acumulados desde o arranque; s\u00f3 a diferen\u00e7a entre dois valores, dividida pelo intervalo de tempo, resulta numa taxa. Isto aplica-se, por exemplo, aos contadores de <code data-no-translation=\"\">\/proc\/diskstats<\/code>. Uma consulta isolada pode, portanto, comprovar a exist\u00eancia de atividade, mas n\u00e3o permite quantificar de forma fi\u00e1vel nem o d\u00e9bito nem uma deteriora\u00e7\u00e3o duradoura.  <\/p><p>Um sistema de monitoriza\u00e7\u00e3o deve, entre outras coisas, recolher valores armazenados em intervalos fixos a partir de <code data-no-translation=\"\">\/proc\/meminfo<\/code>, valores dos aparelhos de <code data-no-translation=\"\">\/proc\/diskstats<\/code>, registar os estados dos processos e do sistema, bem como os sinais de impress\u00e3o, caso exista suporte do kernel. Deve converter os valores brutos em unidades adequadas, calcular diferen\u00e7as no caso de contadores e guardar hist\u00f3ricos. Nos contentores, n\u00e3o deve equiparar os valores globais do procfs aos limites de recursos da carga de trabalho: os percursos dos processos podem estar limitados ao espa\u00e7o de nomes do PID, enquanto os valores de mem\u00f3ria ou de dispositivos refletem, em parte, o anfitri\u00e3o. Para os limites e a utiliza\u00e7\u00e3o de um grupo, s\u00e3o necess\u00e1rias m\u00e9tricas cgroup2 complementares. S\u00f3 as tend\u00eancias temporais permitem definir limiares fi\u00e1veis: um valor elevado pode ser normal se se enquadrar na janela de carga esperada; um aumento repentino em rela\u00e7\u00e3o \u00e0 sua pr\u00f3pria linha de base \u00e9 frequentemente mais relevante. As entradas procfs dispon\u00edveis dependem do kernel em execu\u00e7\u00e3o e da sua configura\u00e7\u00e3o.  <\/p><p>Os ficheiros diretos e as ferramentas complementam-se. <code data-no-translation=\"\">ps<\/code>, <code data-no-translation=\"\">top<\/code> ou <code data-no-translation=\"\">htop<\/code> s\u00e3o adequados para a visualiza\u00e7\u00e3o interativa do processo; <code data-no-translation=\"\">free<\/code>, <code data-no-translation=\"\">vmstat<\/code>, <code data-no-translation=\"\">iostat<\/code>, <code data-no-translation=\"\">pidstat<\/code>, <code data-no-translation=\"\">ss<\/code> e <code data-no-translation=\"\">sar<\/code> Dependendo da instala\u00e7\u00e3o, preparam dados para quest\u00f5es espec\u00edficas. O procfs continua a ser \u00fatil se quiseres verificar diretamente o c\u00f3digo-fonte do kernel ou criar um pequeno script f\u00e1cil de compreender. Para alertas e planeamento de capacidade, os dados de s\u00e9ries temporais s\u00e3o, na maioria das vezes, o n\u00edvel mais adequado.<\/p><aside class=\"wh-callout wh-callout-warning\"><p class=\"wh-callout-title\">N\u00e3o divulgar dados de processo de forma imprudente<\/p><p>As linhas de comando podem conter percursos, identificadores de clientes ou dados de acesso introduzidos acidentalmente. As vari\u00e1veis de ambiente de um processo s\u00e3o, muitas vezes, ainda mais sens\u00edveis. Registe, armazene e partilhe estes dados apenas se forem necess\u00e1rios para o diagn\u00f3stico; limite o acesso a pessoas autorizadas.<\/p><\/aside><p>Mesmo nas consultas exclusivamente de leitura, aplicam-se limites de visibilidade. Os direitos de acesso, as op\u00e7\u00f5es de montagem e os espa\u00e7os de nomes PID podem ocultar dados do processo ou limit\u00e1-los a uma vista do contentor. Por outro lado, o facto de um cont\u00eainer ter a sua pr\u00f3pria montagem \/proc n\u00e3o significa que cada ficheiro global do kernel contenha apenas dados desse cont\u00eainer. A aus\u00eancia de uma entrada de processo ou um valor global inesperadamente elevado \u00e9, por isso, um ind\u00edcio de que \u00e9 necess\u00e1rio esclarecer o ambiente de execu\u00e7\u00e3o, as op\u00e7\u00f5es de montagem e o contexto do cgroup.  <\/p><h2 id=\"proc-troubleshooting\">Percursos de diagn\u00f3stico para servi\u00e7os lentos e estrangulamentos de recursos<\/h2><p>A resolu\u00e7\u00e3o de problemas come\u00e7a com um sintoma, n\u00e3o com um valor isolado supostamente respons\u00e1vel. Em seguida, verifica, pelo menos, um sinal independente e regista se a observa\u00e7\u00e3o diz respeito ao anfitri\u00e3o, a uma m\u00e1quina virtual ou a um contentor. Desta forma, evita-se, por exemplo, interpretar precipitadamente uma carga elevada como um problema da CPU ou um grande n\u00famero de descritores abertos como uma fuga de mem\u00f3ria. Os passos seguintes constituem um primeiro diagn\u00f3stico orientativo e n\u00e3o substituem os registos espec\u00edficos da aplica\u00e7\u00e3o.<\/p><div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Percursos de diagn\u00f3stico compactos com o procfs\"><table><caption>Percursos de diagn\u00f3stico compactos com o procfs<\/caption><thead><tr><th scope=\"col\">Sintoma<\/th><th scope=\"col\">Leia primeiro<\/th><th scope=\"col\">Em seguida, alinhar<\/th><th scope=\"col\">Evitar interpreta\u00e7\u00f5es erradas<\/th><\/tr><\/thead><tbody><tr><td>Carga elevada<\/td><td>\/proc\/loadavg<\/td><td>\/proc\/stat, \/proc\/pressure\/io, \/proc\/diskstats<\/td><td>A carga inclui tarefas prontas para execu\u00e7\u00e3o e tarefas em espera cont\u00ednua, e n\u00e3o apenas o trabalho da CPU.<\/td><\/tr><tr><td>Press\u00e3o estimada no reservat\u00f3rio<\/td><td>\/proc\/meminfo<\/td><td>\/proc\/pressure\/memory, \/proc\/\/status<\/td><td>Um valor baixo de MemFree, por si s\u00f3, n\u00e3o indica falta de RAM; os valores de MemAvailable e Stalls tamb\u00e9m s\u00e3o importantes.<\/td><\/tr><tr><td>Tempo de espera de E\/S significativo<\/td><td>\/proc\/stat<\/td><td>\/proc\/pressure\/io, \/proc\/diskstats em dois pontos de medi\u00e7\u00e3o<\/td><td>O iowait n\u00e3o \u00e9 uma medi\u00e7\u00e3o direta da lat\u00eancia e apresenta limita\u00e7\u00f5es documentadas.<\/td><\/tr><tr><td>Muitos ficheiros abertos<\/td><td>\/proc\/sys\/fs\/file-nr e \/proc\/sys\/fs\/file-max<\/td><td>\/proc\/\/fd, comportamento do servi\u00e7o<\/td><td>Muitos descritores podem ser normais para um servidor; os limites e o crescimento s\u00e3o mais importantes.<\/td><\/tr><tr><td>O servi\u00e7o n\u00e3o inicia<\/td><td>\/proc\/\/status, desde que seja criado um processo<\/td><td>\/proc\/\/fd, registo de servi\u00e7os, recursos ocupados<\/td><td>Um processo n\u00e3o vis\u00edvel pode ter sido encerrado ou estar a ser executado fora do espa\u00e7o de nomes PID vis\u00edvel.<\/td><\/tr><\/tbody><\/table><\/div><p>Quando a m\u00e9dia de carga for elevada, verifica primeiro se s\u00e3o as tarefas em execu\u00e7\u00e3o ou em espera que est\u00e3o a influenciar esse valor. Os dados de carga representam valores m\u00e9dios ao longo de um, cinco e 15 minutos e t\u00eam em conta tanto os estados R como os estados D. Por isso, compara os campos de tempo de CPU com a press\u00e3o de E\/S e a atividade dos dispositivos apenas com cautela. Em particular, <strong>iowait<\/strong> n\u00e3o deve ser interpretado isoladamente como lat\u00eancia de mem\u00f3ria.   <\/p><p>Se a aplica\u00e7\u00e3o for lenta e o MemFree for pequeno, ent\u00e3o <strong>MemDispon\u00edvel<\/strong> o melhor valor inicial de contexto. Adicione o PSI de mem\u00f3ria e o estado do processo em quest\u00e3o, como o seu VmRSS, o n\u00famero de threads e o estado. O PSI distingue, no que diz respeito \u00e0 mem\u00f3ria e \u00e0s E\/S, entre <code data-no-translation=\"\">some<\/code> para tarefas parcialmente bloqueadas e <code data-no-translation=\"\">full<\/code> para o bloqueio total de tarefas que n\u00e3o estejam em estado de inatividade. A aus\u00eancia de ficheiros PSI pode dever-se \u00e0 configura\u00e7\u00e3o do kernel ou ao ambiente; tal n\u00e3o indica necessariamente a exist\u00eancia de um gargalo.   <\/p><p>Para o diagn\u00f3stico de ficheiros e processos, podem ser necess\u00e1rios direitos e <strong>Espa\u00e7os de nomes PID<\/strong> limitar a relev\u00e2ncia da informa\u00e7\u00e3o. Em ambientes de conten\u00e7\u00e3o, o \/proc descreve frequentemente apenas o ambiente de processos atribu\u00eddo. Por isso, em caso de acesso recusado ou de diret\u00f3rios incompletos, deve verificar os direitos do utilizador, as op\u00e7\u00f5es de montagem do procfs e o contexto do namespace antes de tirar qualquer conclus\u00e3o t\u00e9cnica com base na aus\u00eancia de dados.  <\/p><h2 id=\"proc-decisions\">Corrigir equ\u00edvocos comuns e escolher as ferramentas adequadas<\/h2><p>Na administra\u00e7\u00e3o do Linux, quatro erros de julgamento levam frequentemente \u00e0 ado\u00e7\u00e3o de medidas erradas. Poucos <code data-no-translation=\"\">MemFree<\/code> n\u00e3o significa automaticamente falta de RAM, porque o kernel utiliza a mem\u00f3ria, entre outras coisas, como cache; para novas aplica\u00e7\u00f5es, o MemAvailable \u00e9 a estimativa mais significativa. Uma carga elevada n\u00e3o comprova a satura\u00e7\u00e3o da CPU, uma vez que tamb\u00e9m s\u00e3o inclu\u00eddas tarefas em espera ininterrupta. Uma propor\u00e7\u00e3o elevada de iowait n\u00e3o mede a lat\u00eancia imediata de um suporte de dados. E o procfs n\u00e3o \u00e9 id\u00eantico em todos os casos: a vers\u00e3o do kernel, a configura\u00e7\u00e3o, o hardware, os m\u00f3dulos e os namespaces influenciam os ficheiros e os campos.   <\/p><p>Escolhe o m\u00e9todo de acordo com a quest\u00e3o. Para uma an\u00e1lise pontual das causas, fornece <strong>procfs<\/strong> Dados brutos diretos do kernel em execu\u00e7\u00e3o. Para obter uma vis\u00e3o geral r\u00e1pida e leg\u00edvel, as ferramentas especializadas de linha de comandos s\u00e3o, na maioria das vezes, mais eficientes. Quando o que importa s\u00e3o tend\u00eancias, alertas ou decis\u00f5es relativas \u00e0 capacidade, \u00e9 necess\u00e1rio um sistema de monitoriza\u00e7\u00e3o que ordene os pontos de medi\u00e7\u00e3o cronologicamente, calcule diferen\u00e7as nos contadores e mantenha valores hist\u00f3ricos de compara\u00e7\u00e3o. No caso de limites de recursos de servi\u00e7os ou contentores individuais, uma an\u00e1lise ao n\u00edvel do cgroup complementa a vis\u00e3o global do anfitri\u00e3o; o PSI tamb\u00e9m pode estar dispon\u00edvel por cgroup, se configurado adequadamente.  <\/p><p>\u00c9 necess\u00e1rio ter especial cautela no que diz respeito a <code data-no-translation=\"\">\/proc\/sys<\/code>. A leitura de um par\u00e2metro serve para fins de diagn\u00f3stico; a grava\u00e7\u00e3o altera o comportamento ativo do kernel. Altere um valor apenas se a causa for compreendida, o valor inicial tiver sido documentado, os efeitos forem observ\u00e1veis e houver um caminho de retorno definido. Os diret\u00f3rios <code data-no-translation=\"\">fs<\/code>, <code data-no-translation=\"\">vm<\/code> e <code data-no-translation=\"\">net<\/code> organizam os par\u00e2metros por temas, mas n\u00e3o fornecem orienta\u00e7\u00f5es universais para o ajuste.  <\/p><p>O exemplo <code data-no-translation=\"\">drop_caches<\/code> mostra a diferen\u00e7a entre interven\u00e7\u00e3o e otimiza\u00e7\u00e3o: a documenta\u00e7\u00e3o do kernel descreve a interface como n\u00e3o destrutiva, mas alerta para problemas de desempenho e n\u00e3o a recomenda como medida operacional regular fora de cen\u00e1rios de teste ou depura\u00e7\u00e3o. Uma regra conservadora \u00e9, portanto: primeiro medir, depois efetuar uma altera\u00e7\u00e3o fundamentada e limitada, observar os efeitos e os efeitos secund\u00e1rios e documentar a decis\u00e3o.  <\/p><section class=\"wh-sources\"><h2>Fontes e estado atual dos conhecimentos<\/h2><p>Estado da pesquisa: <time datetime=\"2026-09-22\">2026-09-22<\/time><\/p><p>Data da pesquisa: 22 de setembro de 2026. Os caminhos e campos vis\u00edveis do procfs podem variar consoante a vers\u00e3o do kernel, a configura\u00e7\u00e3o, o hardware, os namespaces e as autoriza\u00e7\u00f5es. A documenta\u00e7\u00e3o do kernel utilizada para o `drop_caches` e os par\u00e2metros de rede est\u00e1 associada a vers\u00f5es espec\u00edficas; caso a vers\u00e3o do kernel seja diferente, consulte a documenta\u00e7\u00e3o do kernel em utiliza\u00e7\u00e3o.<\/p><div class=\"wh-source-urls\"><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/docs.kernel.org\/filesystems\/proc.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/docs.kernel.org\/admin-guide\/sysctl\/<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/docs.kernel.org\/admin-guide\/sysctl\/fs.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/docs.kernel.org\/5.17\/admin-guide\/sysctl\/vm.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/docs.kernel.org\/7.1\/admin-guide\/sysctl\/net.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/man7.org\/linux\/man-pages\/man5\/proc_loadavg.5.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/www.man7.org\/linux\/man-pages\/man5\/proc_stat.5.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/www.man7.org\/linux\/man-pages\/man5\/proc_meminfo.5.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/docs.kernel.org\/accounting\/psi.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/man7.org\/linux\/man-pages\/man5\/proc_pid_status.5.html<\/span><\/p><p><span class=\"wh-source-url\" data-no-translation=\"\" dir=\"ltr\">https:\/\/man7.org\/linux\/man-pages\/man5\/proc_diskstats.5.html<\/span><\/p><\/div><\/section><\/div>","protected":false},"excerpt":{"rendered":"<p>O procfs fornece uma vis\u00e3o direta do kernel do Linux em execu\u00e7\u00e3o. Este guia explica os ficheiros importantes na diret\u00f3ria \/proc, classifica os contadores e os instant\u00e2neos e apresenta m\u00e9todos de diagn\u00f3stico seguros para a carga, a mem\u00f3ria, os processos, as E\/S e os par\u00e2metros sysctl.<\/p>","protected":false},"author":1,"featured_media":21652,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[780],"tags":[],"class_list":["post-21649","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"surfer_file_name":null,"surfer_file_original_url":null,"_wp_attachment_image_alt":null,"litespeed-optimize-set":null,"litespeed-optimize-size":null,"_oembed_b5e1eb923ad3b086e579b1befcd4075c":null,"_elementor_source_image_hash":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"_source_url":null,"_elementor_migrations_state_8b2d":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":"780","_wh_make_key":"wh_4bfe68af3a01e55dbd77837eb0b68ff1","rank_math_internal_links_processed":"1","_wh_make_topic":"Linux procfs f\u00fcr Administratoren \u2013 wichtige Dateien im \u00dcberblick","_wh_make_input_keywords":["procfs linux","\/proc filesystem","linux administration"],"_wh_make_config":{"research_model":"gpt-5.6-terra","writer_model":"gpt-5.6-terra","review_model":"gpt-5.6-sol","image_model":"gpt-image-2.5-flare","image_quality":"medium","image_format":"webp","final_status":"draft","charts_enabled":true},"_wh_make_links":{"I1":{"id":"I1","post_id":20324,"url":"https:\/\/webhosting.de\/kernel-livepatch-oracle-linux-oracle-ksplice-ueberblick-sicherheit\/","title":"Livepatch do kernel no Oracle Linux: vis\u00e3o geral do oracle ksplice","excerpt":"Com o Oracle Ksplice, aplico atualiza\u00e7\u00f5es de seguran\u00e7a do kernel e do espa\u00e7o de utilizador no Oracle Linux em tempo real \u2013 sem reinicializa\u00e7\u00e3o e sem interromper as cargas de trabalho em execu\u00e7\u00e3o. Este artigo explica a utiliza\u00e7\u00e3o pr\u00e1tica do Kernel Livepatch, destaca os clientes Ksplice e mostra como implemento atualiza\u00e7\u00f5es de forma segura, reproduz\u00edvel e audit\u00e1vel. Pontos-chave: Sem reinicializa\u00e7\u00e3o: as atualiza\u00e7\u00f5es do kernel s\u00e3o executadas sem tempo de inatividade. Espa\u00e7o do utilizador: a glibc\/OpenSSL podem ser corrigidas em tempo real. Hipervisor: atualiza\u00e7\u00f5es do KVM e do Xen em tempo real. Revertimento: anular patches sem reinicializa\u00e7\u00e3o. Automatizado: controlo atrav\u00e9s de cliente e API. Kernel Livepatch: de forma sucinta e clara Com o Kernel Livepatch, atualizo corre\u00e7\u00f5es de seguran\u00e7a diretamente no kernel ativo \u2013 sem reinicializa\u00e7\u00e3o. Os patches alteram fun\u00e7\u00f5es na mem\u00f3ria, de modo que os servi\u00e7os continuam a funcionar e n\u00e3o s\u00e3o necess\u00e1rias janelas de manuten\u00e7\u00e3o. Isto reduz os tempos de inatividade, diminui o risco e mant\u00e9m os sistemas dispon\u00edveis de forma cont\u00ednua. Corrijo vulnerabilidades mais rapidamente, porque n\u00e3o tenho de planear reinicializa\u00e7\u00f5es. Para servidores produtivos com funcionamento 24 horas por dia, 7 dias por semana, isto \u00e9 uma vantagem clara, especialmente no que diz respeito a bases de dados e virtualiza\u00e7\u00e3o. Vis\u00e3o geral do Oracle Ksplice O Oracle Ksplice fornece patches em tempo real para o kernel, o hipervisor e bibliotecas importantes do espa\u00e7o do utilizador. Aplico as atualiza\u00e7\u00f5es de forma controlada, monitorizo o estado e, se necess\u00e1rio, reverto as altera\u00e7\u00f5es imediatamente. Assim, mantenho um elevado n\u00edvel de seguran\u00e7a sem interromper as cargas de trabalho. O Enhanced Client alarga o \u00e2mbito para al\u00e9m do kernel e abrange a glibc, o OpenSSL e o KVM\/Xen. Isto resulta num conceito de patch coerente para anfitri\u00f5es e convidados, tanto no local como na nuvem. Processo no kernel: passo a passo O Ksplice calcula a diferen\u00e7a entre o kernel original e o kernel de destino e, a partir da\u00ed, cria um m\u00f3dulo de patch. Carrego este m\u00f3dulo no sistema em execu\u00e7\u00e3o, onde substitui ou complementa as fun\u00e7\u00f5es afetadas. Antes da aplica\u00e7\u00e3o, o Ksplice verifica a consist\u00eancia do kernel ativo, para que nenhuma discrep\u00e2ncia conduza a situa\u00e7\u00f5es de risco. Durante a atualiza\u00e7\u00e3o, os servi\u00e7os permanecem acess\u00edveis; o processo mant\u00e9m-se leve. Se houver v\u00e1rias corre\u00e7\u00f5es pendentes, automatizo o processo, por exemplo, com o comando \u00abksplice upgrade -y\u00bb, e documento o resultado imediatamente ap\u00f3s a implementa\u00e7\u00e3o. Espa\u00e7o do utilizador, KV"},"I2":{"id":"I2","post_id":18128,"url":"https:\/\/webhosting.de\/kernel-tuning-linux-sysctl-parameter-serverboost-opti\/","title":"Afina\u00e7\u00e3o do kernel no alojamento Linux: par\u00e2metros Sysctl em resumo","excerpt":"O ajuste do kernel na hospedagem Linux proporciona ganhos de desempenho mensur\u00e1veis, pois adapto de forma espec\u00edfica os par\u00e2metros sysctl relativos \u00e0 rede, \u00e0 mem\u00f3ria, \u00e0 CPU e \u00e0 seguran\u00e7a. Para tal, carrego perfis sem reiniciar o sistema e ajusto os valores de acordo com as cargas de trabalho, a concorr\u00eancia e o comportamento de E\/S, para que o servidor reaja rapidamente e funcione de forma fi\u00e1vel sob carga. Pontos-chave: o sysctl controla o comportamento do kernel em tempo de execu\u00e7\u00e3o. Otimizar a rede: backlogs, sockets, TCP. Otimizar a mem\u00f3ria: swapping, p\u00e1ginas sujas. Ajustar a CPU: agendador, PIDs. Refor\u00e7ar a seguran\u00e7a sem sobrecarga. O que \u00e9 o sysctl na hospedagem Linux? Com o sysctl, leio e alterei par\u00e2metros do kernel em tempo de execu\u00e7\u00e3o, sem compilar o kernel. Os valores encontram-se em ficheiros no diret\u00f3rio \/proc\/sys, como por exemplo net\/ipv4\/tcp_max_syn_backlog, e controlam a rede, a mem\u00f3ria e a seguran\u00e7a. Para cargas de trabalho de alojamento com muitas liga\u00e7\u00f5es, o ajuste direto reduz picos de lat\u00eancia e tempos de espera. Fa\u00e7o altera\u00e7\u00f5es tempor\u00e1rias com o comando `sysctl -w` e guardo perfis permanentes em `\/etc\/sysctl.d\/*.conf`. Depois, carrego tudo com `sysctl --system` e verifico o `dmesg`, bem como os registos do Journal, para detetar rapidamente eventuais erros de configura\u00e7\u00e3o. Como utilizo o sysctl com seguran\u00e7a: antes de efetuar altera\u00e7\u00f5es, guardo os perfis e documento os valores atuais com o comando sysctl -a, para poder reverter as altera\u00e7\u00f5es a qualquer momento. Testo primeiro os novos valores em m\u00e1quinas virtuais de teste com carga compar\u00e1vel. Depois, aumentei os par\u00e2metros gradualmente, observo as m\u00e9tricas e fa\u00e7o novos ajustes. \u00c9 assim que evito OOM-Kills, quedas de socket e retransmiss\u00f5es espor\u00e1dicas. Para configura\u00e7\u00f5es reproduz\u00edveis, crio um ficheiro pr\u00f3prio, como \/etc\/sysctl.d\/99-hosting.conf, e carrego-o de forma controlada. Testar temporariamente o #: `sudo sysctl -w net.core.somaxconn=65535` `sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096 Definir # de forma permanente: sudo tee \/etc\/sysctl.d\/99-hosting.conf &gt;\/dev\/null &lt;&lt;&#039;EOF&#039; net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 4096 vm.swappiness = 10 vm.dirty_ratio = 20 EOF sudo sysctl --system Par\u00e2metros de rede para servidores web. Para um grande n\u00famero de liga\u00e7\u00f5es simult\u00e2neas, aumento o valor de somaxconn para evitar que a fila de espera do Nginx ou do Apache transborde. Com net.ipv4.tcp_max_syn_backlog, aumento a fila de liga\u00e7\u00f5es semiabertas, o que, em condi\u00e7\u00f5es de tr\u00e1fego intenso,"},"I3":{"id":"I3","post_id":20594,"url":"https:\/\/webhosting.de\/lsof-linux-offene-dateien-analyse-diagnose\/","title":"Utilizar o lsof de forma eficaz: analisar ficheiros e processos abertos","excerpt":"Ich setze lsof linux ein, um in Sekunden zu sehen, welcher Prozess welche Datei, Socket oder welchen Port offen h\u00e4lt. So erkenne ich blockierte Logs, belegte Ports und gesperrte Dateien ohne Umwege und l\u00f6se St\u00f6rungen zielgerichtet. Zentrale Punkte Damit der Einstieg gelingt, fasse ich die wichtigsten Aspekte kurz zusammen. Ressourcen sichtbar machen: Prozesse, Dateien, Verzeichnisse, Ger\u00e4te, Pipes, Sockets. Filter nutzen: nach Prozessname (-c), PID (-p), Benutzer (-u), Datei, Verzeichnis (+d\/+D), Port (-i). Fehler eingrenzen: gesperrte Dateien finden, Portkonflikte aufl\u00f6sen, h\u00e4ngende Dienste zuordnen. Netzwerk pr\u00fcfen: aktive Verbindungen und belegte Ports schnell identifizieren. Workflow straffen: erst eingrenzen, dann gezielt pr\u00fcfen, anschlie\u00dfend handeln. Warum lsof im Alltag z\u00e4hlt Ich nutze lsof, wenn ein Dienst nicht startet, eine Datei \u201ebusy\u201c meldet oder ein Port bereits belegt ist. Das Tool verbindet Datei, Prozess, Benutzer und Netzwerk in einer klaren Sicht. Ich erkenne sofort, welcher PID den Zugriff h\u00e4lt und seit wann. So handle ich statt zu raten und beende den richtigen Prozess, statt versehentlich den falschen Dienst zu stoppen. Gerade auf produktiven Servern gewinne ich damit Minuten bis Stunden, weil ich die Ursache direkt am Prozess festmache. Dieser Ansatz spart Tickets, reduziert Ausf\u00e4lle und schafft belastbare Erkenntnisse. Grundsyntax und Ausgabe verstehen Die Grundform lautet lsof [Optionen] &lt;Ziel&gt; und liefert ohne Parameter alle aktuell offenen Objekte. Auf stark ausgelasteten Systemen filtere ich die Ausgabe, statt mich durch tausende Zeilen zu arbeiten. Wichtig ist, dass Linux \u201eDatei\u201c weit fasst: dazu z\u00e4hlen Verzeichnisse, Ger\u00e4te, Bibliotheken und Netzwerk-Sockets. In der Ausgabe helfen Spalten wie COMMAND, PID, USER, FD, TYPE, NAME. Ich richte meinen Blick zuerst auf FD (Dateideskriptor), TYPE (REG, DIR, IPv4\/6) und NAME mit Pfad oder Portangabe. Wer diese Spalten liest, versteht in kurzer Zeit den aktuellen Systemzustand und ordnet Ressourcen sauber zu Prozessen. Installation und Berechtigungen in der Praxis Auf vielen Distributionen ist lsof nicht vorinstalliert. Ich installiere es daher fr\u00fchzeitig \u00fcber den Paketmanager (apt insta"}},"_wh_make_stage":"entwurf","_wh_make_research_date":"2026-09-22","_wh_make_sitemap_info":{"index":"https:\/\/webhosting.de\/sitemap_index.xml","sitemaps":["https:\/\/webhosting.de\/post-sitemap1.xml","https:\/\/webhosting.de\/post-sitemap2.xml","https:\/\/webhosting.de\/post-sitemap3.xml","https:\/\/webhosting.de\/post-sitemap4.xml"],"url_count":3092,"fetched_at":"2026-09-22T03:42:35+00:00","selected_ids":[20324,18128,20594]},"_wh_make_draft_hash":"bfdaf9e7d44d670e5d156feda1b7015d25a643f1321ba185b7f8fd15d38a8ca1","_wh_make_work":{"version":"2.1","identity":{"sheet_ref":"1VMjxV8Q73i0Q1HO6s-u4jNHVRF0snliGCeg97intLPs","sheet_name":"Tabellenblatt1","external_id":"1386","topic":"Linux procfs f\u00fcr Administratoren \u2013 wichtige Dateien im \u00dcberblick","keywords":["procfs linux","\/proc filesystem","linux administration"],"category_input":"780"},"config":{"research_model":"gpt-5.6-terra","writer_model":"gpt-5.6-terra","review_model":"gpt-5.6-sol","image_model":"gpt-image-2.5-flare","image_quality":"medium","image_format":"webp","final_status":"draft","charts_enabled":true},"phase":"done","pending":null,"receipts":{"71a606c73073acb4042020c3952de4d4":"b009a40f880ed74f6b5c58a57387d8a137ddcd313831b4b7e65b3b6087a873e3","bf5ef0afe81bff06d64e1f2192080095":"bd6119be8c56af22935021629da9b86028c2ef7388132396679f3db5839ddede","23d7b85a19c3a588cf1ae808e44a02d5":"64ecae8725e3c95dffe3e421b8a0de19a8d1c0e5576f82dd46c2b974dd1a1dce","265b0195f2bbd3fe54c408a58c583078":"aab6a20756ff5321fc40862a310de7f77aefe7b7f8a61282bb207c4b29812784","10dd185c9e68e880cbfa341be1017e42":"94f28451bd20d4ad72c4e2180c32bb8b7640443dc3237764503598ba56c4b72f","2b344208a5cdfa03fb14b181daaacab7":"91449995ef6b1bfdf300839ec11234d6ad68916af1c9fdc7dfb150b84e6fe6e0","47b9972c3a85c20d135bb6f77968c58a":"39d8b4bef966e2703db549b06bc5b3cacd5a2f43bee688201a3ded4b6fe1e816","1e91e3d00fd20b26c9ae106396ec02bf":"b9b19889bff8bc7c45288c5cea913db3b6b3c36daf687f7b1be215760e6b63c7","1a13bbea094331829e89c25e79bcbca3":"5b15a2466f705fdb76c37f948bac4ae5c7ab5bfbb512add5307bb8aba06f1eb9","34526c07aeb09223cbe08bd32e68d423":"dc36dbb668a58a0903f4fb7f87cfe4ebf7b573044f95d01457af5c2c8a11ed15","b1c43b362eaa9c6b4a47c5ca0d44df0c":"246dc1a7993f7605763d10eecbb6009de0932af5b0d25a34f7310ed61f1d804e","245b49e67839ba6a8c9166f5f2077523":"a6585bdbd0935af0fe730a94d5f759320610ac3b1aa3e7042997e00919daeb25","e3ab60134a30110be714c49548588248":"be05c9f92fd706c6639d1294e032c30a9630b42042fa49f53ed7d1d70f29ac8d"},"parts":{"1":[{"id":"proc-basics","heading":"procfs verstehen: virtuelle Kernelansicht statt Datenspeicher","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Das ","ref":""},{"kind":"strong","text":"procfs","ref":""},{"kind":"text","text":" ist ein virtuelles Dateisystem: Die Eintr\u00e4ge unter \/proc bilden Datenstrukturen und Zust\u00e4nde des laufenden Linux-Kernels ab. Sie liegen nicht als dauerhaft gespeicherte Inhalte auf einem Datentr\u00e4ger. Beim Lesen erzeugt der Kernel die jeweilige Ansicht aus seinem aktuellen Zustand; nach einem Neustart beginnen etwa viele Z\u00e4hler erneut. Deshalb ist \/proc eine Schnittstelle f\u00fcr Beobachtung und teilweise Steuerung, kein Ort f\u00fcr eigene Dateien oder persistente Konfigurationen. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr die Administration sind drei Bereiche zu unterscheiden. Globale Statusdateien wie \/proc\/meminfo, \/proc\/stat oder \/proc\/loadavg beschreiben den Host beziehungsweise die sichtbare Systeminstanz. Verzeichnisse mit numerischen Namen, etwa \/proc\/1234, liefern Details zu einem einzelnen Prozess. Unter \/proc\/sys liegen dagegen Kernelparameter, die abh\u00e4ngig von Berechtigung und Parameter sowohl lesbar als auch schreibbar sein k\u00f6nnen. Die \u00e4hnliche Dateiform darf nicht dar\u00fcber hinwegt\u00e4uschen, dass Statusabfrage und Konfigurations\u00e4nderung grundverschiedene Folgen haben. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Welche Pfade und Felder vorhanden sind, ist nicht auf jedem Linux-System identisch. Kernelversion und -konfiguration, Architektur, erkannte Hardware sowie geladene Module beeinflussen die sichtbaren Eintr\u00e4ge. Auch ein Prozess- oder anderer Namespace kann die Ansicht begrenzen. Skripte sollten daher Dateien und Felder pr\u00fcfen, bevor sie deren Inhalt auswerten, statt eine vollst\u00e4ndige, \u00fcberall gleiche procfs-Struktur vorauszusetzen. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Davon abzugrenzen ist sysfs unter \/sys: Es stellt vor allem Ger\u00e4te, Treiber und Hardwareobjekte dar. F\u00fcr Ressourcenverteilung und Grenzen von Gruppen ist au\u00dferdem cgroup2 relevant. procfs bleibt jedoch die unmittelbare Quelle f\u00fcr viele Kernel- und Prozesszust\u00e4nde, die bei einer ersten Diagnose ben\u00f6tigt werden. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]}]},{"id":"proc-time-context","heading":"Z\u00e4hler, Momentaufnahmen und Sichtbarkeit richtig einordnen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Der Wert allein erkl\u00e4rt bei procfs selten ein Problem. Zuerst ist sein Zeitbezug zu kl\u00e4ren: Einige Angaben sind ","ref":""},{"kind":"strong","text":"kumulative Z\u00e4hler","ref":""},{"kind":"text","text":" seit Systemstart, andere beschreiben einen aktuellen Zustand, wieder andere bilden gleitende Zeitfenster ab. Ein hoher Z\u00e4hlerstand zeigt zun\u00e4chst nur, dass sich ein Ereignis seit dem Boot summiert hat. Eine Rate entsteht erst aus zwei Messpunkten: Differenz der Werte geteilt durch das dazwischenliegende Zeitintervall. Das gilt beispielsweise f\u00fcr viele CPU-, Interrupt- und Datentr\u00e4gerz\u00e4hler. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Datei \/proc\/uptime liefert die vergangene Betriebsdauer und die aggregierte Idle-Zeit. Sie hilft, Z\u00e4hler seit dem Start zeitlich einzuordnen, ersetzt aber keine Messreihe. Eine einmalige Abfrage ist eine Momentaufnahme; f\u00fcr belastbare Aussagen \u00fcber Trends, Spitzen oder wiederkehrende Last braucht es wiederholte Abfragen mit Zeitstempel. Dabei k\u00f6nnen sich Werte bereits w\u00e4hrend des Lesens ver\u00e4ndern, weil der Kernel weiterarbeitet. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch die sichtbaren Daten haben Grenzen. \/proc\/self verweist stets auf den Prozess, der den Pfad gerade aufl\u00f6st. Damit ist er f\u00fcr Skripte und interaktive Pr\u00fcfungen praktisch, ohne eine PID anzunehmen. Der Zugriff auf fremde Prozessverzeichnisse kann jedoch durch Dateirechte, Linux-Capabilities und die procfs-Mount-Option ","ref":""},{"kind":"code","text":"hidepid","ref":""},{"kind":"text","text":" eingeschr\u00e4nkt sein. Fehlende Einblicke sind in diesem Fall kein defektes procfs, sondern ein Schutz gegen das Auslesen sensibler Prozessinformationen. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Besondere Vorsicht gilt in Containern. Eine procfs-Instanz kann an einen PID-Namespace gebunden sein; dann zeigt \/proc nur die Prozesse, die in dieser Namespace-Sicht existieren. Werte und PIDs aus einem Container beschreiben folglich nicht automatisch den gesamten Host. Vor jeder Diagnose ist daher zu kl\u00e4ren, ob die Shell auf dem Host, in einer VM oder in einem Container l\u00e4uft. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]}]},{"id":"proc-sysctl-boundary","heading":"Lesen, konfigurieren und absichern unter \/proc\/sys","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Der Bereich ","ref":""},{"kind":"strong","text":"\/proc\/sys","ref":""},{"kind":"text","text":" ist die Dateisystemansicht der sysctl-Schnittstelle. Das Lesen eines Werts dient der Diagnostik. Ein Schreibzugriff ver\u00e4ndert dagegen unmittelbar das Verhalten des laufenden Kernels und kann Dienste, Ressourcenverbrauch oder Sicherheitsmerkmale beeinflussen. Dass eine \u00c4nderung ohne Neustart wirkt, macht sie nicht risikolos und auch nicht automatisch dauerhaft: Persistenz h\u00e4ngt von der gew\u00e4hlten Systemkonfiguration ab. ","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Verzeichnisstruktur erleichtert die erste Einordnung. Unter \/proc\/sys\/fs stehen unter anderem globale Dateisystem- und File-Handle-Parameter. \/proc\/sys\/vm b\u00fcndelt Einstellungen der Speicherverwaltung, w\u00e4hrend \/proc\/sys\/net netzwerkbezogene Parameter enth\u00e4lt. Welche Unterverzeichnisse und Schl\u00fcssel verf\u00fcgbar sind, h\u00e4ngt wiederum von Kernelkonfiguration und Funktionen des Systems ab. Ein vorhandener Parameter ist daher kein allgemeines Tuning-Rezept; seine Dokumentation und der konkrete Workload sind ma\u00dfgeblich. ","ref":""},{"kind":"citation","text":"","ref":"S10"},{"kind":"citation","text":"","ref":"S11"},{"kind":"citation","text":"","ref":"S12"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein Gegenbeispiel f\u00fcr scheinbare Optimierung ist ","ref":""},{"kind":"code","text":"drop_caches","ref":""},{"kind":"text","text":" unter \/proc\/sys\/vm. Die Kernel-Dokumentation ordnet die Funktion Debugging und Tests zu und r\u00e4t von einem Einsatz au\u00dferhalb solcher Zwecke ab, weil das Leeren wiederverwendbarer Caches Leistung kosten kann. Wenig freier Speicher ist f\u00fcr sich genommen kein Grund, Caches zu verwerfen: Der Kernel nutzt RAM bewusst auch f\u00fcr Dateicache. ","ref":""},{"kind":"citation","text":"","ref":"S11"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Vor jeder \u00c4nderung sollte eine nachvollziehbare Ursache vorliegen. Sichere zuerst den Ausgangswert, dokumentiere Zweck und erwartete Nebenwirkungen, \u00e4ndere kontrolliert und beobachte anschlie\u00dfend passende Messwerte sowie Dienstverhalten. Plane den R\u00fcckweg vorab und \u00fcbernimm einen Wert erst nach fachlicher Pr\u00fcfung in eine dauerhafte Konfiguration. Weiterf\u00fchrende Grundlagen zu Parametern und ihrer kontrollierten Verwaltung behandelt der Beitrag ","ref":""},{"kind":"internal_link","text":"Kernel-Tuning im Linux-Hosting: Sysctl-Parameter im \u00dcberblick","ref":"I2"},{"kind":"text","text":".","ref":""}]}]}],"2":[{"id":"proc-overview-table","heading":"Die wichtigsten procfs-Dateien nach Administrationsaufgabe","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Die Auswahl einer procfs-Datei sollte von der Administrationsfrage ausgehen, nicht von einer m\u00f6glichst vollst\u00e4ndigen Verzeichnisliste. Globale Dateien beschreiben den Host oder den sichtbaren Namespace, Prozesspfade einen einzelnen Prozess, und Eintr\u00e4ge unter \/proc\/sys\/fs liefern Konfiguration und systemweite Grenzen. Einige Werte sind aktuelle Zust\u00e4nde, andere seit dem Boot kumulierte Z\u00e4hler oder gleitende Durchschnitte. Diese Unterscheidung entscheidet dar\u00fcber, ob ein einzelnes Auslesen gen\u00fcgt oder zwei Messpunkte n\u00f6tig sind.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"table","caption":"Wichtige procfs-Dateien f\u00fcr typische Verwaltungsfragen","headers":["Pfad","Zweck","Typische Frage","Datencharakter","Wichtige Einschr\u00e4nkung","Sichere Leseabfrage"],"rows":[["\/proc\/loadavg","Systemlast","Sind Aufgaben wartend?","1-, 5-, 15-Minuten-Mittel","Keine reine CPU-Auslastung","cat \/proc\/loadavg"],["\/proc\/stat","CPU- und Kernelz\u00e4hler","Wie verteilen sich CPU-Zeiten?","Seit Boot kumuliert","iowait nicht isoliert bewerten","grep -E '^(cpu|intr|ctxt|processes)' \/proc\/stat"],["\/proc\/meminfo","Speicher\u00fcbersicht","Ist Speicher verf\u00fcgbar?","Aktuelle Speicherwerte","MemFree allein gen\u00fcgt nicht","cat \/proc\/meminfo"],["\/proc\/pressure\/cpu","CPU-Stalls","Warten Tasks auf CPU?","Zeitfenster und Z\u00e4hler","full kann systemweit null sein","cat \/proc\/pressure\/cpu"],["\/proc\/pressure\/memory","Speicherdruck","Blockiert Speicherknappheit Tasks?","Zeitfenster und Z\u00e4hler","PSI muss verf\u00fcgbar sein","cat \/proc\/pressure\/memory"],["\/proc\/pressure\/io","I\/O-Stalls","Warten Tasks auf I\/O?","Zeitfenster und Z\u00e4hler","Kein Ersatz f\u00fcr Ger\u00e4teanalyse","cat \/proc\/pressure\/io"],["\/proc\/<PID>\/status","Prozessstatus","Wie gro\u00df und aktiv ist ein Prozess?","Aktuelle Prozessdaten","Rechte k\u00f6nnen Zugriff begrenzen","cat \/proc\/$$\/status"],["\/proc\/<PID>\/fd","Offene Deskriptoren","Welche Objekte h\u00e4lt ein Prozess?","Aktuelle symbolische Links","Viele FDs sind nicht automatisch ein Leck","ls -l \/proc\/$$\/fd"],["\/proc\/<PID>\/maps","Virtuelle Mappings","Welche Bereiche hat ein Prozess eingebunden?","Aktuelle Mappingliste","F\u00fcr die Erstanalyse oft zu umfangreich","cat \/proc\/$$\/maps"],["\/proc\/diskstats","Blockger\u00e4te-I\/O","Welche Ger\u00e4te arbeiten?","Seit Boot kumuliert","Raten erfordern zwei Stichproben","cat \/proc\/diskstats"],["\/proc\/sys\/fs\/file-nr","File-Handle-Nutzung","Wie viele Handles nutzt das System?","Aktueller Z\u00e4hler und Grenze","Mittleres Feld ist auf modernen Linux-Systemen null","cat \/proc\/sys\/fs\/file-nr"],["\/proc\/sys\/fs\/file-max","File-Handle-Grenze","Welche globale Obergrenze gilt?","Aktiver Parameter","Nicht mit Prozesslimit verwechseln","cat \/proc\/sys\/fs\/file-max"]],"source_ids":["S1","S3","S4","S5","S6","S7","S9","S10"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Tabelle ist eine Einstiegshilfe, keine Diagnosekette. Ein auff\u00e4lliger Wert verlangt stets ein unabh\u00e4ngiges Gegenzeichen: Load mit CPU- und I\/O-Daten, Speicherwerte mit Pressure Stall Information und Prozessgr\u00f6\u00dfen mit dem Verhalten des Dienstes. Besonders \/proc\/diskstats und \/proc\/stat sind ","ref":""},{"kind":"strong","text":"kumulative Z\u00e4hler","ref":""},{"kind":"text","text":"; ihre Differenz \u00fcber ein bekanntes Intervall ist f\u00fcr Raten aussagekr\u00e4ftiger als der absolute Stand. Die folgenden Abschnitte ordnen die Signale deshalb nach Last, Speicher, Prozessen und I\/O ein.","ref":""}]}]},{"id":"proc-load-memory","heading":"Last, CPU und Speicher: Signale kombiniert bewerten","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer langsamen Anwendung ist \/proc\/loadavg ein sinnvoller Start, aber kein Urteil \u00fcber die CPU. Die drei Werte bilden die durchschnittliche Last der letzten 1, 5 und 15 Minuten ab. In die Last gehen nicht nur laufbereite Einheiten im Zustand R ein, sondern auch Tasks im ununterbrechbaren Wartezustand D, etwa bei I\/O. Das vierte Feld zeigt die aktuell ausf\u00fchrbaren gegen\u00fcber allen existierenden Scheduling-Einheiten. Hoher ","ref":""},{"kind":"strong","text":"Load Average","ref":""},{"kind":"text","text":" kann daher auf CPU-Konkurrenz, blockierte I\/O-Zugriffe oder beides hinweisen.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"code","language":"sh","code":"cat \/proc\/loadavg\ngrep -E '^(cpu|intr|ctxt|processes)' \/proc\/stat\ncat \/proc\/meminfo\ncat \/proc\/pressure\/memory","source_ids":["S3","S4","S5","S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die CPU-Zeilen aus \/proc\/stat enthalten Zeitanteile seit dem Systemstart in USER_HZ. Um daraus Auslastungsanteile zu ermitteln, m\u00fcssen zwei Abfragen verglichen werden; ein einzelner Stand zeigt nur angesammelte Zeit. Der Wert iowait ist dabei kein unmittelbares Latenzma\u00df f\u00fcr Storage: Seine Berechnung hat dokumentierte Grenzen und kann unter bestimmten Umst\u00e4nden sogar sinken. F\u00fcr eine I\/O-Ursache sind daher zus\u00e4tzlich Ger\u00e4tewerte und I\/O-PSI sinnvoll.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch ein niedriger Wert bei MemFree beweist noch keine RAM-Not. Linux nutzt unbenutzten Arbeitsspeicher gezielt f\u00fcr Cache. MemAvailable sch\u00e4tzt, wie viel Speicher neue Anwendungen voraussichtlich ohne Swapping erhalten k\u00f6nnen, und ist f\u00fcr die erste Einordnung meist hilfreicher. Erst wenn MemAvailable knapp wird und gleichzeitig Speicher-Stalls auftreten, verdichtet sich der Hinweis auf ","ref":""},{"kind":"strong","text":"Speicherdruck","ref":""},{"kind":"text","text":".","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Dateien unter \/proc\/pressure erg\u00e4nzen diese Sicht: some bedeutet, dass wenigstens einige Tasks w\u00e4hrend eines Anteils des Zeitfensters nicht weiterkamen; full steht f\u00fcr einen Zustand, in dem alle nicht-idlen Tasks gleichzeitig blockiert waren. Die Angaben avg10, avg60 und avg300 beziehen sich auf 10, 60 und 300 Sekunden, total ist ein kumulierter Stall-Z\u00e4hler. CPU-, memory- und io-PSI beantworten unterschiedliche Fragen und sollten nicht gegeneinander ausgetauscht werden.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Reagiert ein Dienst bei geringem MemFree langsam, pr\u00fcfst du zun\u00e4chst MemAvailable und \/proc\/pressure\/memory. Sind beide unauff\u00e4llig, spricht das gegen akuten systemweiten Speicherdruck. Anschlie\u00dfend kann \/proc\/<PID>\/status zeigen, ob der betroffene Prozess etwa ungew\u00f6hnlich viel VmRSS belegt, viele Threads hat oder in einem auff\u00e4lligen State steht. Diese Kombination trennt eine Cache-lastige, aber normale Speichernutzung von einem Problem, das weitere Prozessanalyse verlangt.","ref":""},{"kind":"citation","text":"","ref":"S7"}]}]},{"id":"proc-process-io","heading":"Prozesse, Dateideskriptoren und Datentr\u00e4ger-I\/O untersuchen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr eine sichere \u00dcbung mit einem garantiert vorhandenen Prozess steht $$ f\u00fcr die PID der aktuellen Shell. Die status-Datei ist menschenlesbarer als die feldorientierte stat-Datei. Name identifiziert den Prozess, State seinen Zustand, PPid den Elternprozess und Threads die Thread-Anzahl. VmRSS beschreibt den aktuell im RAM residenten Anteil; VmSize ist dagegen virtueller Adressraum. FDSize beschreibt die Gr\u00f6\u00dfe der Deskriptortabelle, nicht zwingend die Zahl aktuell offener Eintr\u00e4ge. Freiwillige und unfreiwillige Kontextwechsel k\u00f6nnen bei der Einordnung von Scheduling-Verhalten helfen, sind allein aber kein Fehlerbeweis.","ref":""},{"kind":"citation","text":"","ref":"S7"}]},{"type":"code","language":"sh","code":"cat \/proc\/$$\/status\nls -l \/proc\/$$\/fd","source_ids":["S7","S1"]},{"type":"paragraph","runs":[{"kind":"text","text":"Das fd-Verzeichnis enth\u00e4lt symbolische Links auf offene Dateien, Pipes, Ger\u00e4te oder Sockets. Es hilft etwa, einen Prozess zu finden, der eine gel\u00f6schte Logdatei weiterhin ge\u00f6ffnet h\u00e4lt. Eine gro\u00dfe Zahl offener Dateideskriptoren ist jedoch bei Proxys, Datenbanken oder ereignisorientierten Servern durchaus erwartbar. F\u00fcr gefilterte Ansichten und die Zuordnung \u00fcber Prozesse hinweg ist ","ref":""},{"kind":"internal_link","text":"lsof zur Analyse offener Dateien einsetzen","ref":"I3"},{"kind":"text","text":" eine passende Erg\u00e4nzung. Kommandozeilen aus cmdline k\u00f6nnen vertrauliche Argumente preisgeben; environ ist wegen m\u00f6glicher Zugangsdaten oder Tokens noch sensibler und keine Routineabfrage.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"maps listet virtuelle Speicherbereiche mit Berechtigungen, Offset, Ger\u00e4t, Inode und gegebenenfalls Pfad. smaps erg\u00e4nzt je Mapping detaillierte Speicherwerte. Beide Dateien sind f\u00fcr vertiefte Speicheranalysen gedacht: Ihre Ausgabe kann gro\u00df sein, und die Interpretation einzelner Mappings erfordert Kontext. F\u00fcr den ersten Blick sind status und die systemweiten Speicher- und PSI-Dateien meist effizienter.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei hohem Load und geringer CPU-Auslastung erweitert \/proc\/diskstats die Diagnose um die Ger\u00e4teebene. Die Datei f\u00fchrt pro Blockger\u00e4t kumulative I\/O-Statistiken. Um Aktivit\u00e4t als Rate zu bewerten, m\u00fcssen zwei Zeitpunkte verglichen werden. Dabei sind physische Laufwerke, Partitionen und virtuelle oder Device-Mapper-Ger\u00e4te sauber zu unterscheiden; Z\u00e4hler verschiedener Ebenen d\u00fcrfen nicht blind addiert werden. Zusammen mit \/proc\/pressure\/io l\u00e4sst sich so pr\u00fcfen, ob beobachtbare I\/O-Stalls und Ger\u00e4teaktivit\u00e4t zeitlich zusammenfallen.","ref":""},{"kind":"citation","text":"","ref":"S9"}]}]}],"3":[{"id":"proc-monitoring","heading":"procfs im Betrieb: Abfragen, Monitoring und Datenschutz","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr wiederholbare Betriebsdiagnosen behandelst du procfs-Abfragen als Messpunkte: Du notierst Zeitstempel, Systemkontext und die konkrete Abfrage. Viele Werte sind seit dem Start kumulierte Z\u00e4hler; erst die Differenz zweier Werte geteilt durch das Zeitintervall ergibt eine Rate. Das gilt etwa f\u00fcr Z\u00e4hler aus ","ref":""},{"kind":"code","text":"\/proc\/diskstats","ref":""},{"kind":"text","text":". Eine Einzelabfrage kann daher Aktivit\u00e4t belegen, aber weder Durchsatz noch eine dauerhafte Verschlechterung zuverl\u00e4ssig quantifizieren. ","ref":""},{"kind":"citation","text":"","ref":"S9"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein Monitoring-System sollte in festen Intervallen unter anderem Speicherwerte aus ","ref":""},{"kind":"code","text":"\/proc\/meminfo","ref":""},{"kind":"text","text":", Ger\u00e4tewerte aus ","ref":""},{"kind":"code","text":"\/proc\/diskstats","ref":""},{"kind":"text","text":", Prozess- und Systemzust\u00e4nde sowie bei verf\u00fcgbarer Kernelunterst\u00fctzung Drucksignale erfassen. Es muss Rohwerte in passende Einheiten umrechnen, bei Z\u00e4hlern Differenzen bilden und Historien speichern. Erst zeitliche Verl\u00e4ufe erlauben belastbare Schwellenwerte: Ein hoher Wert kann normal sein, wenn er zum erwarteten Lastfenster passt; ein pl\u00f6tzlicher Anstieg gegen\u00fcber der eigenen Baseline ist oft relevanter. Die verf\u00fcgbaren procfs-Eintr\u00e4ge h\u00e4ngen vom laufenden Kernel und seiner Konfiguration ab. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Direkte Dateien und Werkzeuge erg\u00e4nzen sich. ","ref":""},{"kind":"code","text":"ps","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"top","ref":""},{"kind":"text","text":" oder ","ref":""},{"kind":"code","text":"htop","ref":""},{"kind":"text","text":" eignen sich f\u00fcr die interaktive Prozesssicht; ","ref":""},{"kind":"code","text":"free","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"vmstat","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"iostat","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"pidstat","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"ss","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"sar","ref":""},{"kind":"text","text":" bereiten je nach Installation Daten f\u00fcr bestimmte Fragen auf. procfs bleibt sinnvoll, wenn du die Kernelquelle direkt pr\u00fcfen oder ein kleines, nachvollziehbares Skript bauen m\u00f6chtest. F\u00fcr Alarmierung und Kapazit\u00e4tsplanung sind Zeitreihendaten meist die passendere Ebene.","ref":""}]},{"type":"callout","variant":"warning","title":"Prozessdaten nicht unbedacht weitergeben","runs":[{"kind":"text","text":"Kommandozeilen k\u00f6nnen Pfade, Mandantenkennungen oder versehentlich \u00fcbergebene Zugangsdaten enthalten. Umgebungsvariablen eines Prozesses sind h\u00e4ufig noch sensibler. Erfasse, speichere und teile diese Daten nur, wenn sie f\u00fcr die Diagnose erforderlich sind; beschr\u00e4nke Zugriffe auf berechtigte Personen.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch bei rein lesenden Abfragen gelten Sichtbarkeitsgrenzen. Zugriffsrechte, Mount-Optionen und PID-Namespaces k\u00f6nnen Prozessdaten ausblenden oder auf eine Containeransicht begrenzen. Ein fehlender Eintrag ist deshalb nicht automatisch ein fehlendes Problem auf dem Host, sondern zun\u00e4chst ein Hinweis darauf, die Ausf\u00fchrungsumgebung zu kl\u00e4ren. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]}]},{"id":"proc-troubleshooting","heading":"Diagnosepfade f\u00fcr langsame Dienste und Ressourcenengp\u00e4sse","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Troubleshooting beginnt mit einem Symptom, nicht mit einem vermeintlich schuldigen Einzelwert. Pr\u00fcfe danach mindestens ein unabh\u00e4ngiges Signal und halte fest, ob die Beobachtung den Host, eine virtuelle Maschine oder einen Container betrifft. So vermeidest du beispielsweise, einen hohen Load vorschnell als CPU-Problem oder eine gro\u00dfe Zahl offener Deskriptoren vorschnell als Leck zu bewerten. Die folgenden Pfade sind lesende Erstdiagnosen und ersetzen keine anwendungsbezogenen Logs.","ref":""}]},{"type":"table","caption":"Kompakte Diagnosepfade mit procfs","headers":["Symptom","Zuerst lesen","Danach abgleichen","Fehlinterpretation vermeiden"],"rows":[["Hoher Load","\/proc\/loadavg","\/proc\/stat, \/proc\/pressure\/io, \/proc\/diskstats","Load umfasst laufbereite und ununterbrechbar wartende Tasks, nicht nur CPU-Arbeit."],["Vermuteter Speicherdruck","\/proc\/meminfo","\/proc\/pressure\/memory, \/proc\/<PID>\/status","Niedriges MemFree allein beweist keinen RAM-Mangel; MemAvailable und Stalls z\u00e4hlen mit."],["Auff\u00e4llige I\/O-Wartezeit","\/proc\/stat","\/proc\/pressure\/io, \/proc\/diskstats in zwei Messpunkten","iowait ist keine direkte Latenzmessung und hat dokumentierte Einschr\u00e4nkungen."],["Viele offene Dateien","\/proc\/sys\/fs\/file-nr und \/proc\/sys\/fs\/file-max","\/proc\/<PID>\/fd, Dienstverhalten","Viele Deskriptoren k\u00f6nnen f\u00fcr einen Server normal sein; Grenzen und Wachstum sind wichtiger."],["Dienst startet nicht","\/proc\/<PID>\/status, sofern ein Prozess entsteht","\/proc\/<PID>\/fd, Dienstjournal, belegte Ressourcen","Ein nicht sichtbarer Prozess kann beendet sein oder au\u00dferhalb des sichtbaren PID-Namespace laufen."]],"source_ids":["S1","S3","S4","S5","S6","S9","S10"]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei hoher Load Average pr\u00fcfst du zun\u00e4chst, ob ausf\u00fchrbare oder wartende Aufgaben die Zahl treiben. Die Load-Angaben bilden Durchschnittswerte \u00fcber ein, f\u00fcnf und 15 Minuten ab und ber\u00fccksichtigen sowohl R- als auch D-Zust\u00e4nde. Vergleiche deshalb CPU-Zeitfelder nur mit Vorsicht mit I\/O-Druck und Ger\u00e4teaktivit\u00e4t. Insbesondere ","ref":""},{"kind":"strong","text":"iowait","ref":""},{"kind":"text","text":" darf nicht isoliert als Speicherlatenz gelesen werden. ","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer langsamen Anwendung und kleinem MemFree ist ","ref":""},{"kind":"strong","text":"MemAvailable","ref":""},{"kind":"text","text":" der bessere erste Kontextwert. Erg\u00e4nze Speicher-PSI und den Status des betroffenen Prozesses, etwa dessen VmRSS, Threadzahl und Zustand. PSI unterscheidet bei Speicher und I\/O zwischen ","ref":""},{"kind":"code","text":"some","ref":""},{"kind":"text","text":" f\u00fcr teilweise blockierte Tasks und ","ref":""},{"kind":"code","text":"full","ref":""},{"kind":"text","text":" f\u00fcr vollst\u00e4ndige Blockierung nicht-idler Tasks. Fehlen PSI-Dateien, kann dies an Kernelkonfiguration oder Umgebung liegen; es widerlegt keinen Engpass. ","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr Datei- und Prozessdiagnosen k\u00f6nnen Rechte und ","ref":""},{"kind":"strong","text":"PID-Namespaces","ref":""},{"kind":"text","text":" die Aussagekraft einschr\u00e4nken. In Containern beschreibt \/proc h\u00e4ufig nur die zugeordnete Prozesswelt. Bei verweigertem Zugriff oder unvollst\u00e4ndigen Verzeichnissen pr\u00fcfst du daher Nutzerrechte, procfs-Mount-Optionen und den Namespace-Kontext, bevor du aus der Abwesenheit von Daten eine technische Schlussfolgerung ziehst. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]}]},{"id":"proc-decisions","heading":"Typische Fehlannahmen korrigieren und passende Werkzeuge w\u00e4hlen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Vier Kurzschl\u00fcsse f\u00fchren in der Linux-Administration h\u00e4ufig zu falschen Ma\u00dfnahmen. Wenig ","ref":""},{"kind":"code","text":"MemFree","ref":""},{"kind":"text","text":" bedeutet nicht automatisch RAM-Not, weil der Kernel Speicher unter anderem als Cache nutzt; f\u00fcr neue Anwendungen ist MemAvailable die aussagekr\u00e4ftigere Sch\u00e4tzung. Hoher Load beweist keine CPU-S\u00e4ttigung, da auch ununterbrechbar wartende Aufgaben einflie\u00dfen. Ein hoher iowait-Anteil misst keine unmittelbare Latenz eines Datentr\u00e4gers. Und procfs ist nicht \u00fcberall identisch: Kernelversion, Konfiguration, Hardware, Module und Namespaces beeinflussen Dateien und Felder. ","ref":""},{"kind":"citation","text":"","ref":"S1"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"W\u00e4hle die Methode nach der Frage. F\u00fcr eine punktuelle Ursachenanalyse liefert ","ref":""},{"kind":"strong","text":"procfs","ref":""},{"kind":"text","text":" unmittelbare Rohdaten des laufenden Kernels. F\u00fcr eine schnelle, menschenlesbare \u00dcbersicht sind spezialisierte Kommandozeilenwerkzeuge meist effizienter. Wenn Trends, Alarmierung oder Kapazit\u00e4tsentscheidungen z\u00e4hlen, ben\u00f6tigst du ein Monitoring, das Messpunkte zeitlich einordnet, Z\u00e4hlerdifferenzen berechnet und historische Vergleichswerte vorh\u00e4lt. Bei Ressourcenlimits einzelner Dienste oder Container erg\u00e4nzt eine Analyse auf cgroup-Ebene die globale Hostansicht; PSI kann bei passender Konfiguration auch pro cgroup verf\u00fcgbar sein. ","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Besondere Zur\u00fcckhaltung gilt f\u00fcr ","ref":""},{"kind":"code","text":"\/proc\/sys","ref":""},{"kind":"text","text":". Das Lesen eines Parameters ist Diagnostik, das Schreiben ver\u00e4ndert aktives Kernelverhalten. \u00c4ndere einen Wert nur, wenn die Ursache verstanden ist, der Ausgangswert dokumentiert wurde, Auswirkungen beobachtbar sind und ein R\u00fcckweg feststeht. Die Verzeichnisse ","ref":""},{"kind":"code","text":"fs","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"vm","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"net","ref":""},{"kind":"text","text":" ordnen Parameter thematisch, liefern aber keine universellen Tuningvorgaben. ","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das Beispiel ","ref":""},{"kind":"code","text":"drop_caches","ref":""},{"kind":"text","text":" zeigt den Unterschied zwischen Eingriff und Optimierung: Die Kernel-Dokumentation beschreibt die Schnittstelle als nicht destruktiv, warnt jedoch vor Leistungsproblemen und empfiehlt sie nicht als regul\u00e4re Betriebsma\u00dfnahme au\u00dferhalb von Test- oder Debug-Szenarien. Eine konservative Regel lautet daher: Erst messen, dann eine begr\u00fcndete \u00c4nderung begrenzt vornehmen, Wirkung und Nebenwirkungen beobachten und die Entscheidung dokumentieren. ","ref":""},{"kind":"citation","text":"","ref":"S11"}]}]}]},"plan":{"reader_question":"Welche Informationen liefert das \/proc filesystem bei der Linux-Administration, wie lassen sich die wichtigsten Dateien sicher lesen und wie sind ihre Werte einzuordnen?","sections":[{"id":"proc-basics","heading":"procfs verstehen: virtuelle Kernelansicht statt Datenspeicher","part":1,"target_words":270,"purpose":"Erkl\u00e4rt \/proc als virtuelles Dateisystem des laufenden Kernels und grenzt es von persistenten Dateien ab. Ordnet globale Statusdateien, Prozessverzeichnisse und \/proc\/sys als unterschiedliche Schnittstellen ein. Beschreibt, warum Eintr\u00e4ge je nach Kernelversion, Konfiguration, Hardware, Modulen und Namespace variieren k\u00f6nnen, und grenzt procfs knapp von sysfs sowie cgroup2 ab.","source_ids":["S1","S8"],"internal_link_ids":[]},{"id":"proc-time-context","heading":"Z\u00e4hler, Momentaufnahmen und Sichtbarkeit richtig einordnen","part":1,"target_words":270,"purpose":"Vermittelt die n\u00f6tige Leselogik vor einzelnen Dateien: Werte k\u00f6nnen seit Systemstart kumulieren, einen aktuellen Zustand zeigen oder gleitende Zeitfenster abbilden. Erkl\u00e4rt mit \/proc\/uptime, weshalb zwei Abfragen f\u00fcr Raten n\u00f6tig sind. Behandelt Rechte, hidepid, Linux-Capabilities, \/proc\/self und PID-Namespaces als Grenzen der sichtbaren Prozesswelt.","source_ids":["S1","S8"],"internal_link_ids":[]},{"id":"proc-sysctl-boundary","heading":"Lesen, konfigurieren und absichern unter \/proc\/sys","part":1,"target_words":270,"purpose":"Trennt reine Diagnostik klar vom Schreiben nach \/proc\/sys, das aktives Kernelverhalten ver\u00e4ndert. Erkl\u00e4rt die thematischen Bereiche fs, vm und net, ohne pauschale Tuningwerte zu empfehlen. Nutzt drop_caches als Gegenbeispiel f\u00fcr vermeintliche Optimierungen und formuliert Voraussetzungen f\u00fcr \u00c4nderungen: Ursache verstehen, Ausgangswert sichern, Auswirkungen pr\u00fcfen und R\u00fcckweg planen.","source_ids":["S2","S10","S11","S12"],"internal_link_ids":["I2"]},{"id":"proc-overview-table","heading":"Die wichtigsten procfs-Dateien nach Administrationsaufgabe","part":2,"target_words":280,"purpose":"Enth\u00e4lt die zentrale informative Tabelle mit den Spalten Pfad, Zweck, typische Frage, Datencharakter, wichtige Einschr\u00e4nkung und sichere Leseabfrage. Sie umfasst mindestens \/proc\/loadavg, \/proc\/stat, \/proc\/meminfo, die drei PSI-Dateien, \/proc\/<PID>\/status, \/proc\/<PID>\/fd, \/proc\/<PID>\/maps, \/proc\/diskstats sowie \/proc\/sys\/fs\/file-nr und file-max. Leitet anschlie\u00dfend zur aufgabengeleiteten Detailanalyse \u00fcber.","source_ids":["S1","S3","S4","S5","S6","S7","S9","S10"],"internal_link_ids":[]},{"id":"proc-load-memory","heading":"Last, CPU und Speicher: Signale kombiniert bewerten","part":2,"target_words":280,"purpose":"Zeigt sichere Lesebeispiele f\u00fcr \/proc\/loadavg, ausgew\u00e4hlte Zeilen aus \/proc\/stat und \/proc\/meminfo. Erkl\u00e4rt die Load Average mit R- und D-Tasks, USER_HZ bei CPU-Zeiten, die Einschr\u00e4nkungen von iowait sowie MemAvailable als Sch\u00e4tzung. Erg\u00e4nzt PSI f\u00fcr CPU-, Speicher- und I\/O-Stalls mit some und full. Praxisfall: Eine langsame Anwendung bei niedrigem MemFree wird \u00fcber MemAvailable, memory PSI und Prozessstatus eingeordnet.","source_ids":["S3","S4","S5","S6","S7"],"internal_link_ids":[]},{"id":"proc-process-io","heading":"Prozesse, Dateideskriptoren und Datentr\u00e4ger-I\/O untersuchen","part":2,"target_words":280,"purpose":"Erkl\u00e4rt die Abfrage des aktuellen Shell-Prozesses \u00fcber \/proc\/$$\/status und \/proc\/$$\/fd. Ordnet Name, State, PPid, Threads, VmRSS, FDSize und Kontextwechsel in status ein; behandelt cmdline und besonders environ als potenziell vertrauliche Daten. Stuft maps und smaps als vertiefende, umfangreiche Speicheranalyse ein. Erkl\u00e4rt diskstats als kumulative Ger\u00e4tewerte und unterscheidet physische Ger\u00e4te, Partitionen und virtuelle Ger\u00e4te. Verkn\u00fcpft dies mit dem Fall hoher Load bei geringer CPU-Auslastung.","source_ids":["S1","S7","S9"],"internal_link_ids":["I3"]},{"id":"proc-monitoring","heading":"procfs im Betrieb: Abfragen, Monitoring und Datenschutz","part":3,"target_words":260,"purpose":"\u00dcbertr\u00e4gt procfs in wiederholbare Betriebsabl\u00e4ufe: Nur-Lese-Abfragen, Zeitstempel und zwei Messpunkte f\u00fcr Raten. Erkl\u00e4rt, welche Daten ein Monitoring-System in Intervallen erfassen und wie es Differenzen, Einheiten, Historien und Schwellenwerte aufbereiten muss. Ordnet procfs gegen\u00fcber ps, top beziehungsweise htop, free, vmstat, iostat, pidstat, ss und sar ein. Betont den sorgf\u00e4ltigen Umgang mit Kommandozeilen, Umgebungen und Prozessdaten.","source_ids":["S1","S5","S9"],"internal_link_ids":[]},{"id":"proc-troubleshooting","heading":"Diagnosepfade f\u00fcr langsame Dienste und Ressourcenengp\u00e4sse","part":3,"target_words":260,"purpose":"Enth\u00e4lt eine zweite, kompakte Tabelle mit Symptom, zuerst lesen, danach abgleichen und zu vermeidender Fehlinterpretation. Behandelt mindestens hohen Load, vermuteten Speicherdruck, auff\u00e4llige I\/O-Wartezeiten, viele offene Dateien und einen nicht startenden Dienst. Die Abl\u00e4ufe f\u00fchren von einem Symptom zu mehreren unabh\u00e4ngigen Signalen und benennen ausdr\u00fccklich, wann Rechte, Containergrenzen oder fehlende Kerneloptionen die Diagnoseansicht begrenzen.","source_ids":["S1","S3","S4","S5","S6","S9","S10"],"internal_link_ids":[]},{"id":"proc-decisions","heading":"Typische Fehlannahmen korrigieren und passende Werkzeuge w\u00e4hlen","part":3,"target_words":260,"purpose":"Fasst die entscheidenden Grenzen zusammen: wenig MemFree ist nicht automatisch RAM-Not, hoher Load beweist keine CPU-S\u00e4ttigung, iowait ist keine direkte Latenzmessung und procfs ist nicht auf jedem System identisch. Formuliert Entscheidungskriterien f\u00fcr direkte procfs-Analyse, Spezialwerkzeuge, Zeitreihenmonitoring und vertiefte cgroup-Analyse. Schlie\u00dft mit einer konservativen Regel f\u00fcr \/proc\/sys: nur begr\u00fcndet \u00e4ndern, Wirkung beobachten und \u00c4nderungen dokumentieren.","source_ids":["S1","S2","S4","S6","S11"],"internal_link_ids":[]}]},"repairs":1,"reviews":2,"issues":[],"guard":{"content_md5":"fe641734889fa48edfed948b0aab44cc","title":"Procfs do Linux para administradores: vis\u00e3o geral dos ficheiros importantes","slug":"linux-procfs-para-administradores","excerpt":"O procfs fornece uma vis\u00e3o direta do kernel do Linux em execu\u00e7\u00e3o. Este guia explica os ficheiros importantes na diret\u00f3ria \/proc, classifica os contadores e os instant\u00e2neos e apresenta m\u00e9todos de diagn\u00f3stico seguros para a carga, a mem\u00f3ria, os processos, as E\/S e os par\u00e2metros sysctl.","status":"draft","featured_media":21652},"verify":{"content_md5":"fe641734889fa48edfed948b0aab44cc","title":"Procfs do Linux para administradores: vis\u00e3o geral dos ficheiros importantes","slug":"linux-procfs-para-administradores","excerpt":"O procfs fornece uma vis\u00e3o direta do kernel do Linux em execu\u00e7\u00e3o. Este guia explica os ficheiros importantes na diret\u00f3ria \/proc, classifica os contadores e os instant\u00e2neos e apresenta m\u00e9todos de diagn\u00f3stico seguros para a carga, a mem\u00f3ria, os processos, as E\/S e os par\u00e2metros sysctl.","status":"draft","featured_media":21652},"row_number":1880,"created_at":"2026-09-22T06:47:00+00:00","updated_at":"2026-09-22T06:54:07+00:00","verified_at":"2026-09-22T06:54:03+00:00"},"_wh_make_research":"Recherche-Briefing: Linux procfs f\u00fcr Administratoren \u2013 wichtige Dateien im \u00dcberblick\n\nStand der Recherche: 22. September 2026. Zielumfang des sp\u00e4teren Fachartikels: 2.400 bis 2.700 W\u00f6rter.\n\nLeserfrage und Artikelziel\n\nDer Artikel beantwortet die praktische Frage: Welche Informationen liefert das \/proc filesystem bei der Linux-Administration, wie lassen sich die wichtigsten Dateien sicher lesen und wie sind ihre Werte einzuordnen?\n\nDer Schwerpunkt sollte nicht auf einer vollst\u00e4ndigen Liste aller Eintr\u00e4ge liegen. Sinnvoller ist eine Orientierung nach Administrationsaufgaben: Systemlast, CPU, Arbeitsspeicher, Prozesse, offene Dateien, Datentr\u00e4ger-I\/O, Netzwerk sowie Laufzeitparameter unter \/proc\/sys. Leser sollen nach dem Artikel wissen, welche Dateien bei einem konkreten Symptom als Erstes relevant sind, welche Werte nur Momentaufnahmen darstellen und wann spezialisierte Werkzeuge die bessere Wahl sind.\n\nGesicherte Funktionsweise\n\nprocfs ist ein virtuelles Dateisystem. Die Eintr\u00e4ge unter \/proc repr\u00e4sentieren Datenstrukturen und Zust\u00e4nde des laufenden Linux-Kernels; sie sind keine gew\u00f6hnlichen Dateien auf einem persistenten Datentr\u00e4ger. \/proc dient einerseits zum Auslesen von System- und Prozessinformationen, andererseits k\u00f6nnen bestimmte Kernelparameter \u00fcber \/proc\/sys zur Laufzeit konfiguriert werden. Welche Eintr\u00e4ge vorhanden sind, h\u00e4ngt unter anderem von Kernelversion, Kernelkonfiguration, Hardware, geladenen Modulen und Namespaces ab. ([docs.kernel.org](https:\/\/docs.kernel.org\/filesystems\/proc.html?utm_source=openai))\n\nDer Artikel sollte ausdr\u00fccklich zwischen drei Bereichen unterscheiden:\n\nErstens: globale, \u00fcberwiegend lesbare Statusdateien wie \/proc\/meminfo, \/proc\/stat, \/proc\/loadavg und \/proc\/diskstats.\n\nZweitens: prozessbezogene Verzeichnisse unter \/proc\/<PID>. Sie enthalten beispielsweise Statusdaten, Kommandozeile, offene Dateideskriptoren und Speicherabbildungen eines konkreten Prozesses. Der Link \/proc\/self verweist jeweils auf den Prozess, der ihn gerade liest. F\u00fcr fremde Prozesse gelten Zugriffspr\u00fcfungen; sensible Daten k\u00f6nnen au\u00dferdem durch die Mount-Option hidepid eingeschr\u00e4nkt oder verborgen sein. ([docs.kernel.org](https:\/\/docs.kernel.org\/filesystems\/proc.html?utm_source=openai))\n\nDrittens: \/proc\/sys als sysctl-Schnittstelle. Dort sind manche Werte lesbar und schreibbar. Der sp\u00e4tere Artikel sollte Lesezugriffe und \u00c4nderungen klar trennen: Das blo\u00dfe Anzeigen eines Werts ist Diagnostik, das Schreiben ver\u00e4ndert Kernelverhalten zur Laufzeit und verlangt eine fachliche Begr\u00fcndung, dokumentierte Auswirkungen sowie einen R\u00fcckweg. ([docs.kernel.org](https:\/\/docs.kernel.org\/admin-guide\/sysctl\/?utm_source=openai))\n\nVoraussetzungen und sichere Einordnung\n\nAdressiert werden Linux-Administratoren mit Shell-Grundkenntnissen. F\u00fcr viele Lesebeispiele gen\u00fcgt ein unprivilegierter Account; bei fremden Prozessen oder gesch\u00fctzten Daten k\u00f6nnen Rechte, Linux-Capabilities und die procfs-Mount-Optionen den Zugriff verhindern. Das ist kein Fehlerfall, sondern ein Sicherheitsmerkmal. ([docs.kernel.org](https:\/\/docs.kernel.org\/filesystems\/proc.html?utm_source=openai))\n\nDer Artikel sollte vorab vermitteln, dass procfs Werte in verschiedenen Einheiten und Zeitbez\u00fcgen ausgibt. Manche Z\u00e4hler gelten seit Systemstart, andere spiegeln einen aktuellen Zustand, wieder andere sind gleitende Durchschnitte. Erst zwei zeitlich getrennte Abfragen machen aus einem monotonen Z\u00e4hler eine Rate. Ein einzelner hoher Z\u00e4hler ist daher meist kein Leistungsnachweis.\n\nSichere Terminalbeispiele k\u00f6nnen konsequent nur lesend sein:\n\nTerminalbefehl:\ncat \/proc\/meminfo\n\nTerminalbefehl:\ncat \/proc\/loadavg\n\nTerminalbefehl:\ngrep -E '^(cpu|intr|ctxt|processes)' \/proc\/stat\n\nTerminalbefehl:\ncat \/proc\/$$\/status\n\nTerminalbefehl:\nls -l \/proc\/$$\/fd\n\nTerminalbefehl:\nfindmnt -T \/proc\n\nDie Beispiele verwenden $$ bewusst f\u00fcr die aktuelle Shell statt einer angenommenen PID. Sie \u00e4ndern weder Systemparameter noch Prozessdaten.\n\nKernstruktur f\u00fcr den sp\u00e4teren Artikel\n\n1. Systemzustand und Auslastung\n\n\/proc\/loadavg zeigt die Auslastungsdurchschnitte f\u00fcr 1, 5 und 15 Minuten. Anders als eine vereinfachende Erkl\u00e4rung \u201eCPU-Auslastung\u201c nahelegt, umfasst die Load Average laufbereite Scheduling-Einheiten im Zustand R und Einheiten im ununterbrechbaren Wartezustand D, h\u00e4ufig bei I\/O-Wartevorg\u00e4ngen. Der Artikel sollte daraus ableiten: Ein hoher Load-Wert beweist keine CPU-\u00dcberlastung; er ist ein Anlass, CPU-, Speicher- und I\/O-Signale zusammen zu pr\u00fcfen. Das vierte Feld zeigt aktuell ausf\u00fchrbare gegen\u00fcber insgesamt existierenden Kernel-Scheduling-Einheiten. ([man7.org](https:\/\/man7.org\/linux\/man-pages\/man5\/proc_loadavg.5.html?utm_source=openai))\n\n\/proc\/stat liefert globale Kernelstatistiken, insbesondere CPU-Zeitanteile seit dem Boot. CPU-Zeiten werden in USER_HZ gef\u00fchrt, wobei die Architektur beachtet werden muss. Der iowait-Wert verdient einen deutlichen Warnhinweis: Laut Manpage ist er aus mehreren Gr\u00fcnden nicht zuverl\u00e4ssig und kann unter bestimmten Bedingungen sogar sinken. Deshalb sollte der Artikel iowait nicht als isolierte I\/O-Latenzmessung darstellen. ([man7.org](https:\/\/www.man7.org\/linux\/man-pages\/man5\/proc_stat.5.html))\n\nErg\u00e4nzend passt \/proc\/uptime: Betriebsdauer und aggregierte Idle-Zeit liefern Kontext f\u00fcr Z\u00e4hler seit dem Boot, sind aber kein Ersatz f\u00fcr eine Zeitreihe.\n\n2. Arbeitsspeicher, Swap und Speicherdruck\n\n\/proc\/meminfo ist die zentrale Rohdatenquelle f\u00fcr die Speicher\u00fcbersicht. Die Datei liefert unter anderem MemTotal, MemFree, MemAvailable, Cached, Buffers und Swap-Werte. Besonders wichtig ist die Erkl\u00e4rung, dass MemAvailable eine Sch\u00e4tzung des Speichers ist, der f\u00fcr neue Anwendungen ohne Swapping verf\u00fcgbar sein soll. Der Artikel sollte nicht suggerieren, dass ein geringer MemFree-Wert allein Speichermangel bedeutet: Dateicache ist ein erwarteter Bestandteil der Speichernutzung. ([man7.org](https:\/\/www.man7.org\/linux\/man-pages\/man5\/proc_meminfo.5.html))\n\nF\u00fcr neuere oder entsprechend konfigurierte Systeme ist \/proc\/pressure besonders wertvoll. Die Dateien cpu, memory und io enthalten Stall-Anteile f\u00fcr 10, 60 und 300 Sekunden sowie einen kumulierten Stall-Z\u00e4hler. \u201esome\u201c bedeutet, dass mindestens einige Tasks blockiert waren; \u201efull\u201c beschreibt den Zustand, dass alle nicht-idlen Tasks gleichzeitig blockiert waren. Bei CPU-Druck ist systemweites full historisch beziehungsweise semantisch besonders einzuordnen und kann als null erscheinen. ([docs.kernel.org](https:\/\/docs.kernel.org\/accounting\/psi.html))\n\nPraxisfall: Eine Anwendung reagiert langsam, obwohl MemFree klein ist. Ablauf: MemAvailable pr\u00fcfen, anschlie\u00dfend \/proc\/pressure\/memory lesen und bei Bedarf prozessbezogen \/proc\/<PID>\/status betrachten. Erst die Kombination kann darauf hindeuten, ob echter Speicherdruck vorliegt.\n\n3. Prozesse gezielt untersuchen\n\n\/proc\/<PID>\/status ist f\u00fcr Menschen besser lesbar als die feldbasierte Datei \/proc\/<PID>\/stat. Sinnvolle Felder f\u00fcr den Artikel: Name, State, Pid, PPid, Threads, VmSize, VmRSS, FDSize, Kontextwechsel sowie gegebenenfalls Capabilities und Seccomp. Die Datei b\u00fcndelt Informationen aus stat und statm in menschenlesbarer Form. ([man7.org](https:\/\/man7.org\/linux\/man-pages\/man5\/proc_pid_status.5.html?utm_source=openai))\n\n\/proc\/<PID>\/cmdline hilft bei der Zuordnung eines Prozesses, kann aber Argumente enthalten, die vertraulich sein sollen. \/proc\/<PID>\/environ ist noch sensibler und sollte im Artikel nicht als Routinewerkzeug empfohlen werden. Der Hinweis ist wichtig, weil Kommandozeilen oder Umgebungsvariablen fehlerhaft konfigurierte Zugangsdaten enthalten k\u00f6nnen.\n\n\/proc\/<PID>\/fd zeigt die offenen Dateideskriptoren als symbolische Links. Praxisfall: Ein Dienst erreicht sein Dateideskriptor-Limit oder h\u00e4lt gel\u00f6schte Logdateien ge\u00f6ffnet. Der Artikel sollte erkl\u00e4ren, dass diese Ansicht eine Diagnosehilfe ist, aber keine pauschale Aussage \u00fcber ein Leck erlaubt: viele offene Deskriptoren k\u00f6nnen f\u00fcr Proxy-, Datenbank- oder Event-Server erwartbar sein.\n\n\/proc\/<PID>\/maps und \/proc\/<PID>\/smaps sind Spezialwerkzeuge f\u00fcr Speicheranalysen. maps listet virtuelle Speicherbereiche samt Berechtigungen, Offset, Ger\u00e4t, Inode und Pfad; smaps erg\u00e4nzt Speichernutzungswerte je Mapping. Wegen Umfang und Kosten sollte der Artikel diese Dateien als vertiefende Analyse einordnen, nicht als erste Standardabfrage. ([docs.kernel.org](https:\/\/docs.kernel.org\/filesystems\/proc.html))\n\n4. Datentr\u00e4ger und I\/O\n\n\/proc\/diskstats enth\u00e4lt I\/O-Statistiken je Blockger\u00e4t. Entscheidend ist die Einschr\u00e4nkung: Es handelt sich um kumulative Z\u00e4hler. F\u00fcr Raten, etwa gelesene Sektoren pro Sekunde, muss ein Tool zwei Stichproben vergleichen und die Differenz durch das Zeitintervall teilen. Au\u00dferdem m\u00fcssen Partitionen, virtuelle Ger\u00e4te, Device Mapper und physische Laufwerke sauber unterschieden werden. ([man7.org](https:\/\/man7.org\/linux\/man-pages\/man5\/proc_diskstats.5.html))\n\nPraxisfall: Hohe Load Average bei geringer CPU-Auslastung. Die sinnvolle Pr\u00fcfsequenz ist: \/proc\/loadavg als Symptom, \/proc\/stat mit Vorsicht beim iowait, \/proc\/diskstats als Ger\u00e4teperspektive und \/proc\/pressure\/io f\u00fcr beobachtbaren I\/O-Stall. Diese Kombination ist aussagekr\u00e4ftiger als ein einzelner Wert. ([man7.org](https:\/\/man7.org\/linux\/man-pages\/man5\/proc_loadavg.5.html?utm_source=openai))\n\n5. Laufzeitparameter unter \/proc\/sys\n\nDer Artikel sollte \/proc\/sys nicht als Tuning-Katalog behandeln. Sinnvoll sind exemplarische Lesef\u00e4lle:\n\n\/proc\/sys\/fs\/file-nr und file-max zur Einordnung systemweiter File-Handle-Nutzung und -Grenze. Bei file-nr ist das mittlere Feld auf Linux 2.6 und sp\u00e4ter stets null; dies ist laut Kernel-Dokumentation kein Fehler. ([docs.kernel.org](https:\/\/docs.kernel.org\/admin-guide\/sysctl\/fs.html?utm_source=openai))\n\n\/proc\/sys\/vm als Bereich f\u00fcr Speicherverwaltung. Warnbeispiel: drop_caches darf nicht als permanente Speicheroptimierung erscheinen. Die Kernel-Dokumentation beschreibt den Eingriff als nicht destruktiv, warnt aber vor Leistungsproblemen und empfiehlt seine Nutzung au\u00dferhalb von Test- oder Debug-Umgebungen nicht. ([docs.kernel.org](https:\/\/docs.kernel.org\/5.17\/admin-guide\/sysctl\/vm.html?utm_source=openai))\n\n\/proc\/sys\/net enth\u00e4lt netzwerkbezogene Einstellungen, wobei die vorhandenen Unterverzeichnisse von der Kernelkonfiguration abh\u00e4ngen. Statt konkrete Tuningwerte ohne Workload-Kontext zu nennen, sollte der Artikel auf die thematische Struktur und die Pflicht zur jeweiligen Kernel-Dokumentation verweisen. ([docs.kernel.org](https:\/\/docs.kernel.org\/7.1\/admin-guide\/sysctl\/net.html?utm_source=openai))\n\nEntscheidungsalternativen\n\nprocfs eignet sich f\u00fcr direkte Kernelansichten, Troubleshooting und einfache Skripte. F\u00fcr regelm\u00e4\u00dfiges Monitoring sind jedoch spezialisierte Werkzeuge und Zeitreihensysteme h\u00e4ufig geeigneter, weil sie Differenzen berechnen, Einheiten aufbereiten, Historien speichern und Schwellenwerte auswerten k\u00f6nnen. Der Artikel kann ps, top beziehungsweise htop, free, vmstat, iostat, pidstat, ss und sar als Einordnungsalternativen nennen, ohne zu behaupten, dass sie \u00fcberall identisch implementiert sind.\n\nsysfs unter \/sys ist abzugrenzen: Dort stehen prim\u00e4r Ger\u00e4te-, Treiber- und Hardwareobjekte im Vordergrund, w\u00e4hrend procfs den Prozess- und Kernelzustand sowie sysctl-Parameter sichtbar macht. F\u00fcr cgroup-bezogene Ressourcenanalysen ist die cgroup2-Schnittstelle relevant; PSI-Daten existieren bei passender Konfiguration auch pro cgroup. ([docs.kernel.org](https:\/\/docs.kernel.org\/accounting\/psi.html))\n\nGrenzen und typische Fehler\n\nWichtig ist der Hinweis auf Container und PID-Namespaces: Die sichtbare Prozesswelt kann von der Hostansicht abweichen. procfs-Instanzen k\u00f6nnen mit einem PID-Namespace verbunden sein; daraus folgt, dass \/proc in einem Container nicht automatisch den Gesamtzustand des Hosts zeigt. ([docs.kernel.org](https:\/\/docs.kernel.org\/filesystems\/proc.html?utm_source=openai))\n\nTypische Fehler, die der Artikel klar korrigieren sollte:\n\n\u201eWenig freier Speicher bedeutet RAM-Not.\u201c Korrekt ist: Cache und MemAvailable einbeziehen.\n\n\u201eHoher Load bedeutet CPU ist voll.\u201c Korrekt ist: auch blockierte D-Tasks und I\/O-Symptome pr\u00fcfen.\n\n\u201eiowait misst unmittelbar die Speicherlatenz.\u201c Korrekt ist: Der Wert hat dokumentierte Einschr\u00e4nkungen.\n\n\u201e\/proc-Dateien sind \u00fcberall gleich.\u201c Korrekt ist: Verf\u00fcgbarkeit und Felder k\u00f6nnen von Architektur, Kernelkonfiguration und Version abh\u00e4ngen.\n\n\u201eSchreiben nach \/proc\/sys ist nur tempor\u00e4res Feintuning.\u201c Korrekt ist: Es ver\u00e4ndert aktives Kernelverhalten und kann Seiteneffekte erzeugen.\n\nGeeignete Tabelleninformationen\n\nEine zentrale \u00dcbersichtstabelle sollte diese Spalten enthalten: Pfad, Zweck, typische Frage, Datencharakter, wichtige Einschr\u00e4nkung, sichere Leseabfrage.\n\nAufzunehmen sind mindestens \/proc\/loadavg, \/proc\/stat, \/proc\/meminfo, \/proc\/pressure\/cpu, \/proc\/pressure\/memory, \/proc\/pressure\/io, \/proc\/<PID>\/status, \/proc\/<PID>\/fd, \/proc\/<PID>\/maps, \/proc\/diskstats, \/proc\/sys\/fs\/file-nr und \/proc\/sys\/fs\/file-max.\n\nEine zweite, kleinere Tabelle kann die Diagnosepfade b\u00fcndeln: Symptom, zuerst lesen, danach abgleichen, Fehlinterpretation vermeiden. Ein Chart ist ohne eigene Zeitreihendaten nicht sinnvoll; stattdessen sollte der Artikel erkl\u00e4ren, welche procfs-Werte ein Monitoring-System in Intervallen erfassen m\u00fcsste.","_wh_make_sources":{"S1":{"id":"S1","url":"https:\/\/docs.kernel.org\/filesystems\/proc.html?utm_source=openai","title":"O sistema de ficheiros \/proc \u2014 Documenta\u00e7\u00e3o do kernel do Linux"},"S2":{"id":"S2","url":"https:\/\/docs.kernel.org\/admin-guide\/sysctl\/?utm_source=openai","title":"Documenta\u00e7\u00e3o sobre \/proc\/sys \u2014 Documenta\u00e7\u00e3o do kernel do Linux"},"S3":{"id":"S3","url":"https:\/\/man7.org\/linux\/man-pages\/man5\/proc_loadavg.5.html?utm_source=openai","title":"proc_loadavg(5) - P\u00e1gina do manual do Linux"},"S4":{"id":"S4","url":"https:\/\/www.man7.org\/linux\/man-pages\/man5\/proc_stat.5.html","title":"proc_stat(5) - P\u00e1gina do manual do Linux"},"S5":{"id":"S5","url":"https:\/\/www.man7.org\/linux\/man-pages\/man5\/proc_meminfo.5.html","title":"proc_meminfo(5) - P\u00e1gina do manual do Linux"},"S6":{"id":"S6","url":"https:\/\/docs.kernel.org\/accounting\/psi.html","title":"PSI - Informa\u00e7\u00f5es sobre o \u00abPressure Stall\u00bb \u2014 Documenta\u00e7\u00e3o do Kernel do Linux"},"S7":{"id":"S7","url":"https:\/\/man7.org\/linux\/man-pages\/man5\/proc_pid_status.5.html?utm_source=openai","title":"proc_pid_status(5) - P\u00e1gina do manual do Linux"},"S8":{"id":"S8","url":"https:\/\/docs.kernel.org\/filesystems\/proc.html","title":"O sistema de ficheiros \/proc \u2014 Documenta\u00e7\u00e3o do kernel do Linux"},"S9":{"id":"S9","url":"https:\/\/man7.org\/linux\/man-pages\/man5\/proc_diskstats.5.html","title":"proc_diskstats(5) - P\u00e1gina do manual do Linux"},"S10":{"id":"S10","url":"https:\/\/docs.kernel.org\/admin-guide\/sysctl\/fs.html?utm_source=openai","title":"Documenta\u00e7\u00e3o sobre \/proc\/sys\/fs\/ \u2014 Documenta\u00e7\u00e3o do kernel do Linux"},"S11":{"id":"S11","url":"https:\/\/docs.kernel.org\/5.17\/admin-guide\/sysctl\/vm.html?utm_source=openai","title":"Documenta\u00e7\u00e3o sobre \/proc\/sys\/vm\/ \u2014 Documenta\u00e7\u00e3o do kernel do Linux"},"S12":{"id":"S12","url":"https:\/\/docs.kernel.org\/7.1\/admin-guide\/sysctl\/net.html?utm_source=openai","title":"Documenta\u00e7\u00e3o para \/proc\/sys\/net\/ \u2014 Documenta\u00e7\u00e3o do Kernel do Linux"}},"_wh_make_usage":{"research":{"input_tokens":30521,"output_tokens":3813,"response_id":"resp_073ed8ff6b382178016ab2246876cc87d2b8503366ac1664e4","model":"gpt-5.6-terra","search_calls":3},"plan_bf5ef0afe81bff06d64e1f2192080095":{"input_tokens":6058,"output_tokens":1559,"response_id":"resp_0de368bfe35cea85016ab224a353d087d28d1dd339864c9ac0","model":"gpt-5.6-terra","search_calls":0},"part1_23d7b85a19c3a588cf1ae808e44a02d5":{"input_tokens":8462,"output_tokens":1774,"response_id":"resp_08c3c732be80a763016ab224b8d5a487d28a666b4d2d7de86d","model":"gpt-5.6-terra","search_calls":0},"part2_265b0195f2bbd3fe54c408a58c583078":{"input_tokens":8587,"output_tokens":2518,"response_id":"resp_0d6f6e442e8828d9016ab224d32bc087d294d2ec6d0f53ae99","model":"gpt-5.6-terra","search_calls":0},"part3_10dd185c9e68e880cbfa341be1017e42":{"input_tokens":8569,"output_tokens":2695,"response_id":"resp_0e13b6bb3db886f2016ab224f7f0f887d29c8e52b06d1ccc26","model":"gpt-5.6-terra","search_calls":0},"package_2b344208a5cdfa03fb14b181daaacab7":{"input_tokens":13729,"output_tokens":1220,"response_id":"resp_0eab4b76e280b0c9016ab2252000ec87d29b728d74143c9b58","model":"gpt-5.6-terra","search_calls":0},"review_47b9972c3a85c20d135bb6f77968c58a":{"input_tokens":42548,"output_tokens":1816,"response_id":"resp_06b1fa8a0870acc2016ab2253577d487d2826514bcbe3f7af1","model":"gpt-5.6-sol","search_calls":3},"repair_1e91e3d00fd20b26c9ae106396ec02bf":{"input_tokens":15734,"output_tokens":5609,"response_id":"resp_05eb95a26f473ddc016ab22566298087d2aabd6ac45b7b59bb","model":"gpt-5.6-terra","search_calls":0},"review_1a13bbea094331829e89c25e79bcbca3":{"input_tokens":36697,"output_tokens":1127,"response_id":"resp_0253a1b193c86284016ab225a478bc87d290374c823bac6e4d","model":"gpt-5.6-sol","search_calls":2},"image_hero":{"input_tokens":111,"output_tokens":343,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0},"image_detail1":{"input_tokens":100,"output_tokens":343,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0},"image_detail2":{"input_tokens":117,"output_tokens":343,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0}},"_wh_make_last_error":"","_wh_make_write_intent":{"before":{"content_md5":"b70de2ef86b367d71a1ba876dbc337ce","title":"Procfs do Linux para administradores: vis\u00e3o geral dos ficheiros importantes","slug":"linux-procfs-para-administradores","excerpt":"O procfs fornece uma vis\u00e3o direta do kernel do Linux em execu\u00e7\u00e3o. Este guia explica os ficheiros importantes na diret\u00f3ria \/proc, classifica os contadores e os instant\u00e2neos e apresenta m\u00e9todos de diagn\u00f3stico seguros para a carga, a mem\u00f3ria, os processos, as E\/S e os par\u00e2metros sysctl.","status":"draft","featured_media":0},"expected":{"content_md5":"fe641734889fa48edfed948b0aab44cc","title":"Procfs do Linux para administradores: vis\u00e3o geral dos ficheiros importantes","slug":"linux-procfs-para-administradores","excerpt":"O procfs fornece uma vis\u00e3o direta do kernel do Linux em execu\u00e7\u00e3o. Este guia explica os ficheiros importantes na diret\u00f3ria \/proc, classifica os contadores e os instant\u00e2neos e apresenta m\u00e9todos de diagn\u00f3stico seguros para a carga, a mem\u00f3ria, os processos, as E\/S e os par\u00e2metros sysctl.","status":"draft","featured_media":21652},"at":"2026-09-22T06:53:51+00:00"},"_wh_make_design_version":"2.1.1","rank_math_title":"Linux procfs: wichtige \/proc-Dateien erkl\u00e4rt","_wh_make_doc":{"title":"Procfs do Linux para administradores: vis\u00e3o geral dos ficheiros importantes","slug":"linux-procfs-para-administradores","excerpt":"O procfs fornece uma vis\u00e3o direta do kernel do Linux em execu\u00e7\u00e3o. Este guia explica os ficheiros importantes na diret\u00f3ria \/proc, classifica os contadores e os instant\u00e2neos e apresenta m\u00e9todos de diagn\u00f3stico seguros para a carga, a mem\u00f3ria, os processos, as E\/S e os par\u00e2metros sysctl.","seo":{"title":"Linux procfs: explica\u00e7\u00e3o dos ficheiros importantes do \/proc","description":"Ficheiros procfs importantes para administradores de Linux: ler e interpretar corretamente a carga do sistema, a mem\u00f3ria, os processos, as E\/S e o diret\u00f3rio \/proc\/sys.","focus_keyword":"Linux procfs"},"lead":[{"kind":"text","text":"Das ","ref":""},{"kind":"strong","text":"Linux procfs","ref":""},{"kind":"text","text":" zeigt den aktuellen Zustand des Kernels \u00fcber virtuelle Dateien unter \/proc. F\u00fcr die Administration sind vor allem Last, Speicher, Prozesse, Dateideskriptoren und Blockger\u00e4te relevant. Entscheidend ist die Einordnung: Manche Werte sind Momentaufnahmen, andere Z\u00e4hler seit dem Boot oder gleitende Mittelwerte. Lies deshalb nie nur einen Einzelwert, sondern gleiche ihn mit passenden Signalen und dem Kontext von Host, VM oder Container ab. ","ref":""},{"kind":"citation","text":"","ref":"S1"}],"images":{"hero":{"prompt":"Konzeptionelle technische Illustration eines Linux-Servers als transparenter Kern mit mehreren klar getrennten Datenstr\u00f6men zu virtuellen Dateiansichten: CPU-Auslastung, Arbeitsspeicher, Prozesse, Datentr\u00e4ger-I\/O und Netzwerk. Abstrakte Terminal- und Dateisystemelemente, dunkler neutraler Hintergrund, pr\u00e4ziser Editorial-Stil, keine Schrift, keine Zahlen, keine Logos.","alt":"Konzeptionelle Darstellung von Kernelzust\u00e4nden, die \u00fcber procfs sichtbar werden.","caption":"Konzeptionelle Illustration: procfs macht ausgew\u00e4hlte Zust\u00e4nde des laufenden Kernels als Dateiansichten zug\u00e4nglich.","filename_base":"linux-procfs-kernelansicht","section_id":"","after_block":0},"detail1":{"prompt":"Konzeptionelle Infografik zu kombinierter Linux-Diagnose: ein zentraler Lastindikator verzweigt zu CPU-Zeit, verf\u00fcgbarem Speicher, Speicher-Stalls und I\/O-Stalls. Zeige Zusammenh\u00e4nge durch farblich zur\u00fcckhaltende Linien und abstrahierte Systemmodule, ohne Text, Zahlen, Legenden oder Logos.","alt":"Konzeptionelle Verkn\u00fcpfung von Last-, Speicher-, CPU- und I\/O-Signalen.","caption":"Konzeptionelle Illustration: Erst mehrere Kernelindikatoren zusammen erm\u00f6glichen eine belastbare Einordnung von Last.","filename_base":"procfs-last-speicher-signale","section_id":"proc-load-memory","after_block":1},"detail2":{"prompt":"Konzeptionelle technische Darstellung mit zwei getrennten Analyseebenen: links ein einzelner Linux-Prozess mit offenen Dateideskriptoren und virtuellen Speicherbereichen, rechts systemweite Blockger\u00e4te-I\/O. Dazwischen eine abstrahierte Dateisystem-, Cache- und Device-Mapper-Schicht, die keine direkte 1:1-Verbindung suggeriert. Sachlicher dunkler Stil, keine Schrift, Zahlen oder Logos.","alt":"Getrennte Darstellung von Prozessressourcen und systemweiter Ger\u00e4te-I\/O mit abstrahierter Vermittlungsschicht.","caption":"Konzeptionelle Illustration: Prozessdaten und Blockger\u00e4te-I\/O sind getrennte Analyseebenen, die nicht direkt eins zu eins zugeordnet werden k\u00f6nnen.","filename_base":"procfs-prozess-fd-io","section_id":"proc-process-io","after_block":2}},"chart":null,"social":{"facebook":"Linux procfs richtig nutzen: Welche \/proc-Dateien bei Last, Speicherproblemen, Prozessen und I\/O wirklich weiterhelfen \u2013 und warum Einzelwerte oft t\u00e4uschen.","instagram":"procfs ist keine gew\u00f6hnliche Dateiablage: So ordnest du \/proc-Werte f\u00fcr Last, Speicher, Prozesse und I\/O korrekt ein.","tiktok":"Hoher Load ist nicht automatisch CPU-Last. Diese procfs-Dateien helfen bei der Linux-Diagnose.","youtube":"Linux procfs erkl\u00e4rt: Wichtige \/proc-Dateien f\u00fcr Last, RAM, Prozesse und I\/O richtig lesen","threads":"procfs liefert Kernel-Rohdaten, aber selten sofort eine Diagnose. Entscheidend sind Zeitbezug, Namespace und der Abgleich mehrerer Signale.","x":"Linux procfs f\u00fcr Admins: \/proc\/loadavg, meminfo, stat, pressure, Prozesspfade und diskstats richtig einordnen. Warum hohe Load, wenig MemFree oder iowait allein keine Diagnose sind."},"avatar_script":"procfs ist die direkte Dateiansicht auf viele Zust\u00e4nde des laufenden Linux-Kernels. F\u00fcr die t\u00e4gliche Diagnose ist nicht entscheidend, m\u00f6glichst viele Dateien zu kennen, sondern passende Signale zusammenzuf\u00fchren. Ein hoher Load Average kann CPU-Konkurrenz bedeuten, aber ebenso auf wartende I\/O-Tasks hinweisen. Wenig MemFree ist normal, wenn der Kernel RAM als Cache verwendet; MemAvailable und Speicher-PSI liefern den wichtigeren Kontext. Prozessverzeichnisse helfen bei einzelnen Diensten, k\u00f6nnen aber durch Rechte, hidepid oder PID-Namespaces eingeschr\u00e4nkt sein. Unter \/proc\/sys beginnt dagegen Konfiguration: Lesen ist Diagnostik, Schreiben ver\u00e4ndert aktives Kernelverhalten. F\u00fcr Trends und Alarmierung erg\u00e4nzen Monitoring-Werkzeuge die punktuelle procfs-Abfrage.","version_note":"Recherchestand: 22. September 2026. Die sichtbaren procfs-Pfade und Felder k\u00f6nnen je nach Kernelversion, Konfiguration, Hardware, Namespaces und Berechtigungen abweichen. Die f\u00fcr drop_caches und Netzwerkparameter herangezogenen Kernel-Dokumentationen sind versionsgebunden; pr\u00fcfe bei abweichender Kernelversion die Dokumentation des eingesetzten Kernels.","sections":[{"id":"proc-basics","heading":"procfs verstehen: virtuelle Kernelansicht statt Datenspeicher","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Das ","ref":""},{"kind":"strong","text":"procfs","ref":""},{"kind":"text","text":" ist ein virtuelles Dateisystem: Die Eintr\u00e4ge unter \/proc bilden Datenstrukturen und Zust\u00e4nde des laufenden Linux-Kernels ab. Sie liegen nicht als dauerhaft gespeicherte Inhalte auf einem Datentr\u00e4ger. Beim Lesen erzeugt der Kernel die jeweilige Ansicht aus seinem aktuellen Zustand; nach einem Neustart beginnen etwa viele Z\u00e4hler erneut. Deshalb ist \/proc eine Schnittstelle f\u00fcr Beobachtung und teilweise Steuerung, kein Ort f\u00fcr eigene Dateien oder persistente Konfigurationen. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr die Administration sind drei Bereiche zu unterscheiden. Globale Statusdateien wie \/proc\/meminfo, \/proc\/stat oder \/proc\/loadavg liefern kernelweite Kennzahlen. Verzeichnisse mit numerischen Namen, etwa \/proc\/1234, liefern Details zu einem einzelnen Prozess. Unter \/proc\/sys liegen dagegen Kernelparameter, die abh\u00e4ngig von Berechtigung und Parameter sowohl lesbar als auch schreibbar sein k\u00f6nnen. Die \u00e4hnliche Dateiform darf nicht dar\u00fcber hinwegt\u00e4uschen, dass Statusabfrage und Konfigurations\u00e4nderung grundverschiedene Folgen haben. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Welche Pfade und Felder vorhanden sind, ist nicht auf jedem Linux-System identisch. Kernelversion und -konfiguration, Architektur, erkannte Hardware sowie geladene Module beeinflussen die sichtbaren Eintr\u00e4ge. Auch Namespaces ver\u00e4ndern einzelne Ansichten. Ein procfs, das mit einem PID-Namespace verbunden ist, begrenzt insbesondere die Prozess- und PID-Sicht; daraus folgt jedoch nicht, dass globale Dateien automatisch container- oder cgroup-spezifische Werte zeigen. Skripte sollten Dateien und Felder pr\u00fcfen, bevor sie deren Inhalt auswerten, statt eine vollst\u00e4ndige, \u00fcberall gleiche procfs-Struktur vorauszusetzen. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Davon abzugrenzen ist sysfs unter \/sys: Es stellt vor allem Ger\u00e4te, Treiber und Hardwareobjekte dar. F\u00fcr Ressourcenverteilung und Grenzen von Gruppen ist au\u00dferdem cgroup2 relevant. procfs bleibt jedoch die unmittelbare Quelle f\u00fcr viele Kernel- und Prozesszust\u00e4nde, die bei einer ersten Diagnose ben\u00f6tigt werden. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]}]},{"id":"proc-time-context","heading":"Z\u00e4hler, Momentaufnahmen und Sichtbarkeit richtig einordnen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Der Wert allein erkl\u00e4rt bei procfs selten ein Problem. Zuerst ist sein Zeitbezug zu kl\u00e4ren: Einige Angaben sind ","ref":""},{"kind":"strong","text":"kumulative Z\u00e4hler","ref":""},{"kind":"text","text":" seit Systemstart, andere beschreiben einen aktuellen Zustand, wieder andere bilden gleitende Zeitfenster ab. Ein hoher Z\u00e4hlerstand zeigt zun\u00e4chst nur, dass sich ein Ereignis seit dem Boot summiert hat. Eine Rate entsteht erst aus zwei Messpunkten: Differenz der Werte geteilt durch das dazwischenliegende Zeitintervall. Das gilt beispielsweise f\u00fcr viele CPU-, Interrupt- und Datentr\u00e4gerz\u00e4hler. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Datei \/proc\/uptime liefert die vergangene Betriebsdauer und die aggregierte Idle-Zeit. Sie hilft, Z\u00e4hler seit dem Start zeitlich einzuordnen, ersetzt aber keine Messreihe. Eine einmalige Abfrage ist eine Momentaufnahme; f\u00fcr belastbare Aussagen \u00fcber Trends, Spitzen oder wiederkehrende Last braucht es wiederholte Abfragen mit Zeitstempel. Dabei k\u00f6nnen sich Werte bereits w\u00e4hrend des Lesens ver\u00e4ndern, weil der Kernel weiterarbeitet. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch die sichtbaren Daten haben Grenzen. \/proc\/self verweist stets auf den Prozess, der den Pfad gerade aufl\u00f6st. Damit ist er f\u00fcr Skripte und interaktive Pr\u00fcfungen praktisch, ohne eine PID anzunehmen. Der Zugriff auf fremde Prozessverzeichnisse kann jedoch durch Dateirechte, Linux-Capabilities und die procfs-Mount-Option ","ref":""},{"kind":"code","text":"hidepid","ref":""},{"kind":"text","text":" eingeschr\u00e4nkt sein. Fehlende Einblicke sind in diesem Fall kein defektes procfs, sondern ein Schutz gegen das Auslesen sensibler Prozessinformationen. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Besondere Vorsicht gilt in Containern. Ein an einen PID-Namespace gebundenes procfs zeigt bei prozessbezogenen Pfaden nur die Prozesse dieser Namespace-Sicht. Globale Kerneldateien wie \/proc\/meminfo, \/proc\/stat oder \/proc\/diskstats k\u00f6nnen dagegen weiterhin Werte des Hosts widerspiegeln und sind nicht automatisch auf das Containerlimit begrenzt. Vor jeder Diagnose ist daher zu kl\u00e4ren, ob die Frage Prozesse, globale Kernelwerte oder die tats\u00e4chlich zugewiesenen Ressourcen betrifft; Limits und Nutzung eines Containers geh\u00f6ren zus\u00e4tzlich in die cgroup2-Analyse. ","ref":""},{"kind":"citation","text":"","ref":"S8"}]}]},{"id":"proc-sysctl-boundary","heading":"Lesen, konfigurieren und absichern unter \/proc\/sys","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Der Bereich ","ref":""},{"kind":"strong","text":"\/proc\/sys","ref":""},{"kind":"text","text":" ist die Dateisystemansicht der sysctl-Schnittstelle. Das Lesen eines Werts dient der Diagnostik. Ein Schreibzugriff ver\u00e4ndert dagegen unmittelbar das Verhalten des laufenden Kernels und kann Dienste, Ressourcenverbrauch oder Sicherheitsmerkmale beeinflussen. Dass eine \u00c4nderung ohne Neustart wirkt, macht sie nicht risikolos und auch nicht automatisch dauerhaft: Persistenz h\u00e4ngt von der gew\u00e4hlten Systemkonfiguration ab. ","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Verzeichnisstruktur erleichtert die erste Einordnung. Unter \/proc\/sys\/fs stehen unter anderem globale Dateisystem- und File-Handle-Parameter. \/proc\/sys\/vm b\u00fcndelt Einstellungen der Speicherverwaltung, w\u00e4hrend \/proc\/sys\/net netzwerkbezogene Parameter enth\u00e4lt. Welche Unterverzeichnisse und Schl\u00fcssel verf\u00fcgbar sind, h\u00e4ngt wiederum von Kernelkonfiguration und Funktionen des Systems ab. Ein vorhandener Parameter ist daher kein allgemeines Tuning-Rezept; seine Dokumentation und der konkrete Workload sind ma\u00dfgeblich. ","ref":""},{"kind":"citation","text":"","ref":"S10"},{"kind":"citation","text":"","ref":"S11"},{"kind":"citation","text":"","ref":"S12"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein Gegenbeispiel f\u00fcr scheinbare Optimierung ist ","ref":""},{"kind":"code","text":"drop_caches","ref":""},{"kind":"text","text":" unter \/proc\/sys\/vm. Die Kernel-Dokumentation ordnet die Funktion Debugging und Tests zu und r\u00e4t von einem Einsatz au\u00dferhalb solcher Zwecke ab, weil das Leeren wiederverwendbarer Caches Leistung kosten kann. Wenig freier Speicher ist f\u00fcr sich genommen kein Grund, Caches zu verwerfen: Der Kernel nutzt RAM bewusst auch f\u00fcr Dateicache. ","ref":""},{"kind":"citation","text":"","ref":"S11"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Vor jeder \u00c4nderung sollte eine nachvollziehbare Ursache vorliegen. Sichere zuerst den Ausgangswert, dokumentiere Zweck und erwartete Nebenwirkungen, \u00e4ndere kontrolliert und beobachte anschlie\u00dfend passende Messwerte sowie Dienstverhalten. Plane den R\u00fcckweg vorab und \u00fcbernimm einen Wert erst nach fachlicher Pr\u00fcfung in eine dauerhafte Konfiguration. Weiterf\u00fchrende Grundlagen zu Parametern und ihrer kontrollierten Verwaltung behandelt der Beitrag ","ref":""},{"kind":"internal_link","text":"Kernel-Tuning im Linux-Hosting: Sysctl-Parameter im \u00dcberblick","ref":"I2"},{"kind":"text","text":".","ref":""}]}]},{"id":"proc-overview-table","heading":"Die wichtigsten procfs-Dateien nach Administrationsaufgabe","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Die Auswahl einer procfs-Datei sollte von der Administrationsfrage ausgehen, nicht von einer m\u00f6glichst vollst\u00e4ndigen Verzeichnisliste. Globale Dateien liefern oft kernelweite Werte, Prozesspfade beschreiben einen einzelnen sichtbaren Prozess, und Eintr\u00e4ge unter \/proc\/sys\/fs liefern Konfiguration und systemweite Grenzen. Einige Werte sind aktuelle Zust\u00e4nde, andere seit dem Boot kumulierte Z\u00e4hler oder gleitende Durchschnitte. Diese Unterscheidung entscheidet dar\u00fcber, ob ein einzelnes Auslesen gen\u00fcgt oder zwei Messpunkte n\u00f6tig sind.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"table","caption":"Wichtige procfs-Dateien f\u00fcr typische Verwaltungsfragen","headers":["Pfad","Zweck","Typische Frage","Datencharakter","Wichtige Einschr\u00e4nkung","Sichere Leseabfrage"],"rows":[["\/proc\/loadavg","Systemlast","Sind Aufgaben wartend?","1-, 5-, 15-Minuten-Mittel","Keine reine CPU-Auslastung","cat \/proc\/loadavg"],["\/proc\/stat","CPU- und Kernelz\u00e4hler","Wie verteilen sich CPU-Zeiten?","Seit Boot kumuliert","iowait nicht isoliert bewerten","grep -E '^(cpu|intr|ctxt|processes)' \/proc\/stat"],["\/proc\/meminfo","Speicher\u00fcbersicht","Ist Speicher verf\u00fcgbar?","Aktuelle Speicherwerte","MemFree allein gen\u00fcgt nicht; im Container nicht zwingend cgroup-spezifisch","cat \/proc\/meminfo"],["\/proc\/pressure\/cpu","CPU-Stalls","Warten Tasks auf CPU?","Zeitfenster und Z\u00e4hler","Systemweites full ist nicht interpretierbar und wird als null ausgegeben","cat \/proc\/pressure\/cpu"],["\/proc\/pressure\/memory","Speicherdruck","Blockiert Speicherknappheit Tasks?","Zeitfenster und Z\u00e4hler","PSI muss verf\u00fcgbar sein","cat \/proc\/pressure\/memory"],["\/proc\/pressure\/io","I\/O-Stalls","Warten Tasks auf I\/O?","Zeitfenster und Z\u00e4hler","Kein Ersatz f\u00fcr Ger\u00e4teanalyse","cat \/proc\/pressure\/io"],["\/proc\/<PID>\/status","Prozessstatus","Wie gro\u00df und aktiv ist ein Prozess?","Aktuelle Prozessdaten","Rechte und PID-Namespace k\u00f6nnen Zugriff begrenzen","cat \/proc\/$$\/status"],["\/proc\/<PID>\/fd","Offene Deskriptoren","Welche Objekte h\u00e4lt ein Prozess?","Aktuelle symbolische Links","Viele FDs sind nicht automatisch ein Leck","ls -l \/proc\/$$\/fd"],["\/proc\/<PID>\/maps","Virtuelle Mappings","Welche Bereiche hat ein Prozess eingebunden?","Aktuelle Mappingliste","F\u00fcr die Erstanalyse oft zu umfangreich","cat \/proc\/$$\/maps"],["\/proc\/diskstats","Blockger\u00e4te-I\/O","Welche Ger\u00e4te arbeiten?","Seit Boot kumuliert","Raten erfordern zwei Stichproben; Werte k\u00f6nnen hostweit sein","cat \/proc\/diskstats"],["\/proc\/sys\/fs\/file-nr","File-Handle-Nutzung","Wie viele Handles nutzt das System?","Aktueller Z\u00e4hler und Grenze","Mittleres Feld ist auf modernen Linux-Systemen null","cat \/proc\/sys\/fs\/file-nr"],["\/proc\/sys\/fs\/file-max","File-Handle-Grenze","Welche globale Obergrenze gilt?","Aktiver Parameter","Nicht mit Prozesslimit verwechseln","cat \/proc\/sys\/fs\/file-max"]],"source_ids":["S1","S3","S4","S5","S6","S7","S9","S10"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Tabelle ist eine Einstiegshilfe, keine Diagnosekette. Ein auff\u00e4lliger Wert verlangt stets ein unabh\u00e4ngiges Gegenzeichen: Load mit CPU- und I\/O-Daten, Speicherwerte mit Pressure Stall Information und Prozessgr\u00f6\u00dfen mit dem Verhalten des Dienstes. Besonders \/proc\/diskstats und \/proc\/stat sind ","ref":""},{"kind":"strong","text":"kumulative Z\u00e4hler","ref":""},{"kind":"text","text":"; ihre Differenz \u00fcber ein bekanntes Intervall ist f\u00fcr Raten aussagekr\u00e4ftiger als der absolute Stand. In Containern ist zus\u00e4tzlich zu pr\u00fcfen, ob eine Datei globale Kernelwerte oder eine pro cgroup verf\u00fcgbare Sicht liefert. Die folgenden Abschnitte ordnen die Signale deshalb nach Last, Speicher, Prozessen und I\/O ein.","ref":""}]}]},{"id":"proc-load-memory","heading":"Last, CPU und Speicher: Signale kombiniert bewerten","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer langsamen Anwendung ist \/proc\/loadavg ein sinnvoller Start, aber kein Urteil \u00fcber die CPU. Die drei Werte bilden die durchschnittliche Last der letzten 1, 5 und 15 Minuten ab. In die Last gehen nicht nur laufbereite Einheiten im Zustand R ein, sondern auch Tasks im ununterbrechbaren Wartezustand D, etwa bei I\/O. Das vierte Feld zeigt die aktuell ausf\u00fchrbaren gegen\u00fcber allen existierenden Scheduling-Einheiten. Hoher ","ref":""},{"kind":"strong","text":"Load Average","ref":""},{"kind":"text","text":" kann daher auf CPU-Konkurrenz, blockierte I\/O-Zugriffe oder beides hinweisen.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"code","language":"sh","code":"cat \/proc\/loadavg\ngrep -E '^(cpu|intr|ctxt|processes)' \/proc\/stat\ncat \/proc\/meminfo\ncat \/proc\/pressure\/memory","source_ids":["S3","S4","S5","S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die CPU-Zeilen aus \/proc\/stat enthalten Zeitanteile seit dem Systemstart in USER_HZ. Um daraus Auslastungsanteile zu ermitteln, m\u00fcssen zwei Abfragen verglichen werden; ein einzelner Stand zeigt nur angesammelte Zeit. Der Wert iowait ist dabei kein unmittelbares Latenzma\u00df f\u00fcr Storage: Seine Berechnung hat dokumentierte Grenzen und kann unter bestimmten Umst\u00e4nden sogar sinken. F\u00fcr eine I\/O-Ursache sind daher zus\u00e4tzlich Ger\u00e4tewerte und I\/O-PSI sinnvoll.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch ein niedriger Wert bei MemFree beweist noch keine RAM-Not. Linux nutzt unbenutzten Arbeitsspeicher gezielt f\u00fcr Cache. MemAvailable sch\u00e4tzt, wie viel Speicher neue Anwendungen voraussichtlich ohne Swapping erhalten k\u00f6nnen, und ist f\u00fcr die erste Einordnung meist hilfreicher. Erst wenn MemAvailable knapp wird und gleichzeitig Speicher-Stalls auftreten, verdichtet sich der Hinweis auf ","ref":""},{"kind":"strong","text":"Speicherdruck","ref":""},{"kind":"text","text":". In einem Container k\u00f6nnen diese globalen Speicherwerte allerdings vom Host stammen; f\u00fcr zugesicherte oder begrenzte Ressourcen ist die cgroup2-Sicht zus\u00e4tzlich ma\u00dfgeblich.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Dateien unter \/proc\/pressure erg\u00e4nzen diese Sicht. Bei memory und io bedeutet some, dass wenigstens einige Tasks w\u00e4hrend eines Anteils des Zeitfensters nicht weiterkamen; full steht dort f\u00fcr einen Zustand, in dem alle nicht-idlen Tasks gleichzeitig blockiert waren. Die Angaben avg10, avg60 und avg300 beziehen sich auf 10, 60 und 300 Sekunden, total ist ein kumulierter Stall-Z\u00e4hler. F\u00fcr CPU ist systemweites full semantisch nicht definiert und wird seit Linux 5.13 aus Kompatibilit\u00e4tsgr\u00fcnden als null ausgegeben; als Diagnosewert ist es auf Systemebene daher nicht zu interpretieren. CPU-, memory- und io-PSI beantworten unterschiedliche Fragen und sollten nicht gegeneinander ausgetauscht werden.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Reagiert ein Dienst bei geringem MemFree langsam, pr\u00fcfst du zun\u00e4chst MemAvailable und \/proc\/pressure\/memory. Sind beide unauff\u00e4llig, spricht das gegen akuten systemweiten Speicherdruck. Anschlie\u00dfend kann \/proc\/<PID>\/status zeigen, ob der betroffene Prozess etwa eine hohe VmRSS-N\u00e4herung, viele Threads oder einen auff\u00e4lligen State aufweist. Diese Kombination trennt eine Cache-lastige, aber normale Speichernutzung von einem Problem, das weitere Prozessanalyse verlangt.","ref":""},{"kind":"citation","text":"","ref":"S7"}]}]},{"id":"proc-process-io","heading":"Prozesse, Dateideskriptoren und Datentr\u00e4ger-I\/O untersuchen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr eine sichere \u00dcbung mit einem garantiert vorhandenen Prozess steht $$ f\u00fcr die PID der aktuellen Shell. Die status-Datei ist menschenlesbarer als die feldorientierte stat-Datei. Name identifiziert den Prozess, State seinen Zustand, PPid den Elternprozess und Threads die Thread-Anzahl. VmRSS ist eine schnelle N\u00e4herung f\u00fcr residenten Speicher, deren RSS-Buchf\u00fchrung skalierbar und asynchron erfolgt und deshalb ungenau sein kann; VmSize beschreibt dagegen virtuellen Adressraum. FDSize beschreibt die Gr\u00f6\u00dfe der Deskriptortabelle, nicht zwingend die Zahl aktuell offener Eintr\u00e4ge. Freiwillige und unfreiwillige Kontextwechsel k\u00f6nnen bei der Einordnung von Scheduling-Verhalten helfen, sind allein aber kein Fehlerbeweis.","ref":""},{"kind":"citation","text":"","ref":"S7"},{"kind":"citation","text":"","ref":"S1"}]},{"type":"code","language":"sh","code":"cat \/proc\/$$\/status\nls -l \/proc\/$$\/fd","source_ids":["S7","S1"]},{"type":"paragraph","runs":[{"kind":"text","text":"Das fd-Verzeichnis enth\u00e4lt symbolische Links auf offene Dateien, Pipes, Ger\u00e4te oder Sockets. Es hilft etwa, einen Prozess zu finden, der eine gel\u00f6schte Logdatei weiterhin ge\u00f6ffnet h\u00e4lt. Eine gro\u00dfe Zahl offener Dateideskriptoren ist jedoch bei Proxys, Datenbanken oder ereignisorientierten Servern durchaus erwartbar. F\u00fcr gefilterte Ansichten und die Zuordnung \u00fcber Prozesse hinweg ist ","ref":""},{"kind":"internal_link","text":"lsof zur Analyse offener Dateien einsetzen","ref":"I3"},{"kind":"text","text":" eine passende Erg\u00e4nzung. Kommandozeilen aus cmdline k\u00f6nnen vertrauliche Argumente preisgeben; environ ist wegen m\u00f6glicher Zugangsdaten oder Tokens noch sensibler und keine Routineabfrage.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"maps listet virtuelle Speicherbereiche mit Berechtigungen, Offset, Ger\u00e4t, Inode und gegebenenfalls Pfad. smaps erg\u00e4nzt je Mapping detaillierte Speicherwerte und liefert gegen\u00fcber RSS-Angaben eine genauere, aber aufwendigere Momentaufnahme. Beide Dateien sind f\u00fcr vertiefte Speicheranalysen gedacht: Ihre Ausgabe kann gro\u00df sein, und die Interpretation einzelner Mappings erfordert Kontext. F\u00fcr den ersten Blick sind status und die systemweiten Speicher- und PSI-Dateien meist effizienter.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei hohem Load und geringer CPU-Auslastung erweitert \/proc\/diskstats die Diagnose um die Ger\u00e4teebene. Die Datei f\u00fchrt pro Blockger\u00e4t kumulative I\/O-Statistiken. Um Aktivit\u00e4t als Rate zu bewerten, m\u00fcssen zwei Zeitpunkte verglichen werden. Dabei sind physische Laufwerke, Partitionen und virtuelle oder Device-Mapper-Ger\u00e4te sauber zu unterscheiden; Z\u00e4hler verschiedener Ebenen d\u00fcrfen nicht blind addiert werden. Ein offener Dateideskriptor eines Prozesses l\u00e4sst sich dabei nicht unmittelbar einem diskstats-Ger\u00e4tez\u00e4hler zuordnen: Dateisystem, Cache und Mapping-Schichten liegen dazwischen. Zusammen mit \/proc\/pressure\/io l\u00e4sst sich dennoch pr\u00fcfen, ob beobachtbare I\/O-Stalls und Ger\u00e4teaktivit\u00e4t zeitlich zusammenfallen.","ref":""},{"kind":"citation","text":"","ref":"S9"}]}]},{"id":"proc-monitoring","heading":"procfs im Betrieb: Abfragen, Monitoring und Datenschutz","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr wiederholbare Betriebsdiagnosen behandelst du procfs-Abfragen als Messpunkte: Du notierst Zeitstempel, Systemkontext und die konkrete Abfrage. Viele Werte sind seit dem Start kumulierte Z\u00e4hler; erst die Differenz zweier Werte geteilt durch das Zeitintervall ergibt eine Rate. Das gilt etwa f\u00fcr Z\u00e4hler aus ","ref":""},{"kind":"code","text":"\/proc\/diskstats","ref":""},{"kind":"text","text":". Eine Einzelabfrage kann daher Aktivit\u00e4t belegen, aber weder Durchsatz noch eine dauerhafte Verschlechterung zuverl\u00e4ssig quantifizieren. ","ref":""},{"kind":"citation","text":"","ref":"S9"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein Monitoring-System sollte in festen Intervallen unter anderem Speicherwerte aus ","ref":""},{"kind":"code","text":"\/proc\/meminfo","ref":""},{"kind":"text","text":", Ger\u00e4tewerte aus ","ref":""},{"kind":"code","text":"\/proc\/diskstats","ref":""},{"kind":"text","text":", Prozess- und Systemzust\u00e4nde sowie bei verf\u00fcgbarer Kernelunterst\u00fctzung Drucksignale erfassen. Es muss Rohwerte in passende Einheiten umrechnen, bei Z\u00e4hlern Differenzen bilden und Historien speichern. In Containern darf es globale procfs-Werte nicht mit den Ressourcenlimits der Workload gleichsetzen: Prozesspfade k\u00f6nnen auf den PID-Namespace begrenzt sein, w\u00e4hrend Speicher- oder Ger\u00e4tewerte teilweise den Host abbilden. F\u00fcr Limits und Auslastung einer Gruppe sind erg\u00e4nzende cgroup2-Metriken n\u00f6tig. Erst zeitliche Verl\u00e4ufe erlauben belastbare Schwellenwerte: Ein hoher Wert kann normal sein, wenn er zum erwarteten Lastfenster passt; ein pl\u00f6tzlicher Anstieg gegen\u00fcber der eigenen Baseline ist oft relevanter. Die verf\u00fcgbaren procfs-Eintr\u00e4ge h\u00e4ngen vom laufenden Kernel und seiner Konfiguration ab. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Direkte Dateien und Werkzeuge erg\u00e4nzen sich. ","ref":""},{"kind":"code","text":"ps","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"top","ref":""},{"kind":"text","text":" oder ","ref":""},{"kind":"code","text":"htop","ref":""},{"kind":"text","text":" eignen sich f\u00fcr die interaktive Prozesssicht; ","ref":""},{"kind":"code","text":"free","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"vmstat","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"iostat","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"pidstat","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"ss","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"sar","ref":""},{"kind":"text","text":" bereiten je nach Installation Daten f\u00fcr bestimmte Fragen auf. procfs bleibt sinnvoll, wenn du die Kernelquelle direkt pr\u00fcfen oder ein kleines, nachvollziehbares Skript bauen m\u00f6chtest. F\u00fcr Alarmierung und Kapazit\u00e4tsplanung sind Zeitreihendaten meist die passendere Ebene.","ref":""}]},{"type":"callout","variant":"warning","title":"Prozessdaten nicht unbedacht weitergeben","runs":[{"kind":"text","text":"Kommandozeilen k\u00f6nnen Pfade, Mandantenkennungen oder versehentlich \u00fcbergebene Zugangsdaten enthalten. Umgebungsvariablen eines Prozesses sind h\u00e4ufig noch sensibler. Erfasse, speichere und teile diese Daten nur, wenn sie f\u00fcr die Diagnose erforderlich sind; beschr\u00e4nke Zugriffe auf berechtigte Personen.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch bei rein lesenden Abfragen gelten Sichtbarkeitsgrenzen. Zugriffsrechte, Mount-Optionen und PID-Namespaces k\u00f6nnen Prozessdaten ausblenden oder auf eine Containeransicht begrenzen. Umgekehrt bedeutet eine eigene \/proc-Einh\u00e4ngung nicht, dass jede globale Kerneldatei nur Daten des Containers enth\u00e4lt. Ein fehlender Prozesseintrag oder ein unerwartet hoher globaler Wert ist deshalb zun\u00e4chst ein Hinweis darauf, Ausf\u00fchrungsumgebung, Mount-Optionen und cgroup-Kontext zu kl\u00e4ren. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]}]},{"id":"proc-troubleshooting","heading":"Diagnosepfade f\u00fcr langsame Dienste und Ressourcenengp\u00e4sse","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Troubleshooting beginnt mit einem Symptom, nicht mit einem vermeintlich schuldigen Einzelwert. Pr\u00fcfe danach mindestens ein unabh\u00e4ngiges Signal und halte fest, ob die Beobachtung den Host, eine virtuelle Maschine oder einen Container betrifft. So vermeidest du beispielsweise, einen hohen Load vorschnell als CPU-Problem oder eine gro\u00dfe Zahl offener Deskriptoren vorschnell als Leck zu bewerten. Die folgenden Pfade sind lesende Erstdiagnosen und ersetzen keine anwendungsbezogenen Logs.","ref":""}]},{"type":"table","caption":"Kompakte Diagnosepfade mit procfs","headers":["Symptom","Zuerst lesen","Danach abgleichen","Fehlinterpretation vermeiden"],"rows":[["Hoher Load","\/proc\/loadavg","\/proc\/stat, \/proc\/pressure\/io, \/proc\/diskstats","Load umfasst laufbereite und ununterbrechbar wartende Tasks, nicht nur CPU-Arbeit."],["Vermuteter Speicherdruck","\/proc\/meminfo","\/proc\/pressure\/memory, \/proc\/<PID>\/status","Niedriges MemFree allein beweist keinen RAM-Mangel; MemAvailable und Stalls z\u00e4hlen mit."],["Auff\u00e4llige I\/O-Wartezeit","\/proc\/stat","\/proc\/pressure\/io, \/proc\/diskstats in zwei Messpunkten","iowait ist keine direkte Latenzmessung und hat dokumentierte Einschr\u00e4nkungen."],["Viele offene Dateien","\/proc\/sys\/fs\/file-nr und \/proc\/sys\/fs\/file-max","\/proc\/<PID>\/fd, Dienstverhalten","Viele Deskriptoren k\u00f6nnen f\u00fcr einen Server normal sein; Grenzen und Wachstum sind wichtiger."],["Dienst startet nicht","\/proc\/<PID>\/status, sofern ein Prozess entsteht","\/proc\/<PID>\/fd, Dienstjournal, belegte Ressourcen","Ein nicht sichtbarer Prozess kann beendet sein oder au\u00dferhalb des sichtbaren PID-Namespace laufen."]],"source_ids":["S1","S3","S4","S5","S6","S9","S10"]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei hoher Load Average pr\u00fcfst du zun\u00e4chst, ob ausf\u00fchrbare oder wartende Aufgaben die Zahl treiben. Die Load-Angaben bilden Durchschnittswerte \u00fcber ein, f\u00fcnf und 15 Minuten ab und ber\u00fccksichtigen sowohl R- als auch D-Zust\u00e4nde. Vergleiche deshalb CPU-Zeitfelder nur mit Vorsicht mit I\/O-Druck und Ger\u00e4teaktivit\u00e4t. Insbesondere ","ref":""},{"kind":"strong","text":"iowait","ref":""},{"kind":"text","text":" darf nicht isoliert als Speicherlatenz gelesen werden. ","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer langsamen Anwendung und kleinem MemFree ist ","ref":""},{"kind":"strong","text":"MemAvailable","ref":""},{"kind":"text","text":" der bessere erste Kontextwert. Erg\u00e4nze Speicher-PSI und den Status des betroffenen Prozesses, etwa dessen VmRSS, Threadzahl und Zustand. PSI unterscheidet bei Speicher und I\/O zwischen ","ref":""},{"kind":"code","text":"some","ref":""},{"kind":"text","text":" f\u00fcr teilweise blockierte Tasks und ","ref":""},{"kind":"code","text":"full","ref":""},{"kind":"text","text":" f\u00fcr vollst\u00e4ndige Blockierung nicht-idler Tasks. Fehlen PSI-Dateien, kann dies an Kernelkonfiguration oder Umgebung liegen; es widerlegt keinen Engpass. ","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr Datei- und Prozessdiagnosen k\u00f6nnen Rechte und ","ref":""},{"kind":"strong","text":"PID-Namespaces","ref":""},{"kind":"text","text":" die Aussagekraft einschr\u00e4nken. In Containern beschreibt \/proc h\u00e4ufig nur die zugeordnete Prozesswelt. Bei verweigertem Zugriff oder unvollst\u00e4ndigen Verzeichnissen pr\u00fcfst du daher Nutzerrechte, procfs-Mount-Optionen und den Namespace-Kontext, bevor du aus der Abwesenheit von Daten eine technische Schlussfolgerung ziehst. ","ref":""},{"kind":"citation","text":"","ref":"S1"}]}]},{"id":"proc-decisions","heading":"Typische Fehlannahmen korrigieren und passende Werkzeuge w\u00e4hlen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Vier Kurzschl\u00fcsse f\u00fchren in der Linux-Administration h\u00e4ufig zu falschen Ma\u00dfnahmen. Wenig ","ref":""},{"kind":"code","text":"MemFree","ref":""},{"kind":"text","text":" bedeutet nicht automatisch RAM-Not, weil der Kernel Speicher unter anderem als Cache nutzt; f\u00fcr neue Anwendungen ist MemAvailable die aussagekr\u00e4ftigere Sch\u00e4tzung. Hoher Load beweist keine CPU-S\u00e4ttigung, da auch ununterbrechbar wartende Aufgaben einflie\u00dfen. Ein hoher iowait-Anteil misst keine unmittelbare Latenz eines Datentr\u00e4gers. Und procfs ist nicht \u00fcberall identisch: Kernelversion, Konfiguration, Hardware, Module und Namespaces beeinflussen Dateien und Felder. ","ref":""},{"kind":"citation","text":"","ref":"S1"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"W\u00e4hle die Methode nach der Frage. F\u00fcr eine punktuelle Ursachenanalyse liefert ","ref":""},{"kind":"strong","text":"procfs","ref":""},{"kind":"text","text":" unmittelbare Rohdaten des laufenden Kernels. F\u00fcr eine schnelle, menschenlesbare \u00dcbersicht sind spezialisierte Kommandozeilenwerkzeuge meist effizienter. Wenn Trends, Alarmierung oder Kapazit\u00e4tsentscheidungen z\u00e4hlen, ben\u00f6tigst du ein Monitoring, das Messpunkte zeitlich einordnet, Z\u00e4hlerdifferenzen berechnet und historische Vergleichswerte vorh\u00e4lt. Bei Ressourcenlimits einzelner Dienste oder Container erg\u00e4nzt eine Analyse auf cgroup-Ebene die globale Hostansicht; PSI kann bei passender Konfiguration auch pro cgroup verf\u00fcgbar sein. ","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Besondere Zur\u00fcckhaltung gilt f\u00fcr ","ref":""},{"kind":"code","text":"\/proc\/sys","ref":""},{"kind":"text","text":". Das Lesen eines Parameters ist Diagnostik, das Schreiben ver\u00e4ndert aktives Kernelverhalten. \u00c4ndere einen Wert nur, wenn die Ursache verstanden ist, der Ausgangswert dokumentiert wurde, Auswirkungen beobachtbar sind und ein R\u00fcckweg feststeht. Die Verzeichnisse ","ref":""},{"kind":"code","text":"fs","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"vm","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"net","ref":""},{"kind":"text","text":" ordnen Parameter thematisch, liefern aber keine universellen Tuningvorgaben. ","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das Beispiel ","ref":""},{"kind":"code","text":"drop_caches","ref":""},{"kind":"text","text":" zeigt den Unterschied zwischen Eingriff und Optimierung: Die Kernel-Dokumentation beschreibt die Schnittstelle als nicht destruktiv, warnt jedoch vor Leistungsproblemen und empfiehlt sie nicht als regul\u00e4re Betriebsma\u00dfnahme au\u00dferhalb von Test- oder Debug-Szenarien. Eine konservative Regel lautet daher: Erst messen, dann eine begr\u00fcndete \u00c4nderung begrenzt vornehmen, Wirkung und Nebenwirkungen beobachten und die Entscheidung dokumentieren. ","ref":""},{"kind":"citation","text":"","ref":"S11"}]}]}]},"_wh_make_word_report":{"words":2798,"min":2000,"max":3000,"target":2500,"ok":true,"missing":0,"excess":0,"lead_words":64,"section_words":{"proc-basics":252,"proc-time-context":269,"proc-sysctl-boundary":230,"proc-overview-table":380,"proc-load-memory":369,"proc-process-io":319,"proc-monitoring":331,"proc-troubleshooting":332,"proc-decisions":252}},"_wh_make_review":{"verdict":"pass","issues":[],"checked_source_ids":["S1","S3","S4","S5","S6","S7","S9","S10","S11","S12"],"summary":"Der Artikel ist fachlich plausibel und durch die gepr\u00fcften Kernel-Dokumentationen sowie Linux-Manpages gest\u00fctzt. Die Abgrenzung von Momentaufnahmen, gleitenden Mittelwerten und kumulativen Z\u00e4hlern ist korrekt. Load Average, iowait, MemAvailable, PSI, Prozessstatus, Dateideskriptoren, diskstats und file-nr werden mit den n\u00f6tigen Einschr\u00e4nkungen erkl\u00e4rt. Schreibzugriffe unter \/proc\/sys sind klar von lesender Diagnostik getrennt; drop_caches wird nicht als regul\u00e4re Optimierung empfohlen. Container-, Namespace- und cgroup-Grenzen sind angemessen formuliert. Die Terminalbeispiele sind lesend, die Bildkonzepte suggerieren keine falsche direkte Zuordnung zwischen Prozessdateien und Blockger\u00e4te-I\/O, und es werden keine eigenen Messungen oder Tests behauptet. Versionsgebundene Quellen werden im Versionshinweis transparent kenntlich gemacht."},"_wh_make_review_doc_hash":"170001268aa02e1f1b3ca6d6477a053be0a1d7b6c241271836a300e46634ed3c","_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"inline_featured_image":null,"_yoast_wpseo_linkdex":null,"_eael_widget_elements":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_trp_translated_slug_en_us":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_wh_make_writer_raw":null,"_wh_make_design_backup_204":null,"_wp_desired_post_slug":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":"1","_edit_lock":"1790075357:1","_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"97","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":"75","rank_math_contentai_score":null,"ilj_limitincominglinks":"","ilj_maxincominglinks":"1","ilj_limitoutgoinglinks":"","ilj_maxoutgoinglinks":"1","ilj_limitlinksperparagraph":"","ilj_linksperparagraph":"1","ilj_blacklistdefinition":[],"ilj_linkdefinition":[],"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Linux procfs","rank_math_og_content_image":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"21652","_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":"Wichtige procfs-Dateien f\u00fcr Linux-Administratoren: Systemlast, Speicher, Prozesse, I\/O und \/proc\/sys korrekt lesen und einordnen.","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/21649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/comments?post=21649"}],"version-history":[{"count":4,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/21649\/revisions"}],"predecessor-version":[{"id":21657,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/21649\/revisions\/21657"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media\/21652"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media?parent=21649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/categories?post=21649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/tags?post=21649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}