linux cpu miner performance

  • I have a server with 16G ram and e5 2620 cpu as my miner.My plot file is arount 100TB and I'm using creepminer.It takes me about 60-80secs to read all the plot and verify the data.

    Is the speed normal?or I can make it better?

    From what I have found it is the verify speed which drag the speed down because I found the buffer is always full and it take 10-20secs for the verifier to verify the data after every plots was read.

  • @shadowlin

    That sounds about right for read times with that hardware.

    Two things that could speed it up:

    1. Use a GPU miner, as it should verify a lot faster.
    2. Split the TB to another computer, so there is less to process

    50-60TB is about as much as that class of CPU can do in a reasonable amount of time 40-50 seconds or so.

  • @captinkid I read somewhere ppl said he can read 60TB plot in 10-20 secs with a E5 cpu..

  • @shadowlin have you optimized plot; if not, i will suggest you to do it.

    Also, CPU doesn't matter much I will prefer to increase a memory to 24 or 32.

    P.S. Recommendation are based on my personal experience only and my readout time is under 15 sec ( my internet connection is poor)


  • @shadowlin said in linux cpu miner performance:

    @captinkid I read somewhere ppl said he can read 60TB plot in 10-20 secs with a E5 cpu..

    which E5.
    -> How many cores at what clock, and from V3 on avx2 boosts processing twofold. You cannot generalize "E5", quad or 22core ? 1.6 or 3.4 GHz ?

  • @rajeshpunjabi

    I have optimized my plot.How big is your plot?

  • @vaxman
    I think it is aslo an e5 2620(6cores 12threads).
    Is there a way to tell if my miner is using avx2?

  • admin

    @shadowlin If you're using the Blago miner, at startup it'll tell you the CPU capabilities, and the recommended version to use.

  • @haitch But I think balgo miner doesn't support linux system?

  • admin

    @shadowlin Missed the linux part. Specifiy your exact processor, including version number.

  • @haitch I don't now the version of that cpu because it is a ES one, but I am sure it does support avx2.I can plot at 19000 nonces/min with that cpu.

  • I'm not sure how your plots are structured in terms of number of disks but that's a total read speed of ~250MBps. You should be able to get easily 80MBps per drive as long as you aren't overloading the busses. Assuming you have maximum 10TB drives then you're getting no more than 25MBps so that is slow.

    Are you plots optimized? If not that speed is about right - I get 20MBps with unoptimized plots. If they are optimized then somtng else is wrong.

    If you're using creep then you want to set intensity in the mining part of the config to be at least as high as the number of drives you have - the best to do here would be number of CPU cores minus number of drives (say you have 10 drives and 28 cores then 18 here) - that gives 1 thread per drive to read and as many threads as possible for processing that. If your bottleneck is definitely the CPU rather than the reading from disk (based on your investigations) this is probably the number to increase.

    Regarding the chip though I've got an ES chip... their performance can often be better or worse than the final release models and they may have features turned on or off compared to their production counterparts - particularly if you have an early stepping. You can find out al the details of supported features though.

    Open a terminal in Linux and run:

    cat /proc/cpuinfo

    This will give you all the details you. There will be a bunch of text blocks (about 20 lines long) separated with a space per logical core. On my system I've got 56 logical cores so last section see starts "processor : 55". That's the logical core count you've got.

    The Model Name is a good indicator should then include the core speed - but that's also in "cpuMHz" (technically that's current speed so may be greater than advertised if turbo boost is on).

    The "cpu cores" line indicates how many real (non-hyper-threaded) cores you have on that chip.

    The flags indicates whether or not you have support for AVX2.

    0_1499850775699_Screenshot from 2017-07-12 10-09-32.png

    So from my screenshot you can interpret that as 56 logical cores with 14 cores per CPU. I know there are two CPUs therefore 28 logical cores per CPU which means I have hyperthreading (logical cores is 2x physical cores)

    I can also see chip is advertised as 2.1GHz but running at 2.5GHz (all cores at 100% on this ES version boost to 2.5GHz - better than final production version) and I have AVX2 support.

    I have a bottleneck on this system and it's the RAM. I cheaped out and only bought 2x DDR4 sticks when I built it. Each CPU is quad channel so I really need 8 to feed all those cores efficiently. If you have a crazy core count don't skimp on the RAM configuration.

  • Thank you for your detailed reply:)
    Well,my max reading speed is about 8Gbps(I am using nfs and samba dirve with 2 10Gbps nic, so I think the bandwidth shouldn't be a problem) but after the buffer is full the speed became decrease.
    I have 42 drivers and my cpu has 12 logical cores(with avx2 support) I am setting creepminer at 42 plot reading thread and 12 verify thread.

  • I haven't reading 42 drives in a single system - but the number of threads you are running is going to result is a lot of lost performance as the CPU time-switches between threads. Your system can run maximum of 12 threads efficiently at one point (6 if they're using 100% core load without delay waiting on RAM/etc.). If your current bottleneck is the deadline scanning rather than disk reading based on which buffers are full you could swap out to lower the drive reading threads from 42. I'd suggest to just keep on lowering it (or maybe start at a much lower number like 6 and increase it) until you get a better balance of buffers being empty versus CPU count. I'd guess your system is just dying based on how many threads its trying to swap around - each wanting to use 100% of resources that aren't available. You ideally need to have a total count of 12 threads running (or maybe a couple more since drive reading ones will finish slightly quicker) to get the most processing time and least swap time.

    Someone who has run 42 drives off a single system may be better qualified to talk but I suspect you may be lacking enough CPU power to do it much quicker than you already are if all the CPU cores are running at 100% during mining.

    If your cores aren't running at 100% (you can check with htop in terminal) then it could be a bandwidth problem. Depending on how your network storage is configured you won't necessarily be utilising 20Gbps over the network - just because the network supports it doesn't mean the NAS/SAN at the other end can put it out. One thing I have noticed during my tests is that unoptimized plots seem way worse over network than they do locally just due to the extra latency involved in a seek - over several TB it seems to scale badly. That being said it still sounds like it's not a read issue based on where your buffers are.

    I'd buy another few CPUs :)

  • @guytp
    I think reading the plot file won't cost much cpu power because it is an io intensive operation which the cpu would always be waiting for the io operation.

    I recompiled my creepminer with avx2 enabled the performance seems better now.It now takes around 50-70secs to read all 127TB plot.