Utilização / paginação de memoria nos vários Windows….

Reparei que para muitas pessoas existe grande confusão sobre quais os SO’s e quantos GB podem paginar ou ocupar….
Aqui fica uma breve lista.

Os limites de memória ou da sua utilização estão dependentes da plataforma, sistema operativo ou se estão a usar o IMAGE_FILE_LARGE_ADDRESS_AWARE e o 4GB Tunning (4GT).
O image IMAGE_FILE_LARGE_ADDRESS_AWARE é defenido ou limpo utilizando a opção /LARGEADDRESSWARE

Os limites das memorias fisicas num sistema a 32bits também está dependente do PAE que permite aos sistemas operativos com mais de 4Gb de alocarem a memoria em excesso.

Aqui ficam os limites de memoria:

User-Mode virtual address space para cada processo 32bits

num SO a 32bits.
2 GB
até 3Gb se usarmos IMAGE_FILE_LARGE_ADDRESS_AWARE e 4GT

num SO a 64bits
2Gb sem IMAGE_FILE_LARGE_ADDRESS_AWARE (defeito)
4Gb com IMAGE_FILE_LARGE_ADDRESS_AWARE

User-mode virtual address space para cada processo a 64bits.

Num SO a 64bits
com IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (defeito)
x64 – 8Tb
Itanium – 7TB

2GB sem IMAGE_FILE_LARGE_ADDRESS_AWARE

————————————————————————————-

Kernel-Mode Virtual Address
SO a 32bits
2Gb
de 1Gb até 2Gb com o 4GT

SO a 64bits
8TB

————————————————————————————-

Paged pool

SO a 32bits
limitado pela chave de registo pagedpoolLimit
Windows vista está limitado apenas para o Kernel mode virtual address space.
Windows Server 2003: 530Mb
Windows XP: 490Mb
Windows 2000: 350Mb

SO a 64bits

Windows Server 2003 e XP
até 128Gb dependendo da configuração e RAM

————————————————————————————-

Non Paged Pool

Limitada pela chave nonpagedpoollimite

Com SO a 32bits
Windows Server 2003, windos XP / 2000: 256Mb ou 128Mb com 4GT

Com SO a 64bits
75% da ram disponivel com máximo de 128Gb
Windows vista 40% da ram até ao máximo de 128Gb
Windows server 2003 e Windows XP
até 128Gb Ram

————————————————————————————-

System cache virtual address space
Limitado pela chave de registo SYSTEMCACHELIMIT

Com SO a 32bits

Windows Server 2003, XP, 2000
860Mb de Ram com a chave defenida e sem 4GT.
Até 448Mb com 4GT.

Com SO a 64bits
Sempre 1Tb independente da memoria fisica.

Windows Server 2003 e XP até 1Tb dependendo da memoria fisica e configurações.

Limites fisicos de memoria para o Windows 2008

SO a 32bits
Windows Server 2008 Datacenter (full installation) 64Gb
Windows Server 2008 Datacenter (Server Core installation) 64GB
Windows Server 2008 Enterprise 64Gb
Windows Server 2008 Standard 4Gb
Windows Web Server 2008 4Gb

SO a 64bits
Windows Server 2008 Datacenter (full installation) 2TB
Windows Server 2008 Datacenter (Server Core installation) 2TB
Windows Server 2008 Enterprise 2Tb
Windows Server 2008 Standard 32Gb
Windows Web Server 2008 32Gb
Windows Server 2008 HPC Edition 128Gb
Windows Server 2008 for Itanium-Based Systems 2TB

Limites fisicos de memoria para o Windows Vista
SO a 32bits
Windows Vista Ultimate 4Gb
Windows Vista Enterprise 4Gb
Windows Vista Business 4Gb
Windows Vista Home Premium 4Gb
Windows Vista Home Basic 4Gb
Windows Vista Starter 1Gb

SO a 64bits
Windows Vista Ultimate 128Gb
Windows Vista Enterprise 128Gb
Windows Vista Business 128Gb
Windows Vista Home Premium 16Gb
Windows Vista Home Basic 8Gb

Limites fisicos de memoria para o Windows 2003
SO a 32bits
Windows Server 2003 with Service Pack 2 (SP2), Datacenter Edition 128Gb ou 64Gb c/ GT
Windows Server 2003 with Service Pack 2 (SP2), Enterprise Edition 64Gb
Windows Storage Server 2003, Enterprise Edition 8Gb
Windows Storage Server 2003 4Gb

Windows Server 2003 R2 Datacenter Edition 128Gb ou 16Gb c/GT

Windows Server 2003 with Service Pack 1 (SP1), Datacenter Edition 128Gb ou 16Gb c/GT

Windows Server 2003 R2 Enterprise Edition 64Gb ou 16Gb c/GT

Windows Server 2003 with Service Pack 1 (SP1), Enterprise Edition 64Gb ou 16Gb c/GT

Windows Server 2003 R2 Standard Edition 4Gb

Windows Server 2003, Standard Edition SP1 4Gb

Windows Server 2003, Standard Edition SP2 4Gb

Windows Server 2003, Datacenter Edition 128Gb ou 16Gb c/GT

Windows Server 2003, Enterprise Edition 32Gb ou 16Gb c/GT

Windows Server 2003, Standard Edition 4Gb

Windows Server 2003, Web Edition 2Gb

Windows Small Business Server 2003 4Gb

SO a 64bits
Windows Server 2003 with Service Pack 2 (SP2), Datacenter Edition 2Tb
Windows Server 2003 with Service Pack 2 (SP2), Enterprise Edition 2Tb
Windows Server 2003 R2 Datacenter Edition 1Tb

Windows Server 2003 with Service Pack 1 (SP1), Datacenter Edition 1Tb

Windows Server 2003 R2 Enterprise Edition 1Tb

Windows Server 2003 with Service Pack 1 (SP1), Enterprise Edition 1Tb

Windows Server 2003 R2 Standard Edition 32Gb

Windows Server 2003, Standard Edition SP1 32Gb

Windows Server 2003, Standard Edition SP2 32Gb

Windows Server 2003, Datacenter Edition 512Gb

Windows Server 2003, Enterprise Edition 64Gb

Windows Server 2003, Standard Edition 16Gb

Windows Compute Cluster Server 2003 32Gb

Limites fisicos de memoria para o Windows XP
32bits – 4Gb
64bits – 128Gb

corflags.exe

Bem ás vezes quando não existe programador por perto para recompilar o código temos mesmo que usar esta ferramenta e esperar que corra tudo pelo melhor.

O que é o coreflags.exe?

Quando compilamos uma ferramenta em .net2.0 e temos a opção any cpu activa, faz com que a aplicação tanto vai possa ser executada correr em modo de 32bits como em modo 64bits.

Ás vezes ela não funciona lá muito bem no modo de 64bits.  Porque não há os drivers necessários a 64bits e apenas existem a 32 ou por outra razão qualquer.

Neste caso a única solução é recompilar ou usar a ferramenta.

Ela vem com o SDK da .net framework e pode estar dependendo dos casos em vários directórios 🙂
Deixo aqui uma pista.

  • C:Program FilesMicrosoft SDKsWindowsv6.0Binx64CorFlags.exe
  • C:Program Files (x86)Microsoft Visual Studio 8SDKv2.0BinCorFlags.exe

Para forçarmos uma aplicação a correr em modo de 32bits numa máquina a 64bits podemos usar este comando. Depois podem ver as várias opções do exe.

CoreFlags.exe TheApp.exe /32BIT+
CorFlags.exe assembly [options]

Parameters

Argument Description
assembly The name of the assembly for which to configure the CorFlags.
Option Description
/32BIT+ Sets the 32BIT flag.
/32BIT- Clears the 32BIT flag.
/? Displays command syntax and options for the tool.
/Force Forces an update even if the assembly is strong-named.

NoteImportant
If you update a strong-named assembly, you must sign it again before executing its code.
/help Displays command syntax and options for the tool.
/ILONLY+ Sets the ILONLY flag.
/ILONLY- Clears the ILONLY flag.
/nologo Suppresses the Microsoft startup banner display.
/RevertCLRHeader Reverts the CLR header version to 2.0.
/UpgradeCLRHeader Upgrades the CLR header version to 2.5.

NoteNote
Assemblies must have a CLR header version of 2.5 or greater to run natively.

Windows 2003 x32 com 8Gb de Ram!!!

Isto pode parecer estranho mas numa das ultimas aulas ao falar com um formando ( e graças a este) lembrei-me de uma coisa que não é muito documentada e que seria interessante colocar aqui.

Como colocar o windows 2003 x32 a funcionar com mais de 4Gb de RAM.

É claro que isto não é suportado pela microsoft e pode haver possibilidades de existirem erros não documentados devido á forma como o SO vai usar a memoria.

Existe uma forma de colocar o windows a utilizar mais do que os 4gb possíveis nos sistemas de 32 bits.

A microsoft tem o PAE ( Physical Address Extension ) e o AWE ( Address Windowing Extensions )

o PAE é usado pelos IA32 para endereçar mais de 4Gb de memória

Para activar o PAE é necessário adicionar o /PAE no boot.ini file.

Se um servidor usar memorias tipo “hot-add” então o PAE é automaticamente activado.

Tipicamente o PAE usa-se quando temos uma taxa de ocupação de memoria grande.
Um processo típico pode ocupar no máximo cerca de 2Gb de RAM num sistema a 32bits, isto provoca que quando existem muitos processos a usarem muita ram se tenha que paginar muita informação na paging file.
Isto aliado ao facto do windows dividir a memoria em 2 partes uma para o kernel e outra para o user. Piora em muito a performance dos nossos servidores. Porque no máximo apenas podemos ter 4Gb de Ram ocupados.
E os processos que podem usar mais de 4Gb de RAM?

Ao colocarmos o /3Gb switch estamos a permitir que um processo possa usar mais de 2 Gb de Ram do Sistema operativo, mas contudo este programa concorre com outros e a probabilidade de ter parte dessa alocação de memória fetia na memória virtual é elevada, o que o pode tornar muito lento.
Aqui entra o PAE. Quando temos esta entrada activa e em conjunto com o AWE podemos usar mais do que os 4Gb de ram se a nossa máquina os tiver disponíveis.

O AWE é usado de outra forma, é utilizado ao nivel das API’s (Applicarion programming Interfaces). Ou seja é um conjunto de API’s ao gestor de memória que permite que os programas enderecem mais do que os 4gb disponíveis através dos normais 32bits de endereçamento.
AWE permite os programas reservarem memória como memória não paginada e depois dinamicamente mapear porções da memoria não paginada para o conjunto de memória utilizada pelo programa.
Este processo permite a programas que usen intensivamente a memoria para colocar dados ( como base de dados) que possam reservar memoria em vez de terem de usar a memória virtual.
Isto melhora a performance.
O excesso da memória acima dos 4gb é reportado ao gestor de memoria e ás funções de AWE pelo PAE.
Sem o PAE o AWE não conseguiria reservar o excesso de memoria a cima dos 4GB.

[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINDOWS=”Windows Server 2003, Enterprise” /fastdetect /PAE

Sumarizando o PAE é uma função que permite ao windows 2000 e windows 2003 dar mais memoria para o gestor de memoria utilizar.
Transpondo assim o limite dos 4gb.
Os programas não percebem que a memoria que estão a usar está acima dos 4gb da mesma forma que eles não entendem quando estão a usar a Swapfile.

O AWE é uma API que permite os programas reservar memoria. A memoria é não paginada e é apenas acessível a esse programa.

No fim se tiverem possibilidade de utilizar um SO a 64 bits tem mais sorte e menos trabalho 🙂

NSLOOKUP uma ferramenta muito poderosa…

O nslookup é uma das ferramentas que mais informação nos pode dar na internet.
De acordo com o tipo de perguntas que fazemos podemos ter respostas muito interessantes.
Podemos como tudo, usa-la para o mal ou para o bem.
Um administrador de sistemas que não proteja no seu servidor de DNS, pode ver exposta informação que não deveria ser do conhecimento público.

Aqui deixo alguns dos parâmetros que podem ser usados com o nslookup.

A sintaxe é simples, basta abrir uma janela de cmd no windows e escrever nslookup. Depois podemos definir qual o tipo de respostas que desejamos ter.
Para isso escrevemos Set type=tipo de resposta
A lista dos vários tipos é a seguinte:
A – Endereço de ip do computador.
Any – Todos os tipos de dados.
CNAME – Nome canónico para um alias.
GID – Identificador de um grupo para um nome de grupo.
HINFO – Indica o tipo de CPU e sistema Operativo
MB – Nome de domínio de Caixa de correio
MG – Específica um elemento de um grupo de e-mail
MINFO – Informações sobre uma caixa de correio ou uma lista de distribuição.
MR – Mail Rename Domain Name
MX – Mail Exchanger ( relay de e-mail ou aquele que processa os emails para um determinado domínio).
NS – Nome de um servidor de DNS para uma determinada zona ou domínio.
PTR – Dá-nos um nome do computador caso a pergunta seja um endereço de ip ou então devolve um novo apontador para nova informação.
SOA – Especifica a Start-of-Authority para uma zona de DNS.
TXT – Informação de texto.
UID – Identificador de utilizador.
UINFO – Informação de Utilizador.
WKS – Um serviço bem conhecido.

Agora testem no vosso servidor pessoal e nos públicos de algum domínio que conheçam. Vejam as diferenças e validem o que está certo ou errado na vossa opinião.

Para mais conhecimento podem sempre consultar o RFC – 1035

Encriptação de Ficheiros no Windows XP

Já muitos tiveram dilemas em como tornar a informação privada relativamente a olhos indiscretos.
Na minha experiência profissional já encontrei pessoas que preferiam comprar um disco novo que e monta-lo pelos seus próprios meios do que accionar os serviços de troca de garantia dos fabricantes devido ao teor de informação que os discos continham.

Aqui vou falar de cifra de ficheiros, uma opção que vem de origem no Windows XP mas que muitas pessoas desconhecem.

Para protegermos os nossos dados de olhares alheios aconselho os seguintes passos:

1- Criar uma conta de utilização nossa que pode ou não ser administradora da máquina

Seleccionar a opção user acounts e depois a opção create user account
Criar passowrd para o utilizador

Fazer log off

2- Ao criar a conta nos menus do Windows XP, pergunta-nos se queremos tornar a nossa informação privada escolhemos a opção sim. (atenção isto não é a cifra de conteúdos, apenas impede que outros utilizadores que não os administradores possam ter acesso á nossa área de trabalho.

3- Criar uma conta para qualquer técnico usar quando necessário com privilégios de power user.

Por norma é suficiente para o trabalho deles, se for necessário também podemos elevar os privilégios a administrador sem problemas.

4- Depois das contas criadas entrar com o nosso user.


5- Seleccionar as pastas que queremos encriptar e com o botão direito do rato fazer propriedades e activar o EFS para esta pasta.
Atenção que devemos garantir que nunca perderemos a password deste utilizador caso contrário será trabalhoso recuperar a informação do EFS.

Pontos anteriores explicados

1 – O objectivo da criação desta conta é não usarmos a conta de administração e dividir e isolar os nossos documentos dos outros utilizadores, eles por defeito ficarão numa pasta associada ao novo utilizador dentro do disco.

2 – Esta opção aparece no momento em que defenimos password para o utilizador de administração significa que o Windows não permitir que um utilizador possa aceder aos conteúdos de outro utilizador (não foi usada esta opção no filme para poder mostrar que os utilizadores mesmo que tenham acesso ás pastas não irão ver o conteúdo dos ficheiros.

3 – Esta conta como é obvio será para entregar ás pessoas que nos vão resolver problemas com a máquina, será uma conta que não terá acesso a nada e se por ventura tentarem alterar privilégios para tentar aceder á informação nós saberemos e ficará indicado no log do computador.

preparar um reset de password

Criar um disco de reposição de password

Se estivermos a correr o Microsoft Windows XP Professional, podemos criar um disco de reposição de password este disco vai ser util se algum dia nos esquecermos da nossa password, podemos usa-lo para aceder ao nosso computador. Se nos esquecemos da password e não tivermos este disco temos a vida muito dificultada.

Para criar um disco de reposição de password.

1. Entrar no computador como administrador.
2. Carregar em Start, e depois carregar no Control Panel.

Start menu with Control Panel selected

3. Debaixo de Pick a category, carregar User Accounts.

Control Panel window with User Accounts selected

4. No menu User Accounts, carregar no nome da conta que se pretende criar o disco de recuperação de password.

User Accounts window with account name selected

5. Debaixo da secção Related Tasks, carregue Prevent a forgotten password.

User Accounts window with Prevent a forgotten password selected in Related Tasks area

6. No ecrã Welcome to the Forgotten Password Wizard, carregar em Next.

Welcome to the Forgotten Password Wizard page with Next selected

7. Insira uma disquete no seu leitor, depois carregar em Next.

 

Create a Password Reset Disk page with Next selected

8. Escreva a sua password e carregue em Next.

Current User Account Password page with password entered and Next selected

9. Depois do Forgotten Password Wizard criar a disquete de reset carregar em Next.

Creating Password Reset Disk page with Next selected

10. Carregar em Finish.

Completing the Forgotten Password Wizard page with Finish selected

 

Remova o “password reset disk” e guarde-o num sitio seguro. Qualquer pessoa que tiver acesso a este disco consegue ter acesso á informação protegida pela conta que o disco representa sem ter necessidade de saber a password.

Se algum dia não nos lembrarmos da password sempre podemos usar este disco para fazer um reset.

Batch Commands

Comandos Batch.

Aqui fica alguma informação extra que pode ser util.

@ - Previne que uma linha seja mostrada no ecrã quando escrito no inicio da linha.
ECHO [offon] - Activa ou desactiva o echo de ecrã.
ECHO "menssagem" - Mostra a "mensagem" no ecrã.
if [not] Errorlevel num cmd - Executa o cmd se o valor de erro for superior ao "num" o not inverte o sentido.
if [not] Exists file cmd - Executa o cmd se o ficheiro existir. Not inverte o sentido.
if [not] txt1 == txt2 - Executa o cmd se o ficheiro txt1 for igual ao txt2 Not inverte o sentido.
goto label - Salta para a label
:label - Identifica a label.
for %%var in (set) do [cmd] %% var - Executa um loop pelo conteúdo de set correndo o cmd por cada intem do set.
shift - Faz um shift aos parâmetros uma casa ficando os parâmetros %2 em %1 e %3 em %2.
call batch args - Chama um ficheiro batch e passa argumentos voltando ao código quando o ficheiro batch acaba de executar.
setlocal - define variáveis locais ao programa que está a correr.
endlocal - Faz com que as variáveis locais sejam conhecidas pelo sistema. Ficam activas no sistema quando o batch encerra a sua execução.
pushd path - Grava a pasta local num stack e altera a path
popd - Muda para a ultima pasta colocada na pilha pelo pushd e remove-a da pilha.
pause - suspende o programa até uma tecla ser pressionada.
title - Define o titulo da janela de comandos.

TCP no Windows Vista & Windows 2008 Server

Bem para que ninguem fique a tentar fazer o que está no artigo Tunning Rede Windows XP, informo que o TCP foi redesenhado para estes sistemas e que este já inclui um conceito de Window-Auto Tunning.
Este conceito tem por base o anucio por parte dos parceiros de comunicação de um tamanho de janela inicial e que vai sendo ajustado “on the fly” dependendo da latencia e da velocidade da ligação. Esta nova implementação é muito mais eficiente por defeito do que as anteriores.

Os factores que são utilizados para o ajuste do tamanho de Janela TCP são:
Velocidade da Linha.
Latencia
“Application Delay” – > tempo que a aplicação demora a ir buscar informação á janela TCP.

Por defeito o windows também não deixa ter valores superiores a 16Mb.

Já agora para estimular o interesse podem ver como está o vosso TCP com o seguinte comando:

netsh int tcp show global

Maximum HTTP Connections…

Para acabar com as vezes em que o IE apenas nos deixa ter alguns downloads em simultâneo e quando queremos abrir mais uma página ou fazer um novo download este fica a morrer até alguma ligação anterior ter sido encerrada.

O IE por defeito está limitado a um determinado numero de ligações em simultâneo se nós alterarmos essas limitações podemos ter um controlo maior sobre o nosso IE impedindo que fiquemos á espera…

Para isso temos de adicionar as seguintes chaves no nosso registo de forma a indicar outros valores que não os de defeito.

HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionInternet Settings”MaxConnectionsPerServer”=dword:00000010″MaxConnectionsPer1_0Server”=dword:00000010
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings”MaxConnectionsPerServer”=dword:00000010″MaxConnectionsPer1_0Server”=dword:00000010

Aqui damos um valor de 10.
Atenção que não convêm aumentar muito alem das 10. Pois também pode aumentar o numero de sites http em que temos problemas. Se tivermos muitos problemas nos que visitamos convêm descer o numero.
Isto tem a ver com a sobrecarga que podemos dar a um servidor ao abrir demasiadas ligações simultâneas, se ele tiver algum tipo de restrição então esta solução não se torna mais rápida…

Tunning de Rede Windows XP

Neste artigo vou descrever como fazer um tweak ao windows XP registry para tentarmos melhorar a performance deste a nivel da rede.

O objectivo é que comprendam um pouco mais do modo como funciona o windows xp em rede e que não comprem ou instalem software adicional para melhorar o desempenho de rede da máquina sem necessidade.
O windows XP contem vários parametros de registo que devidamente configurados podem afectar a performance radicalmente.

Temos o TCP Window por exemplo, que é uma especie de buffer que armazena os pacotes que recebemos da rede antes de as enviar para a aplicção (mdelo OSI) que está á espera delas para processar a informação. Estas ficam aqui armazenadas até uma flag de push ser defenida nos pacotes que chegam ou quando a aplicação decidir ir buscar ao buffer os dados necessários.

Durante o “handshake de TCP/IP” da ligação TCP/IP, ambos os lados informam o parceiro de qual é o seu tamanho de Janela ou “Window Size” Esta informação fica registada no TCP Header (como já vimos anteriormente noutro post) e pode ter um valor de 0 a 65535 e esse é o valor máximo em bytes que o buffer ou Janela pode ter.

Por defeito o windows XP utiliza um sistema de Window Scaling que muda de acordo com a forma como ele está a trabalhar. Isto é se ele está a receber uma ligação ele comporta-se como um servidor e ele utiliza este sistema, quando ele está a iniciar uma ligação ele não utiliza este Window Scaling.

Se um parceiro fica sem espaço durante a troca de pacotes este envia um pacote com uma sinalização de Window=0 O parceiro TCP para de enviar pacotes até um novo pacote seja enviado com a sinalização de Window diferente de 0. Aqui a troca de dados é reiniciada até haver outro pacote de sinalização com o Window=0.

Com o aumento de velocidade de ligações os 65535 bytes tornam-se pequenos, é aqui que o Window Scaling é utilizado, se ambos os lados da comunicação tem a opção de window scaling no TCP Header então o window Scaling é suportado, o Window scale define o factor multiplicativo para usar e determinal o tamanho de janela. Um window Scale de 1 significa que o Window Size vai ser multiplicado por 2

Com esta lógia temos então
0 -> multiplica por 1
1 -> multiplica por 2
2 -> multiplica por 4
3 -> multiplica por 8
4-> multiplica por 16
5-> multiplica por 32
6-> multiplica por 64
7-> multiplica por 128

Exemplo:
Queremos fazer download de um ficheiro de 75Mbytes, se não tivermos estas opções activas o que acontece é que rápidamente ficamos com o buffer cheio, se as tivermos activas o nosso buffer seria escalado por 4 e que nos daria um buffer de 262,140 bytes.

Para activar o Windows Scaling temos de editar o registo:
na chave hkey_Local_MachineSYSTEMCurrentControlSetServicesTCPIP
Key: TcpipParameters
Adicionar uma chave tipo
Value Type: REG_DWORD
Nome da chave:tcp1323opts
Valor: 1

Com esta alteração quanto maior for o ficheiro que temos a transferir maior é o nosso window size ou buffer.

Outas alterações que podem ajudar são:

HKLMSYSTEMCurrentControlSetServicesTcpipParametersSackOpts=”1″
HKLMSYSTEMCurrentControlSetServicesTcpipParametersTcpMaxDupAcks=”2″
HKLMSYSTEMCurrentControlSetServicesTcpipParametersInterfacesMTU=”1500″

No windows vista o tamanho por defeito do Window size é de 131072.