2013-01-03 14 views
5

का उपयोग किया गया है क्या यह जांचना/लॉग करना संभव है कि फ़ैंटॉमजेस/कैस्परजेएस के प्रत्येक भाग के दौरान कितना डेटा स्थानांतरित किया गया हो?चेक/लॉग करें कितना बैंडविड्थ फ़ैंटॉमजेएस/कैस्परजेएस

प्रेत/कैस्पर के प्रत्येक उदाहरण में instance_id को असाइन किया गया है (PHP फ़ंक्शन द्वारा जो उदाहरण को बढ़ाया जाता है)। रन समाप्त होने के बाद, स्थानांतरित किए गए डेटा की मात्रा और instance_id को एक MySQL डेटाबेस में डालने का अपना तरीका बनाना होगा, संभवत: उस PHP फ़ंक्शन के माध्यम से जो उदाहरण उत्पन्न करता है। इस तरह व्यक्तिगत phantomjs रनों का बैंडविड्थ उपयोग लॉग किया जा सकता है।

कई प्रेत/कैस्पर उदाहरण चल रहे हैं, प्रत्येक एक मिनट या दो स्थायी।

+0

उपयोगी लगता है: http://www.google.com/?q=linux%20monitor%20network%20traffic%20per%20process – goat

उत्तर

3

डेटा कैप्चर करने का प्रयास करते समय सबसे आसान और सबसे सटीक दृष्टिकोण संग्राहक और उत्सर्जक को जितना संभव हो सके प्राप्त करना है। इस मामले में यह आदर्श होगा यदि phantomjs आपको उस डेटा को कैप्चर कर सकता है जिसे आपको चाहिए और इसे वापस अपने PHP फ़ंक्शन पर example_id से संबद्ध करने के लिए भेज दें और डेटाबेस इंटरैक्शन करें। यह बदल सकता है (कम से कम आंशिक रूप से)।

var page = require('webpage').create(); 
var bytesReceived = 0; 

page.onResourceReceived = function (res) { 
    if (res.bodySize) { 
     bytesReceived += res.bodySize; 
    } 
}; 

page.open("http://www.google.com", function (status) { 
    console.log(bytesReceived); 
    phantom.exit(); 
}); 

यह पुनः प्राप्त सभी संसाधनों का आकार कैप्चर करता है, उन्हें जोड़ता है, और मानक आउटपुट में परिणाम जहां अपने PHP कोड इसके साथ काम करने में सक्षम है बाहर थूक:

यहाँ एक दृष्टिकोण है। इसमें हेडर या किसी भी पोस्ट गतिविधि का आकार शामिल नहीं है। आपके आवेदन के आधार पर, यह पर्याप्त हो सकता है। यदि नहीं, तो उम्मीद है कि यह आपको एक अच्छा कूद बिंदु बंद कर देता है।

+1

यह हस्तांतरित आकार को सटीक रूप से जोड़ नहीं सकता है, क्योंकि gzip संपीड़न की गणना नहीं की जाती है। –

संबंधित मुद्दे