# Használja az összes CPU-t a klaszter módban

> Indítsa el a több munkavállaló folyamatokat egy port mögött a Total.run( klaszter opciójával, és tudja, mi oszlik meg közöttük, és mi nem.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: hu
Content-SHA256: 940a4d3d175535f713749ea0cac79b116d5177ed97171f166a55e4c5943ac594
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Egy Node.js-folyamat egyetlen CPU-magot használ. A `Total.run({ cluster: N })` elindít egy **mastert**, amely `N` worker folyamatot hoz létre, mindegyik a teljes alkalmazásodat futtatja, a bejövő kapcsolatokat pedig az operációs rendszer osztja el közöttük (szám helyett az `'auto'` hagyja, hogy a master a terhelés növekedésével szálakat adjon hozzá). Release módban futtasd (`release: true`, amit a generált indítóscript a `--release` kapcsolóval állít be); a debug mód watchere nem clusterhez készült. Az indítóscriptben ez egyetlen opció:

```js
Total.run({ cluster: 4, release: true }); // or cluster: 'auto'
```

Minden worker külön folyamat saját memóriával, ezért minden, amit változóban, a `CACHE`-ben vagy a `MEMORIZE`-ban tartasz, **workerenként** egyszer létezik, és nincs megosztva: ugyanazon felhasználó két kérése különböző workerre kerülhet. A közös állapotot adatbázisban, fájltárolóban vagy üzenetszolgáltatásban tartsd, a munkameneteket pedig olyan tárolóban, amelyet minden worker olvashat. Az ütemezett feladatok, például a `CRON()`, szintén minden workerben futnak, ezért védd őket, ha csak egyszer szabad lefutniuk.

**Ellenőrizd, hogy minden worker fut.** Telepítés után kérj le többször egy `/pid/`-hoz hasonló URL-t az alábbiak szerint, és számold meg a különböző azonosítókat: annyinak kell lennie, ahány workert kértél.

Minden munkásnak megvan a maga eljárási azonosítója.A példa két munkát indít, és ezt az azonosítót tartalmazza a válaszban.

```js controllers/pid.js
exports.install = function() {
	ROUTE('GET /pid/', pid);
	ROUTE('GET /dir/', dir);
};

function pid($) {
	$.json({ pid: process.pid });
}

function dir($) {
	$.json({ dir: PATH.root() });
}
```

```js cluster.js
require('total5');
Total.run({ cluster: 2, port: 8766, release: true });
```
