@@ -102,6 +102,8 @@ uint16_t flag_fanout_type =
102
102
#else
103
103
PACKET_FANOUT_LB;
104
104
#endif
105
+
106
+ int64_t blocks_per_file = (flag_filesize_mb * 1024 ) / flag_blocksize_kb;
105
107
uint16_t flag_fanout_id = 0 ;
106
108
std::string flag_uid;
107
109
std::string flag_gid;
@@ -138,6 +140,7 @@ int ParseOptions(int key, char* arg, struct argp_state* state) {
138
140
break ;
139
141
case 305 :
140
142
flag_filesize_mb = atoi (arg);
143
+ blocks_per_file = (flag_filesize_mb * 1024 ) / flag_blocksize_kb;
141
144
break ;
142
145
case 306 :
143
146
flag_threads = atoi (arg);
@@ -183,6 +186,7 @@ int ParseOptions(int key, char* arg, struct argp_state* state) {
183
186
break ;
184
187
case 320 :
185
188
flag_blocksize_kb = atoll (arg);
189
+ blocks_per_file = (flag_filesize_mb * 1024 ) / flag_blocksize_kb;
186
190
break ;
187
191
case 321 :
188
192
flag_promisc = false ;
@@ -478,7 +482,7 @@ void RunThread(int thread, st::ProducerConsumerQueue* write_index,
478
482
// Rotate file if necessary.
479
483
int64_t current_file_age_secs =
480
484
(current_micros - micros) / kNumMicrosPerSecond ;
481
- if (block_offset == flag_filesize_mb ||
485
+ if (block_offset == blocks_per_file ||
482
486
current_file_age_secs > flag_fileage_sec) {
483
487
VLOG (1 ) << " Rotating file " << micros << " with " << block_offset
484
488
<< " blocks" ;
@@ -508,16 +512,17 @@ void RunThread(int thread, st::ProducerConsumerQueue* write_index,
508
512
blocks++;
509
513
block_offset++;
510
514
511
- // Log stats every 100MB or at least 1/minute.
515
+ // Log stats every 100 blocks or at least 1/minute.
512
516
if (blocks % 100 == 0 ||
513
517
lastlog < current_micros - 60 * kNumMicrosPerSecond ) {
514
518
lastlog = current_micros;
515
519
double duration = (current_micros - start) * 1.0 / kNumMicrosPerSecond ;
516
520
Stats stats;
517
521
Error stats_err = v3->GetStats (&stats);
518
522
if (SUCCEEDED (stats_err)) {
519
- LOG (INFO) << " Thread " << thread << " stats: MB=" << blocks
520
- << " secs=" << duration << " MBps=" << (blocks / duration)
523
+ uint64_t mb = (blocks * flag_blocksize_kb) / 1024 ;
524
+ LOG (INFO) << " Thread " << thread << " stats: MB=" << mb
525
+ << " secs=" << duration << " MBps=" << (mb / duration)
521
526
<< " " << stats.String ();
522
527
} else {
523
528
LOG (ERROR) << " Unable to get stats: " << *stats_err;
0 commit comments