Hallo,
gleich zu meinem Problem:
Ich habe 2 CSV Dateien mit Listen für VMs und Hardware Maschinen. Jede HW und VM hat CPU, Memory und Netzwerk. Nun habe ich 100 HW-Maschinen (natürlich alles simuliert zu lernzwecken) und 10.000 VMs. Ich möchte jetzt die VMs gleichmäßig auf die HWs verteielen.
Meine Gedanken:
Ich nehme eine ArrayList, aber die ist nicht 2 Dimensional. Ich könnte auch ein festes 2Dim-Array nehmen. Aber das ist nicht Flexibel.
Jetzt frage ich mich zwei Sachen:
1. Wie laufe ich Geschickt über meine VMs und weiße Sie zu der HW zu. Auch dazu habe ich mir Gedanken gemacht.
Ich könnte einfach die komplette VMs in einer schleife durchlaufen. In Durchgang 1 bekommt HW1 = VM1, im zweiten Durchgang bekommt HW2 = VW2 zugewiesen. Jetzt kommt eine Sache für die ich noch keine Lösung habe. Was ist bei VM101. Diese Soll dann wieder HW 1 zugewiesen werden. Wie mach ich das denn Geschickt?
2. Frage was für ein Array eignet sich? Oder gibt es da andere geschicktere Lösungen?
Es handelt sich um eine Übungsaufgabe, ich möchte hierzu auch keine Komplettlösung, sondern würde mich sehr über eine Hilfestellung freuen.
Vielen Dank.
Mein Aktueller Code
gleich zu meinem Problem:
Ich habe 2 CSV Dateien mit Listen für VMs und Hardware Maschinen. Jede HW und VM hat CPU, Memory und Netzwerk. Nun habe ich 100 HW-Maschinen (natürlich alles simuliert zu lernzwecken) und 10.000 VMs. Ich möchte jetzt die VMs gleichmäßig auf die HWs verteielen.
Meine Gedanken:
Ich nehme eine ArrayList, aber die ist nicht 2 Dimensional. Ich könnte auch ein festes 2Dim-Array nehmen. Aber das ist nicht Flexibel.
Jetzt frage ich mich zwei Sachen:
1. Wie laufe ich Geschickt über meine VMs und weiße Sie zu der HW zu. Auch dazu habe ich mir Gedanken gemacht.
Ich könnte einfach die komplette VMs in einer schleife durchlaufen. In Durchgang 1 bekommt HW1 = VM1, im zweiten Durchgang bekommt HW2 = VW2 zugewiesen. Jetzt kommt eine Sache für die ich noch keine Lösung habe. Was ist bei VM101. Diese Soll dann wieder HW 1 zugewiesen werden. Wie mach ich das denn Geschickt?
2. Frage was für ein Array eignet sich? Oder gibt es da andere geschicktere Lösungen?
Es handelt sich um eine Übungsaufgabe, ich möchte hierzu auch keine Komplettlösung, sondern würde mich sehr über eine Hilfestellung freuen.
Vielen Dank.
Mein Aktueller Code
Java:
package mcc_a3;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.csvreader.CsvReader;
public class Lastverteilung {
public static void main(String[] args) {
try {
CsvReader historyCSV = new CsvReader("VMHistory10000.csv");
CsvReader hardwareCSV10_000 = new CsvReader("HWRessources10000_random.csv");
CsvReader hardwareCSV100 = new CsvReader("HWRessources100_random.csv");
List<String> hardwareNameList = new ArrayList<String>();
hardwareCSV100.readHeaders();
while(hardwareCSV100.readRecord()){
hardwareNameList.add(hardwareCSV100.get("HWs"));
// System.out.println(hardwareCSV100.get("HWs"));
}
/*
historyCSV.readHeaders();
System.out.println("VMs \t CPU \t Netz \t Normierte Last");
while(historyCSV.readRecord()){
String vm = historyCSV.get("VMs");
float cpu = Float.parseFloat(historyCSV.get("CPU"));
float mem = Float.parseFloat(historyCSV.get("Mem"));
float netz = Float.parseFloat(historyCSV.get("Netz"));
float nmLast = (cpu/4+mem/4999+netz/499)/3;
//System.out.println(vm + "\t " + cpu + "\t " + mem + "\t " + netz + "\t " + nmLast);
}
*/
for (int i = 0; i < hardwareNameList.size(); i++) {
System.out.println(hardwareNameList.get(i));
}
} catch (FileNotFoundException e) {
System.out.println("File not Found" + e.getMessage());
} catch (IOException e) {
System.out.println("IO" + e.getMessage());
}
}
}
Zuletzt bearbeitet von einem Moderator: