Umělá inteligence pohání růst emisí: Datová centra jsou zodpovědná za stejný objem CO2 jako letecký průmysl

11. 4. 2025

Sdílet

datové centrum, ai, spotřeba elektřiny
Autor: Radan Dolejš s podporou AI
Datová centra se na celosvětových emisích uhlíku podílejí stejnou měrou jako letecký průmysl. Jejich stopa dál poroste.

Raketový rozlet umělé inteligence vede ke strmému nárůstu poptávky po datových centrech. A podle nového výzkumu společnosti SPhotonix tato centra už dnes produkují stejné množství emisí jako celosvětový letecký průmysl.

Poměrově se dle SPhotonix datová centra na celosvětových emisích uhlíku podílejí 3 % a existuje reálný předpoklad, že negativní vliv umělé inteligence a internetu věcí na životní prostředí bude dál stoupat. Dle predikcí by do roku 2030 datová centra mohla spotřebovávat až 13 % světové spotřeby elektřiny.

Chcete dostávat do mailu týdenní přehled článků z Computertrends? Objednejte si náš mailový servis a žádná důležitá informace vám neuteče. Objednat si lze také newsletter To hlavní, páteční souhrn nejdůležitějších článků ze všech našich serverů. Newslettery si můžete objednat na této stránce.

Společnost SPhotonix uvádí, že v roce 2024 bylo vytvořeno 149 zettabajtů (ZB) dat, přičemž za další čtyři roky by toto roční číslo mohlo činit 394 ZB, tedy přibližně 2,6krát víc než dnes. 

SPhotonix zároveň vypočítává, že datová centra v současnosti spotřebují 460 Terawatthodin (TWh) ročně, ale už v roce 2026 by se tato spotřeba mohla více než zdvojnásobit na 1000TWh, což je zhruba stejně jako celková roční spotřeba energie Japonska. Do konce desetiletí by pak datová centra mohla být zodpovědná za 2,5 miliardy tun CO2.

Odkazovaný výzkum se zabývá mimo jiné různými typy úložišť a odhaluje, že HDD úložiště používaná pro dlouhodobé ukládání a archivaci dat se na tomto energetickém výkonu a emisní zátěži podílejí větší měrou a představují přibližně tři pětiny veškerých kapacit datových center. 

bitcoin_smenarna

HDD pro zvýšení životnosti vyžadují nízké teploty, pro jejichž dosažení a udržení je zapotřebí velké množství energie. HDD mají také zpravidla kratší životnost než SSD, což znamená, že se musí zhruba každých sedm až deset let kopírovat, což je spojeno s další vysokou spotřebou energie a emisemi CO2. 

Video ke kávě

Máte čas na rychlé a informativní video?

„Ve stále digitálnějším světě se dopad ukládání dat na životní prostředí rychle stává naléhavým problémem a příslušné vlády a regulační orgány začínají prosazovat standardy udržitelnosti,“ komentoval vědecký ředitel společnosti SPhotonix Peter Kazansky, podle kterého bude například Německo od příštího roku energetickou účinnost nových datových center regulovat novým zákonem.

 

Computertrends si můžete objednat i jako klasický časopis. Je jediným odborným magazínem na českém a slovenském trhu zaměreným na profesionály v oblasti informačních a komunikačních technologií (ICT). Díky silnému zázemí přináší aktuální zpravodajství, analýzy, komentáře a přehledy nejnovejších technologií dříve a na vyšší odborné úrovni, než ostatní periodika na tuzemském trhu.

Obsah Computertrends je určen odborníkům a manažerům z firem a institucí, kteří se podílejí na rozhodovacím procesu při nákupu ICT technologií. Jednotlivá čísla si můžete objednat i v digitální podobě.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }