Tuesday 17 October 2017

Moving Gjennomsnittet Grafitt


Gasser, væsker og løsemidler Anvendelse av partikkelmodellen for de tre tilstandene av materiepartikkelmodeller, som beskriver, forklarer egenskapene til gasser, væsker og faste stoffer Doc Browns Chemistry KS4 vitenskap GCSEIGCSE Revisjonsnotater Sammenligning av egenskapene til gass, væsker og solide stater Del 1 Den kinetiske partikkelmodellen og beskriver og forklarer egenskapene til gasser, væsker og faste stoffer, tilstandsendringer og løsninger (avsnitt 1a til 3d) Du bør vite at de tre tilstandene er materielle, flytende og gass. Smelting og frysing finner sted ved smeltepunktet, koking og kondensering finner sted ved kokepunktet. De tre tilstandene av materie kan representeres av en enkel modell hvor partiklene er representert av små faste sfærer. Partikkeltorien kan bidra til å forklare smelting, koke, frysing og kondensering. Mengden energi som trengs for å endre tilstanden fra fast til flytende og fra væske til gass, avhenger av styrken av styrkene mellom stoffets partikler og arten av partiklene som er involvert, avhenger av typen av binding og stoffets struktur. Jo sterkere kreftene mellom partiklene er, desto høyere smeltepunkt og kokepunkt for stoffet. For detaljer, se struktur og bindingsnotater. Den fysiske tilstanden et materiale vedtar avhenger av dens struktur, temperatur og trykk. Statlige symboler brukt i ligninger: (g) gass (1) væske (aq) vandig løsning (er) fast vandig løsning betyr noe oppløst i vann De fleste diagrammer av partikler på denne siden er 2D-representasjoner av deres struktur og tilstand. Eksempler på de tre fysiske STATER AV MATREGASER, f. eks luftblandingen rundt oss (inkludert oksygen som trengs for forbrenning) og høytrykksdampen i dampkondensens kjele og sylindere. Alle gassene i luften er usynlige, fargeløse og gjennomsiktige. Vær oppmerksom på at dampen du ser utenfor en kjele eller damplokomotiv, faktisk er fine, flytende dråper med vann, dannet fra den utdrevne dampgassen kondenserer når den møter kald luft, statens forandring av gass til væske (samme effekt i tåke og tåkeformasjon) . Væsker, f. eks. vann er det vanligste eksempelet, men det er også melk, varmt smør, bensin, olje, kvikksølv eller alkohol i et termometer. SOLIDER, f. eks. stein, alle metaller ved romtemperatur (unntatt kvikksølv), gummistøvler og de fleste fysiske gjenstander rundt deg. Faktisk er de fleste gjenstander ubrukelige med mindre de har en solid struktur. På denne siden er de grunnleggende fysiske egenskapene til gasser, væsker og faste stoffer beskrevet i form av struktur, partikkelbevegelse (kinetisk partikkeltema), effekter av temperatur og trykkendringer og partikkelmodeller pleide å forklare disse egenskapene og egenskapene. Forhåpentligvis vil teori og faktum matche opp for å gi studentene en klar forståelse av den materielle verden rundt dem når det gjelder gasser, væsker og faste stoffer som kalles de tre fysiske tilstandene av materie. Statens endringer som kalles smelting, smelting, koking, fordampning, kondensering, flytende, frysing, størkning, krystallisering beskrives og forklares med partikkelmodellbilder for å hjelpe forståelsen. Det er også omtale av blandbare og ublandbare væsker og forklarer betingelsene flyktig og volatilitet når den påføres en væske. Disse revisjonsnotatene om saksforholdene skulle vise seg å være nyttige for de nye AQA, Edexcel og OCR GCSE (91) kjemifagkurs. Delindex for del I-seksjoner (denne siden): 1.1. De tre tilstandene, gasliquidsolid partikkeltheismodeller De tre tilstandene av materie er faste, flytende og gass. Enten smelter og fryser kan finne sted ved smeltepunktet, mens koking og kondensering finner sted ved kokepunktet. Fordampning kan finne sted ved enhver temperatur fra en flytende overflate. Du kan representere de tre tilstandene med materie med en enkel partikkelmodell. I denne modelldiagrammer er partiklene representert av små faste sfærer (elektronstrukturen ignoreres). Kinetisk partikkelteori kan bidra til å forklare tilstandstilstendigheter som smelting, koke, frysing og kondensering. Mengden energi som trengs for å endre tilstanden fra fast til flytende eller fra væske til gass, avhenger av styrken av kreftene mellom partiklene av stoffet. Disse kreftene kan være relativt svake intermolekylære krefter (intermolekylær binding) eller sterke kjemiske bindinger (ionisk, kovalent eller metallisk). Arten av de involverte partiklene avhenger av typen kjemisk binding og stoffets struktur. Jo sterkere de attraktive kreftene mellom partiklene, jo høyere smeltepunktet og kokepunktet for stoffet. HVAD ER DE TRE STATERNE AV MATERIALET De fleste materialer kan bare beskrives som en gass, en væske eller et fast stoff. HVORFOR ER DE SOM DET ER Bare å vite, er det ikke nok, trenger vi en omfattende teori om gasser som kan forklare deres oppførsel og gjøre spådommer om hva som skjer, f. eks. hvis vi endrer temperatur eller trykk. Hvordan kan vi forklare hvordan de har vi trenger en teoretisk modell, f. eks. partikkelteori som støttes av eksperimentelle bevis. KAN PARTIKEL MODELLER HJELP OSS FORSTÅR ​​DERES EGENSKAPER OG KARAKTERISTIKKER HVOR ER DET VIKTIG Å VITE EGENSKAPER AV Gasser, Væsker og faste stoffer Det er viktig i kjemisk industri å vite om oppførsel av gasser, væsker og faste stoffer i kjemiske prosesser, f. eks. hva skjer med de forskjellige tilstandene med endringer i temperatur og trykk. Hva er KINETISK PARTIKEL TEORIEN av gasser, væsker og faste stoffer Den kinetiske partikkeltorien om tilstandene av materie er basert på ideen om alt materiale som eksisterer som svært små partikler som kan være individuelle atomer eller molekyler og deres interaksjon med hverandre heller ved kollisjon i gasser eller væsker eller ved vibrasjon og kjemisk binding i faststoffer. KAN VI GJØRE PREDIKSJONER BASERT PÅ DERES KARAKTERISTISKE EGENSKAPER Denne siden introduserer generelle fysiske beskrivelser av stoffer i det enkleste fysiske (ikke-kjemiske) klassifikasjonsnivået, dvs. det er en gass, væske eller et fast stoff. MEN denne nettsiden introduserer også partikkelmodeller der en liten sirkel representerer et atom eller et molekyl, dvs. en bestemt partikkel eller enkleste enhet av et stoff. Denne delen er ganske abstrakt på en måte fordi du snakker om partikler du ikke kan se som individuelt, du bare bulkmaterialet og dets fysiske karakter og egenskaper. Er det BEGRENSNINGER TIL partikkelmodellen Partiklene blir behandlet som enkle uelastiske sfærer og oppfører seg bare som små snookerballer som flyr rundt, ikke helt sant, men de flyr rundt tilfeldig uten å stoppe Selv om partiklene antas å være harde kuler og uelastiske , i virkeligheten er de alle slags former og vri og bøyer seg på kollisjon med andre partikler, og når de reagerer, deles de i fragmenter når obligasjoner bryter. Den enkle modellen antar ingen krefter mellom partiklene, usann, modellen tar lite hensyn til kreftene mellom partiklene, selv i gasser får du svært svake intermolekylære krefter. Partikkelmodellen tar ingen hensyn til den faktiske størrelsen av partiklene, f. eks. ionsmolekyler kan være vidt forskjellige i størrelse, f. eks. sammenligne et etenmolekyl med et poly (eten) - molekyle Mellompartene av partiklene HVA ER DEN GASLEVENDE MATSTATEN HVAD ER GASENS EGENSKAPER HVORDAN GASLEGTE DELARTER BEGRENSER Hvordan forteller den kinetiske partikkelt Theory of Gases Gassens egenskaper En gass har ingen fast form eller volum, men sprer seg alltid ut for å fylle noen beholder - gassmolekylene vil diffundere til all ledig plass. Det er nesten ingen tiltrengningskrefter mellom partiklene, slik at de er helt fri for hverandre. Partiklene er vidt spredt og spredt ved raskt å bevege seg tilfeldig gjennom beholderen, så det er ingen ordre i systemet. Partiklene beveger seg lineært og raskt i alle retninger. og kolliderer ofte med hverandre og siden av beholderen. Kollisjonen av gasspartikler med overflaten av en beholder forårsaker gasstrykk. ved å hoppe av en overflate utøver de en kraft i det. Med økning i temperatur. partiklene beveger seg raskere etter hvert som de får kinetisk energi. Kollisjonen mellom partiklene selv og beholderflaten øker, og dette øker gasstrykket, f. eks. i et damplokomotiv eller volumet av beholderen hvis det kan ekspandere, for eksempel som en ballong. Gasser har en meget lav tetthet (lys) fordi partiklene er så fordelt i beholderen (massefylde for tetthet). Tetthet rekkefølge: fast gt flytende gtgtgt gasser Gasser flyter fritt fordi det ikke er noen effektive tiltrekningskrefter mellom de gassformige partikkelmolekylene. Enkel strømningsordre. gasser gt liquids gtgtgt solids (ingen ekte flyt i fast med mindre du pulver det) På grunn av dette er gasser og væsker beskrevet som væsker. Gasser har ingen overflate. og ingen fast form eller volum. og på grunn av mangel på partikkelsattraksjon, sprer de seg alltid og fyller beholdere (så volum på beholdervolum). Gasser komprimeres lett på grunn av det tomme rommet mellom partiklene. Enkel komprimeringsordre. gasser gtgtgt væsker gt faste stoffer (nesten umulig å komprimere et faststoff) Gasstrykk Når en gass er innestengt i en beholder, vil partiklene forårsake og utøve et gasstrykk som måles i atmosfærer (atm) eller Pascals (1,0 Pa 1,0 Nm 2), trykket er forcearea dvs. effekten av alle kollisjonene på beholderens overflate. Gasstrykket skyldes kraften skapt av millioner av påvirkninger av de små, individuelle gasspartiklene på sidene av en beholder. For eksempel dersom antall gassformige partikler i en beholder dobles, blir gasstrykket doblet fordi fordobling av antall molekyler dobler antall påvirkninger på beholderens side, slik at den totale slagkraften per arealområde også blir doblet. Denne fordoblingen av partikkelpåvirkningen dobler trykket er vist i de to diagrammene nedenfor. Hvis volumet av en forseglet beholder holdes konstant og gassen innsiden er oppvarmet til en høyere temperatur, øker gastrykket. Årsaken til dette er at når partiklene oppvarmes får de kinetisk energi og beveger seg i gjennomsnitt raskere. Derfor vil de kollidere med sidene av beholderen med større kraftpåvirkning. slik at trykket økes. Det er også større kollisjon med sidene av beholderen, MEN dette er en mindre faktor sammenlignet med effekten av økt kinetisk energi og økningen i gjennomsnittskraften. Derfor en fast mengde gass i en lukket beholder med konstant volum, jo ​​høyere temperatur jo større trykk og jo lavere temperatur er, desto mindre er trykket. For beregning av gasstrykkstemperaturen se Del 2 CharlessGayLussacs Law Hvis beholdervolumet kan endres, ekspanderer gassen lett etter oppvarming på grunn av mangel på partikkelattraksjon, og kan lett avtrekkes ved avkjøling. Ved oppvarming får gasspartikler kinetisk energi. Flytt raskere og treffer sidene av beholderen oftere. og betydelig, de treffer med større kraft. Avhengig av beholdersituasjonen vil enten eller begge trykk eller volum øke (omvendt ved kjøling). Merk: Det er gassvolumet som utvider IKKE molekylene, de forblir i samme størrelse. Hvis det ikke er noen volumrestriksjon, er ekspansjonen på oppvarming mye større for gasser enn væsker eller faste stoffer fordi det ikke er noen signifikant tiltrekning mellom gassformige partikler. Den økte gjennomsnittlige kinetiske energien vil gjøre gasstrykket stiger og så vil gassen forsøke å ekspandere i volum dersom det tillates å f. eks. ballonger i et varmt rom er betydelig større enn den samme ballongen i et kaldrom For beregning av gassvolumetemperaturer se Del 2 CharlessGayLussacs Law DIFFUSION i gasser: Den naturlige raske og tilfeldige bevegelsen av partiklene i alle retninger betyr at gasser lett sprer seg eller diffunderer. Nettbevegelsen til en bestemt gass vil være i retning fra lavere konsentrasjon til en høyere konsentrasjon, nedover den såkalte diffusjonsgradienten. Di ffusion fortsetter til konsentrasjonene er jevne i hele gassbeholderen, men ALLE partiklene fortsetter å bevege seg med sin allment eksisterende kinetisk energi. Diffusjon er raskere i gasser enn væsker der det er mer plass for dem å bevege seg (eksperiment illustrert nedenfor) og diffusjon er ubetydelig i faststoffer på grunn av den tette pakningen av partiklene. Diffusjon er ansvarlig for spredning av lukt selv uten luftforstyrrelser, f. eks. bruk av parfyme, åpne en krukke med kaffe eller lukten av bensin rundt en garasje. Graden av diffusjon øker med økning i temperaturen som partiklene får kinetisk energi og beveger seg raskere. Annet bevis for tilfeldig partikkelbevegelse inkludert diffusjon. Når røykpartiklene blir sett under et mikroskop, ser de ut til å danse seg når de lyser med en lysstråle ved 90 o i visningsretningen. Dette skyldes at røykpartiklene oppdages av reflektert lys og dans på grunn av de millioner av tilfeldige treff fra de raskt bevegelige luftmolekylene. Dette kalles brunisk bevegelse (se nedenfor i væsker). På et hvilket som helst tidspunkt vil treffene ikke være like, slik at røykpartikkelen får en større bashing i en tilfeldig retning. Et togassmolekylediffusjonseksperiment er illustrert ovenfor og forklart nedenfor Et langt glassrør (24 cm diameter) er fylt i den ene enden med en plugg av bomullsull gjennomvåt i konsentrasjon. saltsyre forseglet med en gummibund (for helse og sikkerhet) og røret holdes helt stille, klemmet i horisontal stilling. En lignende plug of conc. ammoniakkoppløsning er plassert i den andre enden. De fuktede bomullspluggene vil avgi røyk av henholdsvis HCl og NH3, og hvis røret blir uforstyrret og horisontalt, til tross for mangel på rørbevegelse, f. eks. NO shaking å blande og fravær av konveksjon, en hvit sky danner ca 1 3 r langs fra konsentrasjonen. saltsyre rør ende. Forklaring: Hva skjer er fargeløse gasser, ammoniakk og hydrogenklorid, diffus ned i røret og reagerer for å danne fine hvite krystaller av salt ammoniumklorid. ammoniakk hydrogenklorid ammoniumklorid NH3 (g) HC1 (g) gt NH 4 Cl (s) Merk regelen: Jo mindre molekylærmasse, desto større er molekylernes gjennomsnittlige hastighet (men alle gasser har samme gjennomsnittlige kinetiske energi ved samme temperatur). Derfor er jo mindre molekylmassen, desto raskere diffunderer gassen. f. eks Mr (NH3) 14 1x3 17. beveger seg raskere enn M r (HCl) 1 35.5 36.5 OG det er derfor de møter nærmere HCl-enden av røret. Så eksperimentet er ikke bare bevis for molekylbevegelse. Det er også bevis på at molekyler med forskjellige molekylmasser beveger seg i forskjellige hastigheter. For en matematisk behandling, se Grahams diffusjonslove. En farget gass, tyngre enn luften (større tetthet), settes inn i bunnen av gassburken, og en andre gassburk med fargeløs luft med lavere tetthet plasseres over den, skilt med et glassdeksel. Diffusjonsforsøk bør vedlegges ved konstant temperatur for å minimere forstyrrelser ved konveksjon. Hvis glassdekselet er fjernet, diffuserer (f) de fargeløse luftgassene ned i den fargede brune gassen og (ii) brom diffunderer opp i luften. Den tilfeldige partikkelbevegelsen som fører til blanding, kan ikke skyldes konveksjon fordi den tettere gasen starter i bunnen. Ingen rysting eller andre former for blanding er nødvendig. Den tilfeldige bevegelsen av begge partiklene er nok til å sikre at begge gassene til slutt blir helt blandet ved diffusjon (spredt til hverandre). Dette er klart bevis for diffusjon på grunn av den tilfeldige kontinuerlige bevegelse av alle gasspartiklene og i utgangspunktet nettbevegelsen av en type partikkel fra en høyere til en lavere konsentrasjon (nedover en diffusjonsgradient). Når det er fullstendig blandet, observeres ingen ytterligere fargeendringsfordeling, men tilfeldig partikkelbevegelse fortsetter. Se også andre bevis i væskeseksjonen etter partikkelmodellen for diffusjonsdiagrammet nedenfor. En partikkelmodell av diffusjon i gasser. Tenk diffusjonsgradienten fra venstre til høyre for de grønne partiklene lagt til de blå partiklene til venstre. For de grønne partiklene er nettomigrasjonen fra venstre til høyre og fortsetter i en lukket beholder til alle partiklene er jevnt fordelt i gassbeholderen (som vist på bildet). Diffusjon er raskere i gasser i forhold til væskesoljeringer fordi det er mer plass mellom partiklene for andre partikler å bevege seg inn i tilfeldig. Når et fast stoff oppvarmes, vibrerer partiklene sterkere ettersom de får kinetisk energi, og partikkelen tiltrekker seg kraftig. Til slutt, ved smeltepunktet. De attraktive kreftene er for svake for å holde partiklene i strukturen sammen på en bestilt måte, og så smelter det faste stoffet. Merk at de intermolekylære kreftene fremdeles er der for å holde bulkvæsken sammen, men effekten er ikke sterk nok til å danne et bestilt krystallgitter av et fast stoff. Partiklene blir frie til å bevege seg rundt og miste deres bestilte arrangement. Energi er nødvendig for å overvinne de attraktive kreftene og gi partiklene økt kinetisk energi av vibrasjon. Så er det tatt varme fra omgivelsene og smelting er en endoterm prosess (916H ve). Energiendringer for disse fysiske endringer i tilstanden for en rekke stoffer behandles i en del av energilevnene. Forklares ved bruk av den kinetiske partikkeltorien om væsker og faste stoffer Ved avkjøling, mister væskepartikler kinetisk energi og kan dermed bli sterkere tiltrukket av hverandre. Når temperaturen er lav nok, er partikkelsens kinetiske energi utilstrekkelig for å forhindre at partikkelen tiltrekker seg krefter som danner et fast stoff. Til slutt ved frysepunktet er tiltrengningskraftene tilstrekkelig til å fjerne eventuell gjenværende bevegelsesfrihet (når det gjelder ett sted til et annet) og partiklene kommer sammen for å danne det bestilte faste arrangementet (selv om partiklene fortsatt har vibrasjons kinetisk energi. må fjernes til omgivelsene, så rart som det kan virke, er frysing en eksoterm prosess (916H ve). Sammenligning av energiforandringer av tilstandsendringer, gass, flytende, solidt 2f (i) Kjølekurve. Hva skjer med temperaturen til et stoff hvis den avkjøles fra gassformen til fast tilstanden Merk temperaturen forblir konstant under tilstandsendringene ved kondensering ved temperatur Tc og frigjøring ved temperatur Tf. Dette skyldes at all varmeenergien fjernet ved avkjøling ved disse temperaturene (latente varmer eller enthalpier av tilstandsendring), muliggjør styrking av interpartikkelkreftene (intermolekylær binding) uten temperaturfall. Varmetapet kompenserer d ved den eksoterme økte intermolekylære krafttiltrengningen. Mellom de horisontale tilstandsendringsseksjonene i grafen kan du se at energifjerningen reduserer partikkelsens kinetiske energi, senker temperaturen på stoffet. Se avsnitt 2. For detaljert beskrivelse av statens endringer. En kjølingskurve oppsummerer endringene: For hver tilstandsendring må energi fjernes. kjent som latent varme. Faktiske energiværdier for disse fysiske endringer av tilstanden for en rekke stoffer blir behandlet mer detaljert i energilevnene. 2f (ii) Oppvarmingskurve. Hva skjer med temperaturen til et stoff hvis det er oppvarmet fra fast tilstand til gassformig tilstand. Merk temperaturen forblir konstant under tilstandsendringer i smelting ved temperatur Tm og kokende ved temperatur Tb. Dette skyldes at all energi som absorberes ved oppvarming ved disse temperaturene (de latente varme eller enthalpier av tilstandsendring), svekkes interpartikkelkreftene (intermolekylær binding) uten temperaturstigning. Varmegjenoppløsningen er den endotermicheatabsorberte energien som kreves for å redusere de intermolekylære krefter . Mellom de horisontale tilstandsendringsseksjonene i grafen kan du se at energiinngangen øker partikelets kinetiske energi og øker temperaturen på stoffet. Se avsnitt 2. For detaljert beskrivelse av statens endringer. En varmekurve oppsummerer endringene: For hver tilstandsendring må energi legges til. kjent som latent varme. Faktiske energiværdier for disse fysiske endringer av tilstanden for en rekke stoffer blir behandlet mer detaljert i energilevnene. SPESIFIKKE LATTE VARMER Den latente varmen for staten endres solid lign væske kalles den spesifikke latente fusjonsvarmen (for smelting eller frysing). Den latente varmen for staten endrer flytende ltgt-gass kalles den spesifikke latente varmen til fordampning (for kondensering, fordampning eller koking) For mer om latent varme, se mine fysikknotater om spesifikk latent varme. Forklares ved hjelp av kinetisk partikkeltori for gasser og faste stoffer. Dette er når et fast, ved oppvarming, direkte endres til en gass uten å smelte, og gassen ved kjøling forandrer et fast stoff uten å kondensere til en væske. Sublimering innebærer vanligvis bare en fysisk forandring, men det er ikke alltid så enkelt (se ammoniumklorid). Teori i form av partikler. Når det faste stoffet blir oppvarmet, vibrerer partiklene med økende kraft fra den tilsatte termiske energien. Hvis partiklene har nok kinetisk energi av vibrasjon for å delvis overvinne partikkelpartikkelen attraktive krefter, ville du forvente at det faste stoffet smelter. HVIS partiklene på dette tidspunktet har nok energi på dette punktet som ville ha ført til koke, vil væsken ikke danne og det faste stoffet blir direkte til en gass. Samlet endotermisk forandring. energi absorbert og tatt inn i systemet. Ved kjøling går partiklene langsommere og har mindre kinetisk energi. Til slutt, når partikkel-kinetisk energi er lav nok, vil det tillate partikkelpartikkelen attraktive krefter å frembringe en væske. MEN energien kan være lav nok til å tillate direkte dannelse av det faste stoffet, dvs. partiklene har IKKE nok kinetisk energi til å opprettholde en flytende tilstand, totalt eksoterm forandring. energi utgitt og gitt ut til omgivelsene. Selv ved romtemperatur viser flasker med fast jod at krystaller danner på toppen av flasken over det faste stoffet. Jo varmere laboratoriet, desto flere krystaller danner når det kjøler seg om natten. Hvis du forsiktig oppvarmer jod i et reagensrør, ser du jodet lett sublimt og omkrystalliserer på den kjøligere overflaten nær toppen av reagensrøret. Dannelsen av en bestemt form for frost innebærer direkte frysing av vanndamp (gass). Frost kan også fordampe direkte tilbake til vanndamp (gass), og dette skjer i de tørre og ekstremt kalde vintrene til Gobi-ørkenen på en solfylt dag. H 2 O (s) H 2 O (g) (kun fysisk forandring) Fast karbondioksid (tørr is) dannes ved avkjøling av gassen ned til mindre enn 78 o C. Ved oppvarming endres den direkte til en veldig kald gass. kondenserer eventuell vanndamp i luften til en tåke, og dermed bruk i stadiumeffekter. CO 2 (s) CO 2 (g) (Kun fysisk forandring) Ved oppvarming sterkt i et reagensrør, hvitt fast ammoniumklorid. dekomponerer i en blanding av to fargeløse gasser ammoniakk og hydrogenklorid. Ved avkjøling reverseres reaksjonen og faste ammoniumkloridreformer på den øvre overflaten av prøverøret. Ammoniumklorid varmeenergi ammoniakk hydrogenklorid T han innebærer både kjemiske og fysiske endringer og er så komplisert enn eksempler 1 til 3. Faktisk endres ioniske ammoniumkloridkrystaller i kovalente ammoniakk og hydrogenkloridgasser som er naturlig langt mer flyktige ( kovalente stoffer har generelt mye lavere smeltepunkt og kokepunkter enn ioniske stoffer). Væskepartikkelbildet er ikke her, men de andre modellene gjelder fullt ut bortsett fra tilstandsendringer som involverer væskedannelse. GAS-partikkelmodell og SOLID-partikkelmodellkoblinger. VENNLIGST MERK, På et høyere nivå av studier. du må studere gls fasediagram for vann og damptrykkskurven på is ved bestemte temperaturer. For eksempel, hvis det omgivende damptrykk er mindre enn likevektsdamptrykket ved isens temperatur, kan sublimering lett finne sted. Snøen og isen i de kaldere områdene i Gobi-ørkenen smelter ikke i solen, de forsvinner bare sakte sublimt 2 timer. Mer om varmeendringene i fysiske endringer i tilstanden Endringer i fysisk tilstand, dvs. gass-lignende flytende løst solid, er også ledsaget av energiendringer. For å smelte et fast stoff, eller boilevaporere en væske, må varmeenergien bli absorbert eller tatt inn fra omgivelsene, slik at disse er endoterme energiendringer. Systemet er oppvarmet for å påvirke disse endringene. For å kondensere en gass, eller fryse et fast stoff, må varmeenergien fjernes eller gis ut i omgivelsene, slik at disse er eksoterme energiforandringer. Systemet avkjøles for å påvirke disse endringene. Generelt sett er jo større kreftene mellom partiklene, desto større er energien som trengs for å påvirke tilstanden, og jo høyere smeltepunktet og kokepunktet. En sammenlikning av energi som trengs for å smelte eller koke forskjellige typer stoffer (Dette er mer for avanserte studenter). Varmekraftendringen som er involvert i en tilstandsendring, kan uttrykkes i kJmol av substans for en rettferdig sammenligning. I tabellen under 916H smelter er energien som trengs for å smelte 1 mol av stoffet (formelmasse i g). 916H vap er den energien som trengs for å fordampe ved fordampning eller koke 1 mol av stoffet (formelmasse i g). For enkle små kovalente molekyler er energien som absorberes av materialet relativt liten for å smelte eller fordampe substansen og jo større molekylet jo større er de intermolekylære kreftene. Disse kreftene er svake sammenlignet med de kjemiske bindingene som holder atomer sammen i et molekyl selv. Relativt lave energier er nødvendig for å smelte eller dampe dem. Disse stoffene har relativt lave smeltepunkter og kokepunkter. For sterkt bundet 3D-nettverk, f. eks. (iii) og et metallgitter av ioner og frie ytre elektroner (metallisk binding), strukturer er mye sterkere på en kontinuerlig måte på grunn av den kontinuerlige kjemiske binding i hele strukturen. Følgelig krever mye større energier å smelte eller fordampe materialet. Det er derfor de har så mye høyere smeltepunkter og kokepunkter. Type bonding, struktur og attraktive krefter drift Smeltepunkt K (Kelvin) o C 273 Energi som trengs for å smelte stoffet Kokepunkt K (Kelvin) o C 273 Energi som trengs for å koke stoff 3a. HVA SKAL HOPPE TIL PARTIKLER Når en fast løses i en væskeformig løsning Hva betyr ordene SOLVENT, SOLUTE og SOLUTION Når et fast stoff (løsemiddelet) oppløses i en væske (løsningsmidlet) kalles den resulterende blanding en løsning. Generelt: løsemiddel løsemiddel gt løsning Så løsningsmidlet er det som løses i et løsningsmiddel, et løsningsmiddel er en væske som løser opp ting og løsningen er et resultat av oppløsning av noe i et løsningsmiddel. Faststoffet mister all sin vanlige struktur og de enkelte faste partikler (molekyler eller ioner) er nå helt fri fra hverandre og blandes tilfeldig med de opprinnelige væskepartikler, og alle partikler kan bevege seg tilfeldig. Dette beskriver salt som løses i vann, sukkeroppløses i te eller voks oppløses i et hydrokarbon løsningsmiddel som hvit ånd. Det innebærer vanligvis ikke en kjemisk reaksjon, så det er generelt et eksempel på en fysisk forandring. Uansett volumendringene i den faste væsken, sammenlignet med den endelige løsningen, gjelder loven om bevaring av masse fortsatt. Dette betyr: massen av fast oppløselig masse av væskeløsningsmiddelmasse av oppløsning etter blanding og oppløsning. Du kan ikke skape masse eller miste masse. men bare endre massen av stoffer inn i en annen form. Hvis løsningsmidlet fordampes. så blir det faste stoffet reformert, f. eks. Hvis en saltoppløsning blir utelatt i lang tid eller forsiktig oppvarmet for å øke hastigheten, oppnår til slutt saltkrystaller, kalles prosessen krystallisering. 3b. HVA SKADER PARTICLES NÅR TO FLØYGER HELT MIX MED HVER ANDRE HVORDAN ER ORDET MISBRUKT. Bruk partikkelmodellen til å forklare blandbare væsker. Hvis to væsker blander seg helt i forhold til partiklene, kalles de blandbare væsker fordi de helt oppløses i hverandre. Dette er vist i diagrammet nedenfor, hvor partiklene blandes og flyttes tilfeldig. Prosessen kan reverseres ved fraksjonell destillasjon. 3c. HVA SKADER PARTICLES NÅR TO Væsker ikke blandes med hverandre, hva betyr ORDET UANSIKTLIG, HVORFOR BLIKER IKKE MASKINENE Bruk partikkelmodellen til å forklare ublandbare væsker. Hvis de to væskene IKKE blandes. de danner to separate lag og er kjent som ublandbare væsker, illustrert i diagrammet nedenfor, hvor den nedre lilla væsken vil være tettere enn det øvre laget av den grønne væsken. Du kan skille disse to væskene ved hjelp av en skilletratt. Årsaken til dette er at samspillet mellom molekylene til en av væskene alene er sterkere enn samspillet mellom de to forskjellige molekylene i de forskjellige væskene. For eksempel er tiltrekningskraften mellom vannmolekyler mye større enn enten oljeolje molekyler eller oljevannsmolekyler, så to separate lag dannes fordi vannmolekylene, når det gjelder energiendring, foretrekkes ved å stikke sammen. 3d. Hvordan en skilletrakt brukes 1. Blandingen settes i skilletrakten med stopperen på og kranen stengt og lagene igjen for å bosette seg. 2. Stopperen fjernes, og springen åpnes slik at du kan forsiktig kjøre det nedre grålaget først i et beger. 3. Kranen lukkes deretter igjen, og etterlater det øvre gullagsvæsken, slik at de to ikke-blandbare væskene skilles. Vedlegg 1 Noen enkle partikkelbilder av ELEMENTS, FORBINDELSER OG MIXTURES GCSEIGCSE multiple choice QUIZ på tilstander av mattergasser, væsker amp solids Noen enkle grunnleggende øvelser fra KS3 vitenskap QCA 7G quotPartikkelmodell av faste stoffer, væsker og gasserquot Flere valg Spørsmål for vitenskapsrevisjon på gasser , væsker og faststoffer partikkelmodeller, egenskaper, forklarer forskjellene mellom dem. Se også for gassberegninger gcse chemistry revision gratis detaljerte notater om tilstander av materie for å hjelpe revidere igcse kjemi igcse kjemi revisjon notater om tilstander av materie O nivå kjemi revisjon gratis detaljerte notater om tilstandene av saken for å hjelpe revidere gcse kjemi gratis detaljerte notater om tilstandene av betyr noe for å bidra til å revidere O nivå kjemi gratis online nettsted for å bidra til å revidere tilstandene av saken for gcse kjemi gratis online nettsted for å hjelpe revidere tilstandene av materie for igcse kjemi gratis online nettsted for å hjelpe revidere O nivå stater av materiell kjemi hvordan å lykkes i spørsmål om stater av sak for gcse kjemi Hvordan lykkes i igcse kjemi Hvordan lykkes på O nivå kjemi en god nettside for gratis spørsmål om tilstandene av saken for å bidra til å passere gcse kjemi spørsmål om tilstandene av saken en god nettside for gratis hjelp til å passere igcse kjemi med revisjonsnotater om saker av materie en god nettside for gratis hjelp til å passere O-nivå kjemi hva er de tre tilstandene i saken trekke a diagram of the particle model diagram of a gas, particle theory of a gas, draw a particle model diagram of a liquid, particle theory of a liquid, draw a particle model diagram of a solid, particle theory of a solid, what is diffusion why can you have diffusion in gases and liquids but not in solids what are the limitations of the particle model of a gas liquid or solid how to use the particle model to explain the properties of a gas, what causes gas pressure how to use the particle model to explain the properties of a solid, how to use the particle model to explain the properties of a solid, why is a gas easily compressed but difficult to compress a liquid or solid how do we use the particle model to explain changes of state explaining melting with the particle model, explaining boiling with the particle model, explaining evaporation using the particle model, explaining condensing using the particle model, explaining freezing with the particle model, how do you read a thermometer wor king out the state of a substance at a particular temperature given its melting point and boiling point, how to draw a cooling curve, how to draw a heating curve, how to explain heatingcooling curves in terms of state changes and latent heat, what is sublimation what substances sublime explaining endothermic and exothermic energy changes of state, using the particle model to explain miscible and immiscible liquids GASES, LIQUIDS, SOLIDS, States of Matter, particle models, theory of state changes, melting, boiling, evaporation, condensing, freezing, solidifying, cooling curves, 1.1 Three states of matter: 1.1a gases, 1.1b liquids, 1.1c solids 2. State changes: 2a evaporation and boiling, 2b condensation, 2c distillation, 2d melting, 2e freezing, 2f cooling and heating curves and relative energy changes, 2g sublimation 3. Dissolving, solutions. miscibleimmiscible liquids Boiling Boiling point Brownian motion Changes of state Condensing Cooling curve Diffusion Dissolving Evaporation Freezing Freezing point Gas particle picture Heating curve Liquid particle picture Melting Melting point miscibleimmiscible liquids Properties of gases Properties of liquids Properties of solids solutions sublimation Solid particle picture GCSEIGCSE multiple choice QUIZ on states of matter gases liquids solids practice revision questions Revision notes on particle models and properties of gases, liquids and solids KS4 Science GCSEIGCSEO level Chemistry Information on particle models and properties of gases, liquids and solids for revising for AQA GCSE Science, Edexcel Science chemistry IGCSE Chemistry notes on particle models and properties of gases, liquids and solids OCR 21st Century Science, OCR Gateway Science notes on particle models and properties of gases, liquids and solids WJEC gcse science chemistry notes on particl e models and properties of gases, liquids and solids CIE O Level chemistry CIE IGCSE chemistry notes on particle models and properties of gases, liquids and solids CCEACEA gcse science chemistry (revise courses equal to US grade 8, grade 9 grade 10) science chemistry courses revision guides explanation chemical equations for particle models and properties of gases, liquids and solids educational videos on particle models and properties of gases, liquids and solids guidebooks for revising particle models and properties of gases, liquids and solids textbooks on particle models and properties of gases, liquids and solids state changes amp particle model for AQA AS chemistry, state changes amp particle model for Edexcel A level AS chemistry, state changes amp particle model for A level OCR AS chemistry A, state changes amp particle model for OCR Salters AS chemistry B, state changes amp particle model for AQA A level chemistry, state changes amp particle model for A level Edexcel A level c hemistry, state changes amp particle model for OCR A level chemistry A, state changes amp particle model for A level OCR Salters A level chemistry B state changes amp particle model for US Honours grade 11 grade 12 state changes amp particle model for pre-university chemistry courses pre-university A level revision notes for state changes amp particle model A level guide notes on state changes amp particle model for schools colleges academies science course tutors images pictures diagrams for state changes amp particle model A level chemistry revision notes on state changes amp particle model for revising module topics notes to help on understanding of state changes amp particle model university courses in science careers in science jobs in the industry laboratory assistant apprenticeships technical internships USA US grade 11 grade 11 AQA A level chemistry notes on state changes amp particle model Edexcel A level chemistry notes on state changes amp particle model for OCR A level chem istry notes WJEC A level chemistry notes on state changes amp particle model CCEACEA A level chemistry notes on state changes amp particle model for university entrance examinations describe some limitations of the particle model for gases, liquids and solidsRoll Up Doors, Commercial Overhead and Garage If your looking for a roll up door, garage door, commercial door, shed door or barn door. We have several staff members ready to answer any questions that you may have. We can also take your order over the phone. Toll Free Phone 1-877-753-6677 To Order Thanks for your business. The next generation available today. where you get more for less. We are glad to have you on our website, and even happier to demonstrate why our products are the state of the art highest performance on the market today. We are a US based company that specializes in making roll up, commercial garage and wind load rated doors and would like to tell you about our line of products. Thousands and thousands of our units are in operation all over the world, every day of the year. Our roll up doors. commercial roll up doors and garage doors are special because they are made of good quality components. Delivering a high quality, cost effective product is our standard and that is just why our units have been chosen by many companies, small and large. In the 10 years that we have been in business we have made a good name for ourselves in countries around the world. Explore our site and get an even more in-depth view of our product range in real world conditions. Through our web site you will be able to see our price list and brochures. Telephone: 1-352-243-0180 Toll Free 1-877-753-6677 In need of a single unit for your shed, building or supplying a complete mini storage facility, we can ship any amount directly to your job site. Commercial, Heavy Duty, Wind Certified designed to 150 mph wind, we can deliver from several strategically located plants in Orlando, FL. Mesa, AZ. Temple GA. Anaheim, CA. Butler, IN. Houston, TX. Made In The US. Ready To Buy Go ToStep 5 . Telephone: 1-352-243-0180 Toll Free: 1-877-753-6677 . Follow these steps to find the correct size door: We can supply you with a selection of units from major manufactures at discount prices. Our prices are for a boxed ready to ship unit (shipping depends on garage door size and zip code). All our units come complete with frame, fixings, mounting brackets, tension or reduced drive chain, locklatch system in any of 22 colors. We can offer you the right product at the right price for the following applications: Commercial steel rollingoverhead. Light use and medium use metal units. Heavy Duty Wind rated units inc. Dade county approved. Sizes up to 20ft wide and 16ft high. Also medium to heavy duty commercial doors. If you would like to place an order or receive more information, please use our web site, or contact us by telephone. FREE PHONE 1-877-753-6677 TO ORDER Interested in learning more and seeing our fantastic selection Simply visit our website today to start shopping Your source for doors. ( Period ) If you need a door, no matter what kind it is weve got it for less We are Doors Direct. We work directly with Manufacturers, allowing us to reduce expenses. We are pioneers of the direct-to-the-consumer approach, And we can offer our customers great service as well as Substantial savings. At Doors Direct we have a beautiful and large selection of styles to choose from Whether you are in the market for a new garage door, Roll-up-door, roll up shed door, roll up barn door or a commercial door, Doors Direct has the variety And quality to suit your needs NOBODY BEATS OUR PRICES. Were so confident our prices cant be beat, we guarantee it We offer a Low Price Guarantee on all in-stock merchandise. Just compare our total priceitem price tax (if applicable) shipping amp handling to the total price of other online stores. If you find a lower price, we will match the price and refund 10 of the difference Just call or visit our awesome website to begin shopping LOG ON, or CALL NOW and get the best prices on: Garage Doors Roll up Doors Commercial Doors Roll Up Barn Doors Accessories Roll Up Shed Doors Roll Up SCounter Doors And much more Log on now to view our full inventory BuyDoorsDirect Or call us 1-877-753-6677 DOOR SPRINGS: During production, each spring is coated with a generous amount of grease that penetrates the innermost pores of the spring with additives, displacing moisture and preventing the formation of rust and corrosion. In addition, this process relieves the friction created between spring coils, thereby providing a smoother door operation. Finally, the spring and axle assembly is enclosed in a tube to protect them from the elements encountered throughout the life of the door. OPTIONAL PACKAGE PROTECTION amp SHIPPING: Doors stacked on top of each other in transit are going to shifthellip unless they can be packaged in a way to minimize the sliding that occurs during that time. Janus has found the way. As an option, we can suspend each door individually in crates. Whether they travel down the block or across the country, compaction damages, door abrasions and chatter marks are virtually eliminated. RATCHET TENSIONING DEVICE: The ratchet tensioning device, supplied as standard equipment on our door, offers a simpler method of tensioning while more accurately fine tuning all the springs on the door at the same time. There is no extra hardware required. Eight different positions on the tension wheel allow one to perfectly balance the door every time. There are no pins required to hold the tension on the springhellip you simply just click it. RADIAL BALL BEARINGS: Roll Up Doors Direct supplies radial ball bearings at no additional cost to you. Our permanently-lubricated bearings require no maintenance and are guaranteed to last the entire life span of the door. DEAD AXLE amp TORQUE TUBE ASSEMBLY: This design, noted for its durability and smoother operation with commercial applications, has now been incorporated into the Janus self storage door. The tube housing protects the springs and strengthens the axle. Eliminating axle push and shift that can occur with a live axle, the dead axle design allows for a straighter travel path of the door curtain in the guides. The greatest feature of this design is that it affords the fine tuning of any spring adjustment to equally affect all springs on the door at the same time. DOOR STOPS: Our removable door stops are simple to install and prevent the curtain from over traveling the guide when raising the door MAGNETIC ZINC COATED STEEL OR OPTIONAL STAINLESS STEEL LATCH: Our patented mini latch features a cover plate made from a heavy gauge yellow zinc coated steel or optional stainless steel. In addition, the latch cover protects the slide from tampering by completely covering the slide, with the exception of a tab used to operate the latch. To further secure the door, the latchrsquos two inch throw, with its magnetic properties, can be incorporated with the new guidemounted security devices. This versatile design affords you the ability to utilize padlocks, cylinder locks or both. DOOR CURTAIN: The 26 gauge corrugated door curtain is manufactured from full hard galvanized grade 80 steel and coated with Super Durable polyester paint that is backed by a 40 year film integrity and 25 year no-fade limited paint warranty. Available in sizes up to 10rsquo0rdquo x 10rsquo0rdquo and in over 20 different standard colors. All DRUMS are fitted with a grease filled, shielded radial ball bearing to contribute to a smoother operation and reduce wear and friction. Factory installed galvanized reinforced 16 gauge BRACKETS (12 gauge for doors over 9rsquo wide or 8rsquo tall) are designed to easily snap onto the guides, reducing installation time. Galvanized, guide-mounted HEAD STOPS are simple to install and prevent curtain over travel when raising the door. Installed through guide after curtain is lowered, they provide definite contact with the bottom bar angle and stop clips. The RATCHET SPRING TENSIONER ASSEMBLY is factory installed on the end of the door axle and allows precise fine tuning of the initial spring tension. Increments of 18 turn are possible. Tensioner adjusts both springs equally at the same time from only one end of the door. Roll formed clear acrylic coated galvanized steel BOTTOM BAR reinforced with a 1-12rdquo x 1-12rdquo 14 gauge full width galvanized angle that extends fully into the guides. The PVC bulb astragal provides positive contact with floor. Lift handle(s) and stop clips installed on exterior side of bottom bar and a non-rotting pull rope is attached to the inside angle. Oil-tempered helical torsion SPRINGS are factory lubricated to minimize friction and corrosion while increasing the spring cycle life. Spring wire confirms to ASTM A 229.Full width galvanized steel BARREL totally encloses the drums, springs and axle. Barrel-type construction reduces door sag, eliminates drum dents and improves operation due to an even support of the curtain for the entire width. Galvanized and pre-painted with long lasting Super Durable polyester paint, the 26 gauge CORRUGATED CURTAIN is roll formed from ASTM A 653 grade 80 full hard steel. This premium steel yields greater door strength and minimized curtain damage. Full height felt tape on back of curtain prevents nesting and reduces paint rubbing. 20 colors are standard, with others available on special order. Available in sizes up to 10rsquo0rdquo x 10rsquo0rdquo. Roll formed, 18 gauge galvanized GUIDES are fitted with dual polyethylene wear strips to reduce friction and muffle door noises. All guide attachment to jamb is performed through the guides without the addition of clips welded to the back of the guide. This gives a neater appearance, increased strength and aids in tight installations. Yellow zinc coated steel or optional stainless steel cover, slide and four attachment bolts are factory installed. The slide exhibits magnetic properties that can be used to activate a guide mounted security sensor. LATCH accepts all industry padlocks, including 716rdquo diameter shanks. Provision for cylinder lock included. Featured ProductsGraphite 1 performs two pretty simple tasks: storing numbers that change over time and graphing them. There has been a lot of software written over the years to do these same tasks. What makes Graphite unique is that it provides this functionality as a network service that is both easy to use and highly scalable. The protocol for feeding data into Graphite is simple enough that you could learn to do it by hand in a few minutes (not that youd actually want to, but its a decent litmus test for simplicity). Rendering graphs and retrieving data points are as easy as fetching a URL. This makes it very natural to integrate Graphite with other software and enables users to build powerful applications on top of Graphite. One of the most common uses of Graphite is building web-based dashboards for monitoring and analysis. Graphite was born in a high-volume e-commerce environment and its design reflects this. Scalability and real-time access to data are key goals. The components that allow Graphite to achieve these goals include a specialized database library and its storage format, a caching mechanism for optimizing IO operations, and a simple yet effective method of clustering Graphite servers. Rather than simply describing how Graphite works today, I will explain how Graphite was initially implemented (quite naively), what problems I ran into, and how I devised solutions to them. 7.1. The Database Library: Storing Time-Series Data Graphite is written entirely in Python and consists of three major components: a database library named whisper. a back-end daemon named carbon. and a front-end webapp that renders graphs and provides a basic UI. While whisper was written specifically for Graphite, it can also be used independently. It is very similar in design to the round-robin-database used by RRDtool, and only stores time-series numeric data. Usually we think of databases as server processes that client applications talk to over sockets. However, whisper. much like RRDtool, is a database library used by applications to manipulate and retrieve data stored in specially formatted files. The most basic whisper operations are create to make a new whisper file, update to write new data points into a file, and fetch to retrieve data points. Figure 7.1: Basic Anatomy of a whisper File As shown in Figure 7.1. whisper files consist of a header section containing various metadata, followed by one or more archive sections. Each archive is a sequence of consecutive data points which are (timestamp, value) pairs. When an update or fetch operation is performed, whisper determines the offset in the file where data should be written to or read from, based on the timestamp and the archive configuration. 7.2. The Back End: A Simple Storage Service Graphites back end is a daemon process called carbon-cache. usually simply referred to as carbon. It is built on Twisted, a highly scalable event-driven IO framework for Python. Twisted enables carbon to efficiently talk to a large number of clients and handle a large amount of traffic with low overhead. Figure 7.2 shows the data flow among carbon. whisper and the webapp: Client applications collect data and send it to the Graphite back end, carbon. which stores the data using whisper. This data can then be used by the Graphite webapp to generate graphs. Figure 7.2: Data Flow The primary function of carbon is to store data points for metrics provided by clients. In Graphite terminology, a metric is any measurable quantity that can vary over time (like the CPU utilization of a server or the number of sales of a product). A data point is simply a (timestamp, value) pair corresponding to the measured value of a particular metric at a point in time. Metrics are uniquely identified by their name, and the name of each metric as well as its data points are provided by client applications. A common type of client application is a monitoring agent that collects system or application metrics, and sends its collected values to carbon for easy storage and visualization. Metrics in Graphite have simple hierarchical names, similar to filesystem paths except that a dot is used to delimit the hierarchy rather than a slash or backslash. carbon will respect any legal name and creates a whisper file for each metric to store its data points. The whisper files are stored within carbon s data directory in a filesystem hierarchy that mirrors the dot-delimited hierarchy in each metrics name, so that (for example) servers. www01.cpuUsage maps to hellipserverswww01cpuUsage. wsp . When a client application wishes to send data points to Graphite it must establish a TCP connection to carbon. usually on port 2003 2. The client does all the talking carbon does not send anything over the connection. The client sends data points in a simple plain-text format while the connection may be left open and re-used as needed. The format is one line of text per data point where each line contains the dotted metric name, value, and a Unix epoch timestamp separated by spaces. For example, a client might send: On a high level, all carbon does is listen for data in this format and try to store it on disk as quickly as possible using whisper. Later on we will discuss the details of some tricks used to ensure scalability and get the best performance we can out of a typical hard drive. 7.3. The Front End: Graphs On-Demand The Graphite webapp allows users to request custom graphs with a simple URL-based API. Graphing parameters are specified in the query-string of an HTTP GET request, and a PNG image is returned in response. For example, the URL: requests a 500times300 graph for the metric servers. www01.cpuUsage and the past 24 hours of data. Actually, only the target parameter is required all the others are optional and use your default values if omitted. Graphite supports a wide variety of display options as well as data manipulation functions that follow a simple functional syntax. For example, we could graph a 10-point moving average of the metric in our previous example like this: Functions can be nested, allowing for complex expressions and calculations. Here is another example that gives the running total of sales for the day using per-product metrics of sales-per-minute: The sumSeries function computes a time-series that is the sum of each metric matching the pattern products..salesPerMinute. Then integral computes a running total rather than a per-minute count. From here it isnt too hard to imagine how one might build a web UI for viewing and manipulating graphs. Graphite comes with its own Composer UI, shown in Figure 7.3. that does this using Javascript to modify the graphs URL parameters as the user clicks through menus of the available features. Figure 7.3: Graphites Composer Interface 7.4. Dashboards Since its inception Graphite has been used as a tool for creating web-based dashboards. The URL API makes this a natural use case. Making a dashboard is as simple as making an HTML page full of tags like this: However, not everyone likes crafting URLs by hand, so Graphites Composer UI provides a point-and-click method to create a graph from which you can simply copy and paste the URL. When coupled with another tool that allows rapid creation of web pages (like a wiki) this becomes easy enough that non-technical users can build their own dashboards pretty easily. 7.5. An Obvious Bottleneck Once my users started building dashboards, Graphite quickly began to have performance issues. I investigated the web server logs to see what requests were bogging it down. It was pretty obvious that the problem was the sheer number of graphing requests. The webapp was CPU-bound, rendering graphs constantly. I noticed that there were a lot of identical requests, and the dashboards were to blame. Imagine you have a dashboard with 10 graphs in it and the page refreshes once a minute. Each time a user opens the dashboard in their browser, Graphite has to handle 10 more requests per minute. This quickly becomes expensive. A simple solution is to render each graph only once and then serve a copy of it to each user. The Django web framework (which Graphite is built on) provides an excellent caching mechanism that can use various back ends such as memcached. Memcached 3 is essentially a hash table provided as a network service. Client applications can get and set key-value pairs just like an ordinary hash table. The main benefit of using memcached is that the result of an expensive request (like rendering a graph) can be stored very quickly and retrieved later to handle subsequent requests. To avoid returning the same stale graphs forever, memcached can be configured to expire the cached graphs after a short period. Even if this is only a few seconds, the burden it takes off Graphite is tremendous because duplicate requests are so common. Another common case that creates lots of rendering requests is when a user is tweaking the display options and applying functions in the Composer UI. Each time the user changes something, Graphite must redraw the graph. The same data is involved in each request so it makes sense to put the underlying data in the memcache as well. This keeps the UI responsive to the user because the step of retrieving data is skipped. 7.6. Optimizing IO Imagine that you have 60,000 metrics that you send to your Graphite server, and each of these metrics has one data point per minute. Remember that each metric has its own whisper file on the filesystem. This means carbon must do one write operation to 60,000 different files each minute. As long as carbon can write to one file each millisecond, it should be able to keep up. This isnt too far fetched, but lets say you have 600,000 metrics updating each minute, or your metrics are updating every second, or perhaps you simply cannot afford fast enough storage. Whatever the case, assume the rate of incoming data points exceeds the rate of write operations that your storage can keep up with. How should this situation be handled Most hard drives these days have slow seek time 4. that is, the delay between doing IO operations at two different locations, compared to writing a contiguous sequence of data. This means the more contiguous writing we do, the more throughput we get. But if we have thousands of files that need to be written to frequently, and each write is very small (one whisper data point is only 12 bytes) then our disks are definitely going to spend most of their time seeking. Working under the assumption that the rate of write operations has a relatively low ceiling, the only way to increase our data point throughput beyond that rate is to write multiple data points in a single write operation. This is feasible because whisper arranges consecutive data points contiguously on disk. So I added an updatemany function to whisper. which takes a list of data points for a single metric and compacts contiguous data points into a single write operation. Even though this made each write larger, the difference in time it takes to write ten data points (120 bytes) versus one data point (12 bytes) is negligible. It takes quite a few more data points before the size of each write starts to noticeably affect the latency. Next I implemented a buffering mechanism in carbon. Each incoming data point gets mapped to a queue based on its metric name and is then appended to that queue. Another thread repeatedly iterates through all of the queues and for each one it pulls all of the data points out and writes them to the appropriate whisper file with updatemany. Going back to our example, if we have 600,000 metrics updating every minute and our storage can only keep up with 1 write per millisecond, then the queues will end up holding about 10 data points each on average. The only resource this costs us is memory, which is relatively plentiful since each data point is only a few bytes. This strategy dynamically buffers as many datapoints as necessary to sustain a rate of incoming datapoints that may exceed the rate of IO operations your storage can keep up with. A nice advantage of this approach is that it adds a degree of resiliency to handle temporary IO slowdowns. If the system needs to do other IO work outside of Graphite then it is likely that the rate of write operations will decrease, in which case carbon s queues will simply grow. The larger the queues, the larger the writes. Since the overall throughput of data points is equal to the rate of write operations times the average size of each write, carbon is able to keep up as long as there is enough memory for the queues. carbon s queueing mechanism is depicted in Figure 7.4 . Figure 7.4: Carbons Queueing Mechanism 7.7. Keeping It Real-Time Buffering data points was a nice way to optimize carbon s IO but it didnt take long for my users to notice a rather troubling side effect. Revisiting our example again, weve got 600,000 metrics that update every minute and were assuming our storage can only keep up with 60,000 write operations per minute. This means we will have approximately 10 minutes worth of data sitting in carbon s queues at any given time. To a user this means that the graphs they request from the Graphite webapp will be missing the most recent 10 minutes of data: Not good Fortunately the solution is pretty straight-forward. I simply added a socket listener to carbon that provides a query interface for accessing the buffered data points and then modifies the Graphite webapp to use this interface each time it needs to retrieve data. The webapp then combines the data points it retrieves from carbon with the data points it retrieved from disk and voila, the graphs are real-time. Granted, in our example the data points are updated to the minute and thus not exactly real-time, but the fact that each data point is instantly accessible in a graph once it is received by carbon is real-time. 7.8. Kernels, Caches, and Catastrophic Failures As is probably obvious by now, a key characteristic of system performance that Graphites own performance depends on is IO latency. So far weve assumed our system has consistently low IO latency averaging around 1 millisecond per write, but this is a big assumption that requires a little deeper analysis. Most hard drives simply arent that fast even with dozens of disks in a RAID array there is very likely to be more than 1 millisecond latency for random access. Yet if you were to try and test how quickly even an old laptop could write a whole kilobyte to disk you would find that the write system call returns in far less than 1 millisecond. Why Whenever software has inconsistent or unexpected performance characteristics, usually either buffering or caching is to blame. In this case, were dealing with both. The write system call doesnt technically write your data to disk, it simply puts it in a buffer which the kernel then writes to disk later on. This is why the write call usually returns so quickly. Even after the buffer has been written to disk, it often remains cached for subsequent reads. Both of these behaviors, buffering and caching, require memory of course. Kernel developers, being the smart folks that they are, decided it would be a good idea to use whatever user-space memory is currently free instead of allocating memory outright. This turns out to be a tremendously useful performance booster and it also explains why no matter how much memory you add to a system it will usually end up having almost zero free memory after doing a modest amount of IO. If your user-space applications arent using that memory then your kernel probably is. The downside of this approach is that this free memory can be taken away from the kernel the moment a user-space application decides it needs to allocate more memory for itself. The kernel has no choice but to relinquish it, losing whatever buffers may have been there. So what does all of this mean for Graphite We just highlighted carbon s reliance on consistently low IO latency and we also know that the write system call only returns quickly because the data is merely being copied into a buffer. What happens when there is not enough memory for the kernel to continue buffering writes The writes become synchronous and thus terribly slow This causes a dramatic drop in the rate of carbon s write operations, which causes carbon s queues to grow, which eats up even more memory, starving the kernel even further. In the end, this kind of situation usually results in carbon running out of memory or being killed by an angry sysadmin. To avoid this kind of catastrophe, I added several features to carbon including configurable limits on how many data points can be queued and rate-limits on how quickly various whisper operations can be performed. These features can protect carbon from spiraling out of control and instead impose less harsh effects like dropping some data points or refusing to accept more data points. However, proper values for those settings are system-specific and require a fair amount of testing to tune. They are useful but they do not fundamentally solve the problem. For that, well need more hardware. 7.9. Clustering Making multiple Graphite servers appear to be a single system from a user perspective isnt terribly difficult, at least for a naiumlve implementation. The webapps user interaction primarily consists of two operations: finding metrics and fetching data points (usually in the form of a graph). The find and fetch operations of the webapp are tucked away in a library that abstracts their implementation from the rest of the codebase, and they are also exposed through HTTP request handlers for easy remote calls. The find operation searches the local filesystem of whisper data for things matching a user-specified pattern, just as a filesystem glob like. txt matches files with that extension. Being a tree structure, the result returned by find is a collection of Node objects, each deriving from either the Branch or Leaf sub-classes of Node. Directories correspond to branch nodes and whisper files correspond to leaf nodes. This layer of abstraction makes it easy to support different types of underlying storage including RRD files 5 and gzipped whisper files. The Leaf interface defines a fetch method whose implementation depends on the type of leaf node. In the case of whisper files it is simply a thin wrapper around the whisper librarys own fetch function. When clustering support was added, the find function was extended to be able to make remote find calls via HTTP to other Graphite servers specified in the webapps configuration. The node data contained in the results of these HTTP calls gets wrapped as RemoteNode objects which conform to the usual Node. Branch. and Leaf interfaces. This makes the clustering transparent to the rest of the webapps codebase. The fetch method for a remote leaf node is implemented as another HTTP call to retrieve the data points from the nodes Graphite server. All of these calls are made between the webapps the same way a client would call them, except with one additional parameter specifying that the operation should only be performed locally and not be redistributed throughout the cluster. When the webapp is asked to render a graph, it performs the find operation to locate the requested metrics and calls fetch on each to retrieve their data points. This works whether the data is on the local server, remote servers, or both. If a server goes down, the remote calls timeout fairly quickly and the server is marked as being out of service for a short period during which no further calls to it will be made. From a user standpoint, whatever data was on the lost server will be missing from their graphs unless that data is duplicated on another server in the cluster. 7.9.1. A Brief Analysis of Clustering Efficiency The most expensive part of a graphing request is rendering the graph. Each rendering is performed by a single server so adding more servers does effectively increase capacity for rendering graphs. However, the fact that many requests end up distributing find calls to every other server in the cluster means that our clustering scheme is sharing much of the front-end load rather than dispersing it. What we have achieved at this point, however, is an effective way to distribute back-end load, as each carbon instance operates independently. This is a good first step since most of the time the back end is a bottleneck far before the front end is, but clearly the front end will not scale horizontally with this approach. In order to make the front end scale more effectively, the number of remote find calls made by the webapp must be reduced. Again, the easiest solution is caching. Just as memcached is already used to cache data points and rendered graphs, it can also be used to cache the results of find requests. Since the location of metrics is much less likely to change frequently, this should typically be cached for longer. The trade-off of setting the cache timeout for find results too long, though, is that new metrics that have been added to the hierarchy may not appear as quickly to the user. 7.9.2. Distributing Metrics in a Cluster The Graphite webapp is rather homogeneous throughout a cluster, in that it performs the exact same job on each server. carbon s role, however, can vary from server to server depending on what data you choose to send to each instance. Often there are many different clients sending data to carbon. so it would be quite annoying to couple each clients configuration with your Graphite clusters layout. Application metrics may go to one carbon server, while business metrics may get sent to multiple carbon servers for redundancy. To simplify the management of scenarios like this, Graphite comes with an additional tool called carbon-relay. Its job is quite simple it receives metric data from clients exactly like the standard carbon daemon (which is actually named carbon-cache ) but instead of storing the data, it applies a set of rules to the metric names to determine which carbon-cache servers to relay the data to. Each rule consists of a regular expression and a list of destination servers. For each data point received, the rules are evaluated in order and the first rule whose regular expression matches the metric name is used. This way all the clients need to do is send their data to the carbon-relay and it will end up on the right servers. In a sense carbon-relay provides replication functionality, though it would more accurately be called input duplication since it does not deal with synchronization issues. If a server goes down temporarily, it will be missing the data points for the time period in which it was down but otherwise function normally. There are administrative scripts that leave control of the re-synchronization process in the hands of the system administrator. 7.10. Design Reflections My experience in working on Graphite has reaffirmed a belief of mine that scalability has very little to do with low-level performance but instead is a product of overall design. I have run into many bottlenecks along the way but each time I look for improvements in design rather than speed-ups in performance. I have been asked many times why I wrote Graphite in Python rather than Java or C, and my response is always that I have yet to come across a true need for the performance that another language could offer. In Knu74 , Donald Knuth famously said that premature optimization is the root of all evil. As long as we assume that our code will continue to evolve in non-trivial ways then all optimization 6 is in some sense premature. One of Graphites greatest strengths and greatest weaknesses is the fact that very little of it was actually designed in the traditional sense. By and large Graphite evolved gradually, hurdle by hurdle, as problems arose. Many times the hurdles were foreseeable and various pre-emptive solutions seemed natural. However it can be useful to avoid solving problems you do not actually have yet, even if it seems likely that you soon will. The reason is that you can learn much more from closely studying actual failures than from theorizing about superior strategies. Problem solving is driven by both the empirical data we have at hand and our own knowledge and intuition. Ive found that doubting your own wisdom sufficiently can force you to look at your empirical data more thoroughly. For example, when I first wrote whisper I was convinced that it would have to be rewritten in C for speed and that my Python implementation would only serve as a prototype. If I werent under a time-crunch I very well may have skipped the Python implementation entirely. It turns out however that IO is a bottleneck so much earlier than CPU that the lesser efficiency of Python hardly matters at all in practice. As I said, though, the evolutionary approach is also a great weakness of Graphite. Interfaces, it turns out, do not lend themselves well to gradual evolution. A good interface is consistent and employs conventions to maximize predictability. By this measure, Graphites URL API is currently a sub-par interface in my opinion. Options and functions have been tacked on over time, sometimes forming small islands of consistency, but overall lacking a global sense of consistency. The only way to solve such a problem is through versioning of interfaces, but this too has drawbacks. Once a new interface is designed, the old one is still hard to get rid of, lingering around as evolutionary baggage like the human appendix. It may seem harmless enough until one day your code gets appendicitis (i. e. a bug tied to the old interface) and youre forced to operate. If I were to change one thing about Graphite early on, it would have been to take much greater care in designing the external APIs, thinking ahead instead of evolving them bit by bit. Another aspect of Graphite that causes some frustration is the limited flexibility of the hierarchical metric naming model. While it is quite simple and very convenient for most use cases, it makes some sophisticated queries very difficult, even impossible, to express. When I first thought of creating Graphite I knew from the very beginning that I wanted a human-editable URL API for creating graphs 7. While Im still glad that Graphite provides this today, Im afraid this requirement has burdened the API with excessively simple syntax that makes complex expressions unwieldy. A hierarchy makes the problem of determining the primary key for a metric quite simple because a path is essentially a primary key for a node in the tree. The downside is that all of the descriptive data (i. e. column data) must be embedded directly in the path. A potential solution is to maintain the hierarchical model and add a separate metadata database to enable more advanced selection of metrics with a special syntax. 7.11. Becoming Open Source Looking back at the evolution of Graphite, I am still surprised both by how far it has come as a project and by how far it has taken me as a programmer. It started as a pet project that was only a few hundred lines of code. The rendering engine started as an experiment, simply to see if I could write one. whisper was written over the course of a weekend out of desperation to solve a show-stopper problem before a critical launch date. carbon has been rewritten more times than I care to remember. Once I was allowed to release Graphite under an open source license in 2008 I never really expected much response. After a few months it was mentioned in a CNET article that got picked up by Slashdot and the project suddenly took off and has been active ever since. Today there are dozens of large and mid-sized companies using Graphite. The community is quite active and continues to grow. Far from being a finished product, there is a lot of cool experimental work being done, which keeps it fun to work on and full of potential. launchpadgraphite There is another port over which serialized objects can be sent, which is more efficient than the plain-text format. This is only needed for very high levels of traffic. memcached. org Solid-state drives generally have extremely fast seek times compared to conventional hard drives. RRD files are actually branch nodes because they can contain multiple data sources an RRD data source is a leaf node. Knuth specifically meant low-level code optimization, not macroscopic optimization such as design improvements. This forces the graphs themselves to be open source. Anyone can simply look at a graphs URL to understand it or modify it.

No comments:

Post a Comment