Tag-Archive for » cache «

Sunday, August 04th, 2013 | Author:

Kasaysayan

Karamihan ay nagbago mula noong huling ko ang aking nabanggit personal na server – ito ay lumago sa pamamagitan ng leaps at hangganan (ito ay mayroon na ngayong 7TB MD RAID6) at kamakailan lamang ito ay itinayong muli sa Ubuntu Server.

Arko ay hindi kailanman isang pagkakamali. Arch Linux ay na itinuro sa akin kaya magkano ang tungkol sa Linux (at patuloy na gawin ito sa aking iba pang mga desktop). Ngunit Arch Talagang nangangailangan ng mas maraming oras at atensyon kaysa Gusto kong gastusin sa isang server. May perpektong ko gustong sa magagawang kalimutan ang tungkol sa mga server para sa isang habang hanggang sa isang paalala sa email sabi “Um … mayroong ilang mga update ay dapat kang tumingin sa, buddy.”

Space ay hindi libre – at hindi rin ay espasyo

Ang pagkakataon na mag-migrate sa Ubuntu ay ang katotohanan na ako ay maubusan ng SATA port, ang port na kinakailangan upang ikonekta ang matapang na drive upang ang natitirang bahagi ng ang computer – 7TB na salakayin array ay gumagamit ng maraming port! Kahit na ako ay ibinigay ang layo ng aking napaka lumang 200GB hard disk bilang ito kinuha up ng isa sa mga port. Ako din binigyan ng babala ang tatanggap na ang disk ni Matalino Pagmamanman ng nakasaad dito ay hindi kapani-paniwala. Bilang isang pansamantalang workaround sa kakulangan ng SATA port, Kahit na ako ay lumipat na OS ng server sa isang hanay ng mga apat na sticks USB sa isang MD RAID1. Bangaw. Alam ko. Ako ay hindi masyadong masaya tungkol sa bilis. Ako nagpasya upang pumunta out at bumili ng isang bagong maaasahang hard drive at isang SATA card Pagpapalawak upang pumunta sa mga ito.

Pangunahing Arch ng server ay partisyon gamit ang tungkol sa 7GB ng disk. Ang isang malaking tipak ng iyon ay isang magpalitan file, naka-cache na data at kung hindi man ay halu-halo o hindi kinakailangang mga file. Pangkalahatang ang aktwal na laki ng OS, kabilang ang /bahay folder, lamang tungkol sa 2GB. Ito sinenyasan sa akin upang tumingin sa isang napakabilis na SSD magmaneho, iniisip marahil ng isang mas maliit na ang isa ay maaaring hindi kaya mahal. Ito ay naka-out na ang cheapest non-SSD drive ay maaaring ko mahahanap ang aktwal na gastos mas sa isa sa mga relatibong maliit na SSDs. Yay para sa akin. 🙂

Pagpili? Woah?!

Sa pagpili ng OS, Gusto ko na nagpasya hindi ito magiging Arch. Wala ng lahat ng iba pang mga sikat na distribusyon, Ako ay pinaka-pamilyar sa Ubuntu at CentOS. Fedora noon din ang isang posibilidad – ngunit hindi ako ay sineseryoso pa itinuturing na ito para sa isang server. Ubuntu nanalo ang pag-ikot.

Ang susunod na desisyon ko ay nagkaroon upang gumawa ay hindi mangyayari sa akin hanggang Pagka-nasa-lahat-ng-pook (Installation wizard ng Ubuntu) tinanong ko: Paano i-set up ang partitions.

Ako ay bago sa paggamit ng SSDs sa Linux – Ako na rin malaman ng mga pitfalls ng hindi gumagamit ang mga ito ng tama, karamihan dahil sa kanilang panganib ng mahinang kahabaan ng buhay kung maling maggamit.

Hindi ko nais na gumamit ng isang nakalaang makipagpalitan ng partisyon. Plano ko sa pag-upgrade motherboard / CPU / memory ng server ay hindi masyadong malayo sa hinaharap. Batay sa na ako nagpasya ko bang ilagay ang makipagpalitan sa isang makipagpalitan ng file sa umiiral na isang bigla at hindi inaasahang pagsalakay ng MD. Ang makipagpalitan ay hindi maging partikular na mabilis nito ngunit tanging layunin ay para na bihirang pagkakataon kapag ang isang bagay ay nawala maling at ang memorya ay hindi magagamit.

Ito pagkatapos ay iniwan sa akin upang bigyan ang root path ang buong 60GB out ng isang Intel 330 SSD. Ko itinuturing na naghihiwalay / home ngunit tila lamang ito ng kaunti walang kahulugan, ibinigay gaano kaliit ay ginagamit sa nakalipas. Ako unang-set up ang partisyon na may LVM – isang bagay na kamakailan ko ang ginagawa tuwing ako magse-set up ng isang Linux box (talaga, walang dahilan na hindi gamitin ang LVM). Kapag nakuha ito sa bahagi kung saan Gusto ko i-configure ang mga filesystem, Ko click ang drop-down at nang katutubo napiling ext4. Pagkatapos Napansin ko btrfs sa parehong listahan. Manatili!!

Ngunit kung ano ang isang?

Btrfs (“mantikilya-eff-ess”, “mas mahusay na-eff-ess”, “abeha-tree-eff-ess”, o anumang Fancy mo sa araw) ang isang relatibong bagong filesystem binuo upang dalhin ang Linux’ filesystem kakayahan bumalik sa track na may kasalukuyang filesystem tech. Ang umiiral na King-of-the-Hill filesystem, “EXT” (ang kasalukuyang bersyon na tinatawag na ext4) ay medyo magandang – ngunit ito ay limitado, Natigil sa isang lumang tularan (sa tingin ng isang bagong tatak F22 Raptor vs. isang F4 parang multo may isang half-jested pagtatangka sa isang upgrade pagkapareho) at ay malamang na hindi magagawang upang makipagkumpetensya para sa napakatagal na may mas bagong filesystems Enterprise tulad ng Oracle ni ZFS. Btrfs pa rin ay may isang mahabang paraan upang pumunta at itinuturing pa rin ang pang-eksperimentong (depende sa kung sino ang magtanong at kung ano ng kailangan mo). Maraming isaalang-alang ito upang maging matatag para sa basic na paggamit – ngunit walang saysay na tao ay pagpunta sa gumawa ng anumang mga garantiya. At, oo naman, ang lahat ay sinasabi na upang gumawa at subukan ang mga backup!

Mooooooo

Ang pinaka-pangunahing pagkakaiba sa pagitan ng EXT at btrfs na btrfs ay “Baka” o “Kopyahin sa Isulat” filesystem. Nangangahulugan ito na ang data ay hindi aktwal na sadyang mapapatungan ng internals ang filesystem. Kung sumulat ka ng pagbabago sa isang file, btrfs ay isulat ang iyong mga pagbabago sa isang bagong lokasyon sa pisikal na media at maa-update ang panloob na pointer upang sumangguni sa bagong lokasyon. Btrfs napupunta isang hakbang karagdagang sa na mga panloob na mga payo (tinutukoy bilang metadata) ay rin Baka. Mas lumang bersyon ng EXT ay may lamang-o-overwrite ang data. Ext4 gumamit ng Journal upang matiyak na hindi mangyayari ang katiwalian dapat ang AC plug yanked sa pinaka-hindi napapanahon sandali. Ang mga journal na mga resulta sa isang katulad na bilang ng mga hakbang na kinakailangan upang i-update ang data. Gamit ang isang SSD, ang kalakip na hardware ay nagpapatakbo ng isang kaparehong proseso Cow kahit na ano filesystem gumagamit ka ng. Ito ay dahil SSD drive ay hindi maaaring aktwal na patungan ang mga data – kailangan nila upang kopyahin ang data (gamit ang iyong mga pagbabago) sa isang bagong lokasyon at pagkatapos burahin ang lumang block ganap. Ang isang pag-optimize sa lugar na ito ay na SSD isang hindi maaaring kahit na burahin ang lumang bloke ngunit sa halip lamang gumawa ng isang nota upang burahin ang mga bloke sa ibang pagkakataon kapag ang mga bagay ay hindi kaya busy. Ang katapusan ng resulta ay na SSD drive magkasya napakahusay na may isang filesystem Cow at hindi gumaganap pati na rin sa mga hindi Cow filesystems.

Upang gumawa ng mga bagay na kawili-wili, Cow sa ang filesystem madaling napupunta kamay sa kamay na may isang tampok na tinatawag na Deduplication. Ito ay nagpapahintulot sa dalawang (o higit pa) magkakahawig na mga bloke ng data na naka-imbak ng paggamit lamang ng isang kopya, pagse-save espasyo. Gamit Cow, kung ang isang deduplicated file ay binagong, hiwalay twin hindi maaapektuhan ng mga data sa nabagong file ay na-nakasulat sa isang iba't ibang mga pisikal na block.

Cow ay ginagawang snapshotting medyo madaling ipatupad. Kapag ang isang snapshot ng system ang Itinatala lamang ang bagong snapshot bilang isang duplicate ng lahat ng data at metadata sa loob ng volume. Gamit Cow, kapag may mga pagbabagong ginawa, ay mananatiling buo ang data ng snapshot, at isang pare-parehong view ng katayuan ng filesystem sa oras na snapshot ang ginawa panatilihin.

Ang isang bagong kaibigan

Sa itaas sa isip, lalo na kung Ubuntu btrfs magagamit bilang isang-oras na pagpipilian ng pag-install, Naisip ko ito ay isang mahusay na oras upang sumisid in sa btrfs at galugarin ng kaunti. 🙂

Bahagi 2 paparating …

magbahagi
Sunday, April 26th, 2009 | Author:

Trust me. We’re still dealing with regexesjust in a roundabout (and vaguely practical) way. This is a pretty comprehensive listing of how to go about flushing DNS caches while using regexes to show where similar methods deviate.

Why do we want to clear DNS caches exactly?

There are a number of reasons to clear DNS caches, though I believe these are the most common:

  • An intranet service has an private (internal) IP address when on the company network but it has a public IP address for outside access. When you try to access that service from outside after accessing it from inside, there’s a chance that you would have cached the private (inaccessible) IP. A good long-term solution is to make the service inaccessible except via VPN. A simpler solution is to leave work at work. 😛
  • An internet service or web site changes their DNS settings and your desktop/laptop is looking at theoldsetting. In this case, the new setting has not yet propagated. Hosting Admins come across this case very often.
  • Privacy: If someone can track your DNS history then it wouldn’t be too hard to figure out which web sites you’ve been viewing. Though the individual pages you’ve viewed can’t be tracked in this way, the hostnames, tulad ng “dogma.swiftspirit.co.za” o “google.comwill be in the DNS cache, likely in the order you first accessed each site. There are better ways to do this though. One example is to use a Tor network for all DNS requests.

Flushing WindowsDNS cache, from command prompt:

Evidence suggests that prior to Windows 2000, Windows OS’s didn’t cache DNS results. Ang ipconfig command, run from the command prompt, was given some control over the DNS cache and has remained roughly the same since.

To get to the prompt if using Vista as non-Admin: Start -> Programs -> Accessories -> Right-clickCommand Prompt” -> Run As Administrator

Otherwise: Start -> Run -> [cmd ] -> [ OK ]

ipconfig /flushdns

Flush the DNS Resolver Cache in Windows

It is also possible to clear the cache in Windows by restarting theDNS Client” o “Dnscache” serbisyo.

Flushing Mac OS X DNS cache, from shell prompt:

Since Mac OS X, Apple Macs have been running a Unix-based, POSIX-compliant, operating system based on Nextstep, itself originally containing code from FreeBSD at NetBSD. Mac OS X uses lookupd o dscacheutil to manage the DNS cache, depending on the version.

To get to the prompt: Applications -> Utilities -> Terminal

(lookupd|dscacheutil) -flushcache

What have we here? As per bahagi 1, the vertical bar indicates that eitherlookupdORdscacheutilare acceptable. Ang parenthesis indicate that the vertical bar only applies to thelookupd|dscacheutilportion of the expression. Thus, the ” -flushcacheis not optional and must be included in the command in order for it to work. Note that these commands produce no output unless there is an error.

Use dscacheutil if you’re using Mac OS X 10.5 (Leopard) or later.

Mac OS X:

lookupd -flushcache

Mac OS X Leopard:

dscacheutil -flushcache

Use dscacheutil to flush the cache in Mac OS X Leopard

There is also a GUI tool, DNS Flusher, which automatically uses the correct command available.

Flushing Linux/UnixDNS cache, from shell prompt:

N.B. If you don’t already have either bind (with caching lookup enabled), nscd, or dnsmasq installed and running on your *nix-based desktop/server, you are probably not caching DNS at all and there is nothing to flush. In that case you will be utilising your DNS server for every web request, probably slowing your web experience.* If so, I recommend at least installing nscd as it is the easiest to set up. **

Flushing nscd’s cache

As with the Mac OS command, this produces absolutely no output unless there is an error:

(|sudo )(|/usr/sbin/)nscd -i hosts
  • Use sudo if you’re not already root otherwise the first selection is blank.
  • Specify /usr/sbin/ if nscd is not already within thepath”. If your distribution has nscd in a strange place, locate it first:
locate -r bin/nscd$

Notice that the abovebin/nscd$is itself a regular expression. 🙂

Using nscd, invalidate thehostscache, logged in as a user:
sudo nscd -i hosts
Using nscd, invalidate thehostscache, logged in as root:
nscd -i hosts
Using nscd, invalidate thehostscache, logged in as root, specifying the full path:
/usr/sbin/nscd -i hosts

Flushing bind’s cache

To flush bind’s cache, we issue a command via rndc. Use sudo if you are not already root:

(|sudo )rndc flush

Restarting the cacheing services also works!

Here’s how to restart either of the caching daemons:

(|sudo )(serbisyo |/etc/(rc\.d|rc\.d/init\.d|init\.d)/)(bind|dnsmasq|nscd) restart

That’s starting to get difficult to read. *** Luckily I’ve explained in detail:

  • As with the previous command, use sudo if you’re not already root.
  • The second selection has the first option “serbisyo “. This applies mainly to Red Hat/CentOS and Fedora systems.
  • Ang “/etc/(rc\.d|rc\.d/init\.d|init\.d)/” needs to be expanded further. This is for most other systems. Generally, the rc.d is for if you’re using a BSD-style init system (for example: Arch Linux, FreeBSD, or OpenBSD). The best way to know for sure which command to use is to ‘locatethe correct nscd or dnsmasq path. Most Unix flavours, even Solaris, use nscd:
locate -r \.d/nscd$ ; locate -r \.d/dnsmasq$ ; locate -r \.d/rndc$
  • The last choice is betweenbind”, “nscd”, at “dnsmasq”. This depends entirely on which is installed and in use.
  • The last of the pattern, ” restart”, is the instruction given to the daemon’s control script.

Arko, using dnsmasq, restarting the cache daemon, logged in as root:

/etc/rc.d/dnsmasq restart

Arko, using nscd, restarting the cache daemon, logged in as user:

sudo /etc/rc.d/nscd restart

CentOS / Red Hat, using nscd, restarting the daemon, as root:

service nscd restart

nscdrestart

Flush Mozilla Firefox’s internal DNS cache:

Mozilla Firefox keeps its own DNS cache for performance. Firefox 2 would cache only 20 entries for up to 60 seconds. The default setting as of Firefox 3 appears to be 512 entries for up to 60 minutes which seems much more reasonable for every-day browsing. If your desktop has a built-in cache (which most now do) then the cache here is actually redundant. I’m not aware of any other browsers that implement DNS caching.

I’ve found a few solutions for when you need to clear the cache. It seems there are many ways to do this however these are the easiest, which I’ve put into order of preference.:

  1. Install the Firefox DNS Flusher Addonprovides a button to flush the cache.
  2. Install the DNS Cache Addonprovides a toggle which disables or enables the DNS cache.
  3. Clear Cache (clears browser cache as well as DNS Cache): Select Tools -> Clear Private Data; Deselect all checkboxes except for Cache; Click [ Clear Private Data Now ].
  4. Manually do what DNS Cache does: set the following 2 about:config optionsnetwork.dnsCacheExpiration” at “network.dnsCacheEntries” sa 0 and then back to the default.

I had a bad cached record and I cleared my browser’s cache. But its still giving me the wrong info. What gives?

Because of how DNS propagation works, you preferably need to flush the DNS on all DNS hosts between yourself and theauthoritivehost, starting with the host closest to the authoritive host (furthest away from your browser).

As an example, if you have a router that is caching DNS, reset the router’s cache before restarting the DNS cache of your operating system, and only then should you clear the cache in Firefox. The reason is that even if you only clear your OS and Firefox’s caches, your desktop is still going to ask the router for its bad record anyway.

What if my DNS server is a server on the net outside my control?

You could try temporarily using a different nameserver, possibly even a publicly open server. OpenDNS shows some good information on how to do this. If you’d like, you should also be able to get relevant information from your own ISP regarding their resolving DNS servers. A local example (South Africa) is SAIX which lists their resolving DNS servers.

* Likely the reason why Firefox has a DNS cache built-in ****
** “((pacman|yogurt) -S|emerge|(yum|aptitude|apt-get) install) nscdand then ensure that the service is added to the startup scripts. Refer to your distribution’s installation documentation.
*** I’m looking for a syntax highlighting plugin that can work with regex
**** I’ve read statements that restarting the network(ing|) service also clears the DNS cache however I haven’t seen any evidence that this is true. If anyone has a example where this is true, please provide me with the details.
magbahagi