コード例 #1
0
        public virtual void Setup()
        {
            // 24h window
            timeWindow = 86400000L;
            // 1 sec step
            step = 1000L;
            // 25% avg cap on capacity
            avgConstraint = 25;
            // 70% instantaneous cap on capacity
            instConstraint = 70;
            initTime       = Runtime.CurrentTimeMillis();
            minAlloc       = Org.Apache.Hadoop.Yarn.Api.Records.Resource.NewInstance(1024, 1);
            res            = new DefaultResourceCalculator();
            maxAlloc       = Org.Apache.Hadoop.Yarn.Api.Records.Resource.NewInstance(1024 * 8, 8);
            mAgent         = Org.Mockito.Mockito.Mock <ReservationAgent>();
            ReservationSystemTestUtil testUtil = new ReservationSystemTestUtil();
            QueueMetrics rootQueueMetrics      = Org.Mockito.Mockito.Mock <QueueMetrics>();
            string       reservationQ          = testUtil.GetFullReservationQueueName();

            Org.Apache.Hadoop.Yarn.Api.Records.Resource clusterResource = ReservationSystemTestUtil
                                                                          .CalculateClusterResource(totCont);
            ReservationSchedulerConfiguration conf = ReservationSystemTestUtil.CreateConf(reservationQ
                                                                                          , timeWindow, instConstraint, avgConstraint);
            CapacityOverTimePolicy policy = new CapacityOverTimePolicy();

            policy.Init(reservationQ, conf);
            plan = new InMemoryPlan(rootQueueMetrics, policy, mAgent, clusterResource, step,
                                    res, minAlloc, maxAlloc, "dedicated", null, true);
        }
コード例 #2
0
        public virtual void Setup()
        {
            long seed = rand.NextLong();

            rand.SetSeed(seed);
            Org.Mortbay.Log.Log.Info("Running with seed: " + seed);
            // setting completely loose quotas
            long timeWindow = 1000000L;

            Org.Apache.Hadoop.Yarn.Api.Records.Resource clusterCapacity = Org.Apache.Hadoop.Yarn.Api.Records.Resource
                                                                          .NewInstance(100 * 1024, 100);
            step = 1000L;
            ReservationSystemTestUtil testUtil = new ReservationSystemTestUtil();
            string reservationQ   = testUtil.GetFullReservationQueueName();
            float  instConstraint = 100;
            float  avgConstraint  = 100;
            ReservationSchedulerConfiguration conf = ReservationSystemTestUtil.CreateConf(reservationQ
                                                                                          , timeWindow, instConstraint, avgConstraint);
            CapacityOverTimePolicy policy = new CapacityOverTimePolicy();

            policy.Init(reservationQ, conf);
            agent = new GreedyReservationAgent();
            QueueMetrics queueMetrics = Org.Mockito.Mockito.Mock <QueueMetrics>();

            plan = new InMemoryPlan(queueMetrics, policy, agent, clusterCapacity, step, res,
                                    minAlloc, maxAlloc, "dedicated", null, true);
        }
コード例 #3
0
        /// <exception cref="Org.Apache.Hadoop.Yarn.Server.Resourcemanager.Reservation.Exceptions.PlanningException
        ///     "/>
        /// <exception cref="System.IO.IOException"/>
        public virtual void TestStress(int numJobs)
        {
            long timeWindow = 1000000L;

            Org.Apache.Hadoop.Yarn.Api.Records.Resource clusterCapacity = Org.Apache.Hadoop.Yarn.Api.Records.Resource
                                                                          .NewInstance(500 * 100 * 1024, 500 * 32);
            step = 1000L;
            ReservationSystemTestUtil testUtil  = new ReservationSystemTestUtil();
            CapacityScheduler         scheduler = testUtil.MockCapacityScheduler(500 * 100);
            string reservationQ   = testUtil.GetFullReservationQueueName();
            float  instConstraint = 100;
            float  avgConstraint  = 100;
            ReservationSchedulerConfiguration conf = ReservationSystemTestUtil.CreateConf(reservationQ
                                                                                          , timeWindow, instConstraint, avgConstraint);
            CapacityOverTimePolicy policy = new CapacityOverTimePolicy();

            policy.Init(reservationQ, conf);
            plan = new InMemoryPlan(scheduler.GetRootQueueMetrics(), policy, agent, clusterCapacity
                                    , step, res, minAlloc, maxAlloc, "dedicated", null, true);
            int acc = 0;
            IList <ReservationDefinition> list = new AList <ReservationDefinition>();

            for (long i = 0; i < numJobs; i++)
            {
                list.AddItem(ReservationSystemTestUtil.GenerateRandomRR(rand, i));
            }
            long start = Runtime.CurrentTimeMillis();

            for (int i_1 = 0; i_1 < numJobs; i_1++)
            {
                try
                {
                    if (agent.CreateReservation(ReservationSystemTestUtil.GetNewReservationId(), "u"
                                                + i_1 % 100, plan, list[i_1]))
                    {
                        acc++;
                    }
                }
                catch (PlanningException)
                {
                }
            }
            // ignore exceptions
            long end = Runtime.CurrentTimeMillis();

            System.Console.Out.WriteLine("Submitted " + numJobs + " jobs " + " accepted " + acc
                                         + " in " + (end - start) + "ms");
        }